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-22 05:44:52 +0300
committerDaniel Garcia <danielgarcia@gmail.com>2016-02-22 05:44:52 +0300
commitaec0d7831de16881bdf6f1d5e46d2b5acc12b753 (patch)
tree840553a6da035936a09c8321d7723842daac5a03
parent14265c37c5089cb397376219f85f7dea3d42f903 (diff)
doc update
-rw-r--r--docs/3.1/_fast_l_e_d_8cpp_source.html6
-rw-r--r--docs/3.1/_fast_l_e_d_8h.html14
-rw-r--r--docs/3.1/_fast_l_e_d_8h.js7
-rw-r--r--docs/3.1/_fast_l_e_d_8h_source.html544
-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.html2
-rw-r--r--docs/3.1/annotated.html2
-rw-r--r--docs/3.1/bitswap_8h.html2
-rw-r--r--docs/3.1/bitswap_8h_source.html2
-rw-r--r--docs/3.1/chipsets_8h.html2
-rw-r--r--docs/3.1/chipsets_8h_source.html4
-rw-r--r--docs/3.1/class_a_p_a102_controller-members.html2
-rw-r--r--docs/3.1/class_a_p_a102_controller.html2
-rw-r--r--docs/3.1/class_a_p_a104.html2
-rw-r--r--docs/3.1/class_a_v_r_software_s_p_i_output-members.html2
-rw-r--r--docs/3.1/class_a_v_r_software_s_p_i_output.html2
-rw-r--r--docs/3.1/class_c_every_n_time_periods-members.html2
-rw-r--r--docs/3.1/class_c_every_n_time_periods.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.html28
-rw-r--r--docs/3.1/class_c_h_s_v_palette16-members.html2
-rw-r--r--docs/3.1/class_c_h_s_v_palette16.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.html2
-rw-r--r--docs/3.1/class_c_h_s_v_palette32.html4
-rw-r--r--docs/3.1/class_c_l_e_d_controller-members.html2
-rw-r--r--docs/3.1/class_c_l_e_d_controller.html2
-rw-r--r--docs/3.1/class_c_min_wait-members.html2
-rw-r--r--docs/3.1/class_c_min_wait.html2
-rw-r--r--docs/3.1/class_c_pixel_l_e_d_controller-members.html2
-rw-r--r--docs/3.1/class_c_pixel_l_e_d_controller.html8
-rw-r--r--docs/3.1/class_c_pixel_view-members.html2
-rw-r--r--docs/3.1/class_c_pixel_view.html2
-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.html2
-rw-r--r--docs/3.1/class_c_r_g_b_array-members.html2
-rw-r--r--docs/3.1/class_c_r_g_b_array.html2
-rw-r--r--docs/3.1/class_c_r_g_b_palette16-members.html2
-rw-r--r--docs/3.1/class_c_r_g_b_palette16.html4
-rw-r--r--docs/3.1/class_c_r_g_b_palette256-members.html2
-rw-r--r--docs/3.1/class_c_r_g_b_palette256.html4
-rw-r--r--docs/3.1/class_c_r_g_b_palette32-members.html2
-rw-r--r--docs/3.1/class_c_r_g_b_palette32.html4
-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.html2
-rw-r--r--docs/3.1/class_d_m_x_s_e_r_i_a_l.html2
-rw-r--r--docs/3.1/class_d_m_x_s_i_m_p_l_e-members.html2
-rw-r--r--docs/3.1/class_d_m_x_s_i_m_p_l_e.html2
-rw-r--r--docs/3.1/class_d_m_x_serial_controller-members.html2
-rw-r--r--docs/3.1/class_d_m_x_serial_controller.html2
-rw-r--r--docs/3.1/class_d_m_x_simple_controller-members.html2
-rw-r--r--docs/3.1/class_d_m_x_simple_controller.html2
-rw-r--r--docs/3.1/class_fast_pin-members.html2
-rw-r--r--docs/3.1/class_fast_pin.html2
-rw-r--r--docs/3.1/class_fast_pin_b_b-members.html2
-rw-r--r--docs/3.1/class_fast_pin_b_b.html2
-rw-r--r--docs/3.1/class_g_w6205.html2
-rw-r--r--docs/3.1/class_g_w6205__400.html2
-rw-r--r--docs/3.1/class_g_w6205_controller400_khz.html2
-rw-r--r--docs/3.1/class_g_w6205_controller800_khz.html2
-rw-r--r--docs/3.1/class_input_pin-members.html2
-rw-r--r--docs/3.1/class_input_pin.html2
-rw-r--r--docs/3.1/class_l_p_d1886.html2
-rw-r--r--docs/3.1/class_l_p_d1886_controller1250_khz.html2
-rw-r--r--docs/3.1/class_l_p_d8806_controller-members.html2
-rw-r--r--docs/3.1/class_l_p_d8806_controller.html2
-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.html2
-rw-r--r--docs/3.1/class_output_pin-members.html2
-rw-r--r--docs/3.1/class_output_pin.html2
-rw-r--r--docs/3.1/class_p9813_controller-members.html2
-rw-r--r--docs/3.1/class_p9813_controller.html2
-rw-r--r--docs/3.1/class_p_i_x_i_e-members.html2
-rw-r--r--docs/3.1/class_p_i_x_i_e.html2
-rw-r--r--docs/3.1/class_p_l9823.html2
-rw-r--r--docs/3.1/class_p_l9823_controller.html2
-rw-r--r--docs/3.1/class_pin-members.html2
-rw-r--r--docs/3.1/class_pin.html2
-rw-r--r--docs/3.1/class_pixie_controller-members.html2
-rw-r--r--docs/3.1/class_pixie_controller.html2
-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.html2
-rw-r--r--docs/3.1/class_s_k6812.html2
-rw-r--r--docs/3.1/class_s_k6812_controller.html2
-rw-r--r--docs/3.1/class_s_k6822.html2
-rw-r--r--docs/3.1/class_s_k6822_controller.html2
-rw-r--r--docs/3.1/class_s_m16716_controller-members.html2
-rw-r--r--docs/3.1/class_s_m16716_controller.html2
-rw-r--r--docs/3.1/class_s_p_i_output-members.html2
-rw-r--r--docs/3.1/class_s_p_i_output.html2
-rw-r--r--docs/3.1/class_s_p_i_output_3_01_s_p_i2___d_a_t_a_00_01_s_p_i2___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html2
-rw-r--r--docs/3.1/class_s_p_i_output_3_01_s_p_i2___d_a_t_a_00_01_s_p_i___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html2
-rw-r--r--docs/3.1/class_s_p_i_output_3_01_s_p_i___d_a_t_a_00_01_s_p_i2___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html2
-rw-r--r--docs/3.1/class_s_p_i_output_3_01_s_p_i___d_a_t_a_00_01_s_p_i___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html2
-rw-r--r--docs/3.1/class_s_p_i_output_3_01_s_p_i___u_a_r_t0___d_a_t_a_00_01_s_p_i___u_a_r_t0___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html2
-rw-r--r--docs/3.1/class_s_p_i_output_3_01_s_p_i___u_a_r_t1___d_a_t_a_00_01_s_p_i___u_a_r_t1___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html2
-rw-r--r--docs/3.1/class_selectable-members.html2
-rw-r--r--docs/3.1/class_selectable.html2
-rw-r--r--docs/3.1/class_software_s_p_i_output-members.html2
-rw-r--r--docs/3.1/class_software_s_p_i_output.html2
-rw-r--r--docs/3.1/class_t_m1803.html2
-rw-r--r--docs/3.1/class_t_m1803_controller400_khz.html2
-rw-r--r--docs/3.1/class_t_m1804.html2
-rw-r--r--docs/3.1/class_t_m1809.html2
-rw-r--r--docs/3.1/class_t_m1809_controller800_khz.html2
-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.html2
-rw-r--r--docs/3.1/class_t_m1829_controller800_khz.html2
-rw-r--r--docs/3.1/class_u_c_s1903.html2
-rw-r--r--docs/3.1/class_u_c_s1903_b.html2
-rw-r--r--docs/3.1/class_u_c_s1903_b_controller800_khz.html2
-rw-r--r--docs/3.1/class_u_c_s1903_controller400_khz.html2
-rw-r--r--docs/3.1/class_u_c_s1904.html2
-rw-r--r--docs/3.1/class_u_c_s1904_controller800_khz.html2
-rw-r--r--docs/3.1/class_u_c_s2903.html2
-rw-r--r--docs/3.1/class_u_c_s2903_controller.html2
-rw-r--r--docs/3.1/class_w_s2801_controller-members.html2
-rw-r--r--docs/3.1/class_w_s2801_controller.html2
-rw-r--r--docs/3.1/class_w_s2803_controller-members.html2
-rw-r--r--docs/3.1/class_w_s2803_controller.html2
-rw-r--r--docs/3.1/class_w_s2811.html2
-rw-r--r--docs/3.1/class_w_s2811__400.html2
-rw-r--r--docs/3.1/class_w_s2811_controller400_khz.html2
-rw-r--r--docs/3.1/class_w_s2811_controller800_khz.html2
-rw-r--r--docs/3.1/class_w_s2812.html2
-rw-r--r--docs/3.1/class_w_s2812_b.html2
-rw-r--r--docs/3.1/class_w_s2812_controller800_khz.html2
-rw-r--r--docs/3.1/classes.html2
-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.html2
-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.html2
-rw-r--r--docs/3.1/colorutils_8cpp_source.html1380
-rw-r--r--docs/3.1/colorutils_8h.html63
-rw-r--r--docs/3.1/colorutils_8h_source.html2722
-rw-r--r--docs/3.1/controller_8h.html2
-rw-r--r--docs/3.1/controller_8h_source.html199
-rw-r--r--docs/3.1/cpp__compat_8h_source.html2
-rw-r--r--docs/3.1/dir_fbb9e787cf27434374136273d35a9c17.html2
-rw-r--r--docs/3.1/dmx_8h_source.html4
-rw-r--r--docs/3.1/fastled__config_8h.html2
-rw-r--r--docs/3.1/fastled__config_8h_source.html13
-rw-r--r--docs/3.1/fastled__delay_8h.html2
-rw-r--r--docs/3.1/fastled__delay_8h_source.html2
-rw-r--r--docs/3.1/fastled__progmem_8h.html2
-rw-r--r--docs/3.1/fastled__progmem_8h_source.html2
-rw-r--r--docs/3.1/fastpin_8h.html2
-rw-r--r--docs/3.1/fastpin_8h_source.html2
-rw-r--r--docs/3.1/fastspi_8h_source.html2
-rw-r--r--docs/3.1/fastspi__bitbang_8h_source.html2
-rw-r--r--docs/3.1/fastspi__dma_8h_source.html2
-rw-r--r--docs/3.1/fastspi__nop_8h_source.html2
-rw-r--r--docs/3.1/fastspi__ref_8h_source.html2
-rw-r--r--docs/3.1/fastspi__types_8h_source.html6
-rw-r--r--docs/3.1/files.html2
-rw-r--r--docs/3.1/functions.html2
-rw-r--r--docs/3.1/functions_enum.html2
-rw-r--r--docs/3.1/functions_func.html2
-rw-r--r--docs/3.1/globals.html107
-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.html38
-rw-r--r--docs/3.1/globals_vars.html2
-rw-r--r--docs/3.1/graph_legend.html2
-rw-r--r--docs/3.1/group___bitswap.html2
-rw-r--r--docs/3.1/group___color_enums.html2
-rw-r--r--docs/3.1/group___colorpalletes.html2
-rw-r--r--docs/3.1/group___colorutils.html449
-rw-r--r--docs/3.1/group___colorutils.js19
-rw-r--r--docs/3.1/group___dimming.html2
-rw-r--r--docs/3.1/group___math.html126
-rw-r--r--docs/3.1/group___math.js26
-rw-r--r--docs/3.1/group___noise.html6
-rw-r--r--docs/3.1/group___pixeltypes.html4
-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.html100
-rw-r--r--docs/3.1/group___scaling.js16
-rw-r--r--docs/3.1/group___trig.html2
-rw-r--r--docs/3.1/group__chipsets.html2
-rw-r--r--docs/3.1/group__lib8tion.html44
-rw-r--r--docs/3.1/hierarchy.html2
-rw-r--r--docs/3.1/hsv2rgb_8cpp_source.html873
-rw-r--r--docs/3.1/hsv2rgb_8h_source.html4
-rw-r--r--docs/3.1/index.html2
-rw-r--r--docs/3.1/inherits.html2
-rw-r--r--docs/3.1/led__sysdefs_8h_source.html2
-rw-r--r--docs/3.1/lib8tion_8cpp_source.html26
-rw-r--r--docs/3.1/lib8tion_8h_source.html1585
-rw-r--r--docs/3.1/math8_8h_source.html54
-rw-r--r--docs/3.1/md__p_o_r_t_i_n_g.html2
-rw-r--r--docs/3.1/md__r_e_a_d_m_e.html2
-rw-r--r--docs/3.1/md_release_notes.html3
-rw-r--r--docs/3.1/modules.html2
-rw-r--r--docs/3.1/navtreedata.js8
-rw-r--r--docs/3.1/navtreeindex0.js28
-rw-r--r--docs/3.1/navtreeindex1.js24
-rw-r--r--docs/3.1/navtreeindex2.js88
-rw-r--r--docs/3.1/navtreeindex3.js68
-rw-r--r--docs/3.1/navtreeindex4.js24
-rw-r--r--docs/3.1/noise_8cpp_source.html59
-rw-r--r--docs/3.1/noise_8h.html6
-rw-r--r--docs/3.1/noise_8h_source.html13
-rw-r--r--docs/3.1/pages.html2
-rw-r--r--docs/3.1/pixelset_8h_source.html4
-rw-r--r--docs/3.1/pixeltypes_8h_source.html808
-rw-r--r--docs/3.1/platforms_8h_source.html2
-rw-r--r--docs/3.1/power__mgt_8cpp_source.html6
-rw-r--r--docs/3.1/power__mgt_8h_source.html2
-rw-r--r--docs/3.1/random8_8h_source.html6
-rw-r--r--docs/3.1/release__notes_8md_source.html281
-rw-r--r--docs/3.1/scale8_8h_source.html972
-rw-r--r--docs/3.1/search/all_1.js12
-rw-r--r--docs/3.1/search/all_10.js8
-rw-r--r--docs/3.1/search/all_12.js12
-rw-r--r--docs/3.1/search/all_2.js4
-rw-r--r--docs/3.1/search/all_3.js2
-rw-r--r--docs/3.1/search/all_6.js8
-rw-r--r--docs/3.1/search/all_8.js1
-rw-r--r--docs/3.1/search/all_c.js4
-rw-r--r--docs/3.1/search/all_d.js9
-rw-r--r--docs/3.1/search/functions_1.js12
-rw-r--r--docs/3.1/search/functions_10.js12
-rw-r--r--docs/3.1/search/functions_2.js4
-rw-r--r--docs/3.1/search/functions_3.js2
-rw-r--r--docs/3.1/search/functions_6.js8
-rw-r--r--docs/3.1/search/functions_8.js1
-rw-r--r--docs/3.1/search/functions_b.js4
-rw-r--r--docs/3.1/search/functions_c.js9
-rw-r--r--docs/3.1/search/functions_e.js8
-rw-r--r--docs/3.1/struct_c_h_s_v-members.html2
-rw-r--r--docs/3.1/struct_c_h_s_v.html2
-rw-r--r--docs/3.1/struct_c_r_g_b-members.html2
-rw-r--r--docs/3.1/struct_c_r_g_b.html6
-rw-r--r--docs/3.1/struct_pixel_controller-members.html2
-rw-r--r--docs/3.1/struct_pixel_controller.html12
-rw-r--r--docs/3.1/structsub4-members.html2
-rw-r--r--docs/3.1/structsub4.html2
-rw-r--r--docs/3.1/todo.html2
-rw-r--r--docs/3.1/trig8_8h_source.html2
-rw-r--r--docs/3.1/union_i_e_e_e754binary32__t-members.html2
-rw-r--r--docs/3.1/union_i_e_e_e754binary32__t.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.html2
-rw-r--r--docs/3.1/unionjust8bits-members.html2
-rw-r--r--docs/3.1/unionjust8bits.html2
-rw-r--r--docs/3.1/uniont_bytes_for_long-members.html2
-rw-r--r--docs/3.1/uniont_bytes_for_long.html2
-rw-r--r--docs/3.1/wiring_8cpp_source.html2
258 files changed, 6079 insertions, 5338 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 bbea4659..2ab91afb 100644
--- a/docs/3.1/_fast_l_e_d_8cpp_source.html
+++ b/docs/3.1/_fast_l_e_d_8cpp_source.html
@@ -384,14 +384,14 @@ $(document).ready(function(){initNavTree('_fast_l_e_d_8cpp_source.html','');});
<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#l00145">FastLED.h:145</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#l00150">FastLED.h:150</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#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_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#l00436">FastLED.h:436</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#l00126">controller.h:126</a></div></div>
@@ -412,7 +412,7 @@ $(document).ready(function(){initNavTree('_fast_l_e_d_8cpp_source.html','');});
<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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 018d42ed..dc24ff85 100644
--- a/docs/3.1/_fast_l_e_d_8h.html
+++ b/docs/3.1/_fast_l_e_d_8h.html
@@ -205,16 +205,22 @@ Enumerations</h2></td></tr>
<tr class="memitem:adcf22542128a12d8c3c304777422c7cc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adcf22542128a12d8c3c304777422c7cc"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>EBlockChipsets</b> { <br />
&#160;&#160;<b>WS2811_PORTA</b>,
<b>WS2811_400_PORTA</b>,
+<b>TM1803_PORTA</b>,
<b>WS2811_PORTB</b>,
-<b>WS2811_400_PORTB</b>,
<br />
-&#160;&#160;<b>WS2811_PORTC</b>,
+&#160;&#160;<b>WS2811_400_PORTB</b>,
+<b>TM1803_PORTB</b>,
+<b>WS2811_PORTC</b>,
<b>WS2811_400_PORTC</b>,
+<br />
+&#160;&#160;<b>TM1803_PORTC</b>,
<b>WS2811_PORTD</b>,
<b>WS2811_400_PORTD</b>,
+<b>TM1803_PORTD</b>,
<br />
&#160;&#160;<b>WS2811_PORTDC</b>,
-<b>WS2811_400_PORTDC</b>
+<b>WS2811_400_PORTDC</b>,
+<b>TM1803_PORTDC</b>
<br />
}</td></tr>
<tr class="separator:adcf22542128a12d8c3c304777422c7cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -235,7 +241,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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 668165a7..8f347779 100644
--- a/docs/3.1/_fast_l_e_d_8h.js
+++ b/docs/3.1/_fast_l_e_d_8h.js
@@ -29,14 +29,19 @@ var _fast_l_e_d_8h =
[ "EBlockChipsets", "_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cc", [
[ "WS2811_PORTA", "_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca3dfc7701edddb060c7b1c166160e2e84", null ],
[ "WS2811_400_PORTA", "_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7ccafbcade0e99741c06ac2cacd685715ec6", null ],
+ [ "TM1803_PORTA", "_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca4c08d6e7c60ed66ee9f91d5eb9692ac7", null ],
[ "WS2811_PORTB", "_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7ccabd56ee06e4f5bb956bedee08d951f5b0", null ],
[ "WS2811_400_PORTB", "_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca761693d3688d51ca70f4d03180c707bd", null ],
+ [ "TM1803_PORTB", "_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7ccad006a676a09197f25abb18f0dd3980b2", null ],
[ "WS2811_PORTC", "_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca63e38749845ba1f5ca0ac78eba46e768", null ],
[ "WS2811_400_PORTC", "_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca2c5f26c9459dd07fa1694cd23bc2963f", null ],
+ [ "TM1803_PORTC", "_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca343e7d7baa263ab8cc0de7c628b3952a", null ],
[ "WS2811_PORTD", "_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca133d6dc3225ca299a492d7017e723927", null ],
[ "WS2811_400_PORTD", "_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca7340313aebbca22bd20a85a4255cb521", null ],
+ [ "TM1803_PORTD", "_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca943fb4be631f1432c13e09b7e41e72c6", null ],
[ "WS2811_PORTDC", "_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca1d2ab9b2bb2985fb877371be83773f7b", null ],
- [ "WS2811_400_PORTDC", "_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7ccad5e8729d5e8682741a2b4d806501d7c3", null ]
+ [ "WS2811_400_PORTDC", "_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7ccad5e8729d5e8682741a2b4d806501d7c3", null ],
+ [ "TM1803_PORTDC", "_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7ccaac7596c20850a4fca6ef5f2d77f6b2b4", null ]
] ],
[ "ESM", "_fast_l_e_d_8h.html#ac8839f06bbcecd0dc5bde0a94510a657", [
[ "SMART_MATRIX", "_fast_l_e_d_8h.html#ac8839f06bbcecd0dc5bde0a94510a657aad6c1549c0bf19cdf4ca4838d761987e", 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 67eabf0b..4252b4b6 100644
--- a/docs/3.1/_fast_l_e_d_8h_source.html
+++ b/docs/3.1/_fast_l_e_d_8h_source.html
@@ -219,274 +219,284 @@ $(document).ready(function(){initNavTree('_fast_l_e_d_8h_source.html','');});
<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="l00114"></a><span class="lineno"> 114</span>&#160; TM1803_PORTA,</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor">#ifdef PORTB_FIRST_PIN</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; WS2811_PORTB,</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; WS2811_400_PORTB,</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; TM1803_PORTB,</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor">#ifdef PORTC_FIRST_PIN</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; WS2811_PORTC,</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; WS2811_400_PORTC,</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; TM1803_PORTC,</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 PORTD_FIRST_PIN</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; WS2811_PORTD,</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; WS2811_400_PORTD,</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; TM1803_PORTD,</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="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="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor">#ifdef HAS_PORTDC</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; WS2811_PORTDC,</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; WS2811_400_PORTDC,</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; TM1803_PORTDC,</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;};</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="preprocessor">#if defined(LIB8_ATTINY)</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="preprocessor">#define NUM_CONTROLLERS 2</span></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="preprocessor">#define NUM_CONTROLLERS 8</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="preprocessor">#endif</span></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;<span class="keyword">typedef</span> uint8_t (*power_func)(uint8_t scale, uint32_t data);</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
+<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html"> 150</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="l00151"></a><span class="lineno"> 151</span>&#160; <span class="comment">// int m_nControllers;</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; uint8_t m_Scale; </div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; uint16_t m_nFPS; </div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; uint32_t m_nMinMicros; </div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; uint32_t m_nPowerData; </div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; power_func m_pPowerFunc; </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="keyword">public</span>:</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="class_c_fast_l_e_d.html">CFastLED</a>();</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="l00173"></a><span class="lineno"> 173</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="l00174"></a><span class="lineno"> 174</span>&#160;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">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="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</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="l00198"></a><span class="lineno"> 198</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="l00199"></a><span class="lineno"> 199</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="l00200"></a><span class="lineno"> 200</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="l00201"></a><span class="lineno"> 201</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="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">case</span> DOTSTAR:</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</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="l00204"></a><span class="lineno"> 204</span>&#160; }</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; }</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</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="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</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="l00210"></a><span class="lineno"> 210</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="l00211"></a><span class="lineno"> 211</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="l00212"></a><span class="lineno"> 212</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="l00213"></a><span class="lineno"> 213</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="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">case</span> DOTSTAR:</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</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="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;</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</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="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</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="l00222"></a><span class="lineno"> 222</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="l00223"></a><span class="lineno"> 223</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="l00224"></a><span class="lineno"> 224</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="l00225"></a><span class="lineno"> 225</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="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">case</span> DOTSTAR:</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</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="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;</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;</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="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor">#ifdef SPI_DATA</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</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="l00233"></a><span class="lineno"> 233</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="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">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="l00237"></a><span class="lineno"> 237</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="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; <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="l00241"></a><span class="lineno"> 241</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="l00242"></a><span class="lineno"> 242</span>&#160; }</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;</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="l00244"></a><span class="lineno"> 244</span>&#160;<span class="preprocessor">#endif</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="preprocessor">#ifdef FASTLED_HAS_CLOCKLESS</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</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="l00267"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#aa8ec7c8ab7c8aed4d85b9c3d6d5feaa9"> 267</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="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keyword">static</span> CHIPSET&lt;DATA_PIN, RGB_ORDER&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, EOrder RGB_ORDER&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, RGB&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="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="l00279"></a><span class="lineno"> 279</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="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keyword">static</span> CHIPSET&lt;DATA_PIN&gt; c;</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</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="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="preprocessor"> #ifdef FASTSPI_USE_DMX_SIMPLE</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</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="l00286"></a><span class="lineno"> 286</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="l00287"></a><span class="lineno"> 287</span>&#160; {</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</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="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="preprocessor"> #endif</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="preprocessor">#endif</span></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;</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</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="l00315"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#ac4dff92f45048399edb0812a02ab9d96"> 315</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="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keyword">static</span> CHIPSET&lt;RGB_ORDER&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="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="l00321"></a><span class="lineno"> 321</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="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keyword">static</span> CHIPSET&lt;RGB&gt; c;</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</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="l00324"></a><span class="lineno"> 324</span>&#160; }</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="preprocessor">#ifdef USE_OCTOWS2811</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keyword">template</span>&lt;OWS2811 CHIPSET, EOrder RGB_ORDER&gt;</div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</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="l00329"></a><span class="lineno"> 329</span>&#160; {</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</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="l00332"></a><span class="lineno"> 332</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="l00333"></a><span class="lineno"> 333</span>&#160; }</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; }</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keyword">template</span>&lt;OWS2811 CHIPSET&gt;</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</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="l00338"></a><span class="lineno"> 338</span>&#160; {</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">return</span> addLeds&lt;CHIPSET,GRB&gt;(data,nLedsOrOffset,nLedsIfOffset);</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor">#endif</span></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="preprocessor">#ifdef SmartMatrix_h</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keyword">template</span>&lt;ESM CHIPSET&gt;</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</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="l00347"></a><span class="lineno"> 347</span>&#160; {</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</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="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="preprocessor">#endif</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="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="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">#ifdef FASTLED_HAS_BLOCKLESS</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keyword">template</span>&lt;EBlockChipsets CHIPSET, <span class="keywordtype">int</span> NUM_LANES, EOrder RGB_ORDER&gt;</div>
+<div class="line"><a name="l00377"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#aa8ec7c8ab7c8aed4d85b9c3d6d5feaa9"> 377</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="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor"> #ifdef PORTA_FIRST_PIN</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</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="l00381"></a><span class="lineno"> 381</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="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">case</span> TM1803_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(700), NS(1100), NS(700), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor"> #endif</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor"> #ifdef PORTB_FIRST_PIN</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</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="l00386"></a><span class="lineno"> 386</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="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">case</span> TM1803_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, PORTB_FIRST_PIN, NS(700), NS(1100), NS(700), 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 PORTC_FIRST_PIN</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</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="l00391"></a><span class="lineno"> 391</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="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">case</span> TM1803_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(700), NS(1100), NS(700), 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="l00394"></a><span class="lineno"> 394</span>&#160;<span class="preprocessor"> #ifdef PORTD_FIRST_PIN</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</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="l00396"></a><span class="lineno"> 396</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="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">case</span> TM1803_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(700), NS(1100), NS(700), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="preprocessor"> #endif</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="preprocessor"> #ifdef HAS_PORTDC</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</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="l00401"></a><span class="lineno"> 401</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="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">case</span> TM1803_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> InlineBlockClocklessController&lt;NUM_LANES, NS(700), NS(1100), NS(700), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="preprocessor"> #endif</span></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; }</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">template</span>&lt;EBlockChipsets CHIPSET, <span class="keywordtype">int</span> NUM_LANES&gt;</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</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="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">return</span> addLeds&lt;CHIPSET,NUM_LANES,GRB&gt;(data,nLedsOrOffset,nLedsIfOffset);</div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; }</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;</div>
+<div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a730ba7d967e882b4b893689cf333b2eb"> 416</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="l00417"></a><span class="lineno"> 417</span>&#160;</div>
+<div class="line"><a name="l00420"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#ac2615781ec12e025fb17cc0e66281716"> 420</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="l00421"></a><span class="lineno"> 421</span>&#160;</div>
+<div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a996375a3f4a7b8c096f87d8a93c2b196"> 425</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="l00426"></a><span class="lineno"> 426</span>&#160;</div>
+<div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#ab07d62cdec036af9ede70cbd06ece40f"> 429</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="l00430"></a><span class="lineno"> 430</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#a3adb23ec5f919524928d576002cb45de">show</a>(uint8_t scale);</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="l00436"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a3adb23ec5f919524928d576002cb45de"> 436</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="l00437"></a><span class="lineno"> 437</span>&#160;</div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</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="l00441"></a><span class="lineno"> 441</span>&#160;</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</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="l00444"></a><span class="lineno"> 444</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#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="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="l00452"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a570df74cf09e6215c3647333d2b479a9"> 452</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="l00453"></a><span class="lineno"> 453</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#a6819ff831058a710d4582dfc09817202">delay</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> ms);</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="l00463"></a><span class="lineno"> 463</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="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="l00468"></a><span class="lineno"> 468</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="l00469"></a><span class="lineno"> 469</span>&#160;</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</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="l00474"></a><span class="lineno"> 474</span>&#160;</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</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="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="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;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="line"><a name="l00488"></a><span class="lineno"> 488</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="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#aa8c3ae3381e524ce30b181ffa23b83cd"> 492</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="l00493"></a><span class="lineno"> 493</span>&#160;</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</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="l00497"></a><span class="lineno"> 497</span>&#160;</div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</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="l00501"></a><span class="lineno"> 501</span>&#160;</div>
+<div class="line"><a name="l00504"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a18fba22754d2a1a206fc5db8d24a92d0"> 504</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="l00505"></a><span class="lineno"> 505</span>&#160;</div>
+<div class="line"><a name="l00508"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#ae3c0a81b88fb64a65725cb2fed67f766"> 508</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="l00509"></a><span class="lineno"> 509</span>&#160;};</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="preprocessor">#define FastSPI_LED FastLED</span></div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="preprocessor">#define FastSPI_LED2 FastLED</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;<span class="preprocessor">#ifndef LEDS</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="preprocessor">#define LEDS FastLED</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;</div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;<span class="keyword">extern</span> <a class="code" href="class_c_fast_l_e_d.html">CFastLED</a> FastLED;</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="comment">// Warnings for undefined things</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="preprocessor">#ifndef HAS_HARDWARE_PIN_SUPPORT</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</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="l00522"></a><span class="lineno"> 522</span>&#160;<span class="preprocessor">#define NO_HARDWARE_PIN_SUPPORT</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;</div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;</div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;FASTLED_NAMESPACE_END</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="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#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_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#l00315">FastLED.h:315</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#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>
@@ -494,22 +504,22 @@ $(document).ready(function(){initNavTree('_fast_l_e_d_8h_source.html','');});
<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_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#l00504">FastLED.h:504</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#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="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#l00420">FastLED.h:420</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#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#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_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#l00425">FastLED.h:425</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#l00145">FastLED.h:145</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#l00150">FastLED.h:150</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_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#l00267">FastLED.h:267</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>
@@ -519,19 +529,19 @@ $(document).ready(function(){initNavTree('_fast_l_e_d_8h_source.html','');});
<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_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#l00492">FastLED.h:492</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#l00429">FastLED.h:429</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#l00498">FastLED.h:498</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#l00508">FastLED.h:508</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#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#l00426">FastLED.h:426</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#l00436">FastLED.h:436</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>
@@ -543,13 +553,13 @@ $(document).ready(function(){initNavTree('_fast_l_e_d_8h_source.html','');});
<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_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#l00416">FastLED.h:416</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#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_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#l00452">FastLED.h:452</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#l00158">chipsets.h:158</a></div></div>
@@ -575,7 +585,7 @@ $(document).ready(function(){initNavTree('_fast_l_e_d_8h_source.html','');});
<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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 4942e947..90c5de18 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 68132516..841d9521 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
@@ -203,7 +203,7 @@ $(document).ready(function(){initNavTree('_r_e_a_d_m_e_8md.html','');});
<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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 21468017..cff69e2e 100644
--- a/docs/3.1/annotated.html
+++ b/docs/3.1/annotated.html
@@ -212,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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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.html b/docs/3.1/bitswap_8h.html
index e7763441..970fa9b2 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 147c99bb..89fef65c 100644
--- a/docs/3.1/bitswap_8h_source.html
+++ b/docs/3.1/bitswap_8h_source.html
@@ -379,7 +379,7 @@ $(document).ready(function(){initNavTree('bitswap_8h_source.html','');});
<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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 683609fa..3f841b4f 100644
--- a/docs/3.1/chipsets_8h.html
+++ b/docs/3.1/chipsets_8h.html
@@ -216,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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 8c6a5fa2..538fee75 100644
--- a/docs/3.1/chipsets_8h_source.html
+++ b/docs/3.1/chipsets_8h_source.html
@@ -509,7 +509,7 @@ $(document).ready(function(){initNavTree('chipsets_8h_source.html','');});
<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_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#l00377">controller.h:377</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>
@@ -532,7 +532,7 @@ $(document).ready(function(){initNavTree('chipsets_8h_source.html','');});
<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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 05546b47..d62ad0de 100644
--- a/docs/3.1/class_a_p_a102_controller-members.html
+++ b/docs/3.1/class_a_p_a102_controller-members.html
@@ -158,7 +158,7 @@ $(document).ready(function(){initNavTree('class_a_p_a102_controller.html','');})
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 a1efbff2..aabdd440 100644
--- a/docs/3.1/class_a_p_a102_controller.html
+++ b/docs/3.1/class_a_p_a102_controller.html
@@ -312,7 +312,7 @@ class APA102Controller&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_a_p_a102_controller.html">APA102Controller</a></li>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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_a104.html b/docs/3.1/class_a_p_a104.html
index 3419000d..3c3f8dfe 100644
--- a/docs/3.1/class_a_p_a104.html
+++ b/docs/3.1/class_a_p_a104.html
@@ -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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 696d7585..a03c62db 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 6a2a8372..10c3bc05 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
@@ -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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 9f6fd066..2c8c3b1d 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 15b53374..6f0d8e59 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#l01042">1042</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#l01043">1043</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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 1451dd7d..761adb67 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 338d66f2..2a52173c 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#l00145">145</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#l00150">150</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#l00190">190</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#l00195">195</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#l00262">262</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#l00267">267</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#l00310">310</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#l00315">315</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#l00372">372</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#l00377">377</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</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#l00410">410</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#l00420">420</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#l00482">482</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#l00492">492</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#l00498">498</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#l00508">508</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#l00406">406</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#l00416">416</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</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#l00419">419</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#l00429">429</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#l00415">415</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#l00425">425</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</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#l00442">442</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#l00452">452</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#l00494">494</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#l00504">504</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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 97995746..f827e3ed 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 def15f9f..c5cb6247 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#l00438">438</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#l00442">442</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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 b41be16e..504503db 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 7b8e0ebb..62559ea5 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#l00542">542</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#l00546">546</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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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
index 6ceeb6c5..66cc2fb5 100644
--- a/docs/3.1/class_c_h_s_v_palette32-members.html
+++ b/docs/3.1/class_c_h_s_v_palette32-members.html
@@ -137,7 +137,7 @@ $(document).ready(function(){initNavTree('class_c_h_s_v_palette32.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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.html b/docs/3.1/class_c_h_s_v_palette32.html
index d9ce1c10..f5671f08 100644
--- a/docs/3.1/class_c_h_s_v_palette32.html
+++ b/docs/3.1/class_c_h_s_v_palette32.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#l00912">912</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#l00916">916</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_palette32.html">CHSVPalette32</a></li>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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-members.html b/docs/3.1/class_c_l_e_d_controller-members.html
index 29bc3f0c..f7043c48 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
@@ -155,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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 ab393bc2..a6776759 100644
--- a/docs/3.1/class_c_l_e_d_controller.html
+++ b/docs/3.1/class_c_l_e_d_controller.html
@@ -412,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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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-members.html b/docs/3.1/class_c_min_wait-members.html
index 2e689181..1b751cde 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 5cb36406..af25f269 100644
--- a/docs/3.1/class_c_min_wait.html
+++ b/docs/3.1/class_c_min_wait.html
@@ -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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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
index c90c9c9a..c8d33f60 100644
--- 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
@@ -156,7 +156,7 @@ $(document).ready(function(){initNavTree('class_c_pixel_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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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.html b/docs/3.1/class_c_pixel_l_e_d_controller.html
index 3b05046d..c516f2ee 100644
--- a/docs/3.1/class_c_pixel_l_e_d_controller.html
+++ b/docs/3.1/class_c_pixel_l_e_d_controller.html
@@ -279,7 +279,7 @@ static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#
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>
+<p>Definition at line <a class="el" href="controller_8h_source.html#l00377">377</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">
@@ -333,7 +333,7 @@ template&lt;EOrder RGB_ORDER, int LANES = 1, uint32_t MASK = 0xFFFFFFFF&gt; </di
<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>
+<p>Definition at line <a class="el" href="controller_8h_source.html#l00394">394</a> of file <a class="el" href="controller_8h_source.html">controller.h</a>.</p>
</div>
</div>
@@ -389,7 +389,7 @@ template&lt;EOrder RGB_ORDER, int LANES = 1, uint32_t MASK = 0xFFFFFFFF&gt; </di
<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>
+<p>Definition at line <a class="el" href="controller_8h_source.html#l00385">385</a> of file <a class="el" href="controller_8h_source.html">controller.h</a>.</p>
</div>
</div>
@@ -402,7 +402,7 @@ template&lt;EOrder RGB_ORDER, int LANES = 1, uint32_t MASK = 0xFFFFFFFF&gt; </di
<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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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-members.html b/docs/3.1/class_c_pixel_view-members.html
index c796dfdf..fd60634d 100644
--- a/docs/3.1/class_c_pixel_view-members.html
+++ b/docs/3.1/class_c_pixel_view-members.html
@@ -184,7 +184,7 @@ $(document).ready(function(){initNavTree('class_c_pixel_view.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 f554d952..4d96d1f1 100644
--- a/docs/3.1/class_c_pixel_view.html
+++ b/docs/3.1/class_c_pixel_view.html
@@ -726,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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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-members.html b/docs/3.1/class_c_pixel_view_1_1pixelset__iterator__base-members.html
index afb702fb..c81f67e7 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 0f4c7dee..4e295898 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
@@ -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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 78aedcb1..be5079c9 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
@@ -185,7 +185,7 @@ $(document).ready(function(){initNavTree('class_c_r_g_b_array.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 e1377782..3835f85a 100644
--- a/docs/3.1/class_c_r_g_b_array.html
+++ b/docs/3.1/class_c_r_g_b_array.html
@@ -377,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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 afda0e8a..a3acb402 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
@@ -150,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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 7e16dae6..1f7b59cd 100644
--- a/docs/3.1/class_c_r_g_b_palette16.html
+++ b/docs/3.1/class_c_r_g_b_palette16.html
@@ -223,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#l00646">646</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#l00650">650</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>
@@ -233,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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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-members.html b/docs/3.1/class_c_r_g_b_palette256-members.html
index a156a5c4..0ba19484 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
@@ -152,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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 1d2ee617..b49f778f 100644
--- a/docs/3.1/class_c_r_g_b_palette256.html
+++ b/docs/3.1/class_c_r_g_b_palette256.html
@@ -229,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#l01309">1309</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#l01313">1313</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>
@@ -239,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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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_palette32-members.html b/docs/3.1/class_c_r_g_b_palette32-members.html
index 6fd531f6..27f41c75 100644
--- a/docs/3.1/class_c_r_g_b_palette32-members.html
+++ b/docs/3.1/class_c_r_g_b_palette32-members.html
@@ -154,7 +154,7 @@ $(document).ready(function(){initNavTree('class_c_r_g_b_palette32.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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_palette32.html b/docs/3.1/class_c_r_g_b_palette32.html
index 817b2b1c..ed7d4ee8 100644
--- a/docs/3.1/class_c_r_g_b_palette32.html
+++ b/docs/3.1/class_c_r_g_b_palette32.html
@@ -235,7 +235,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#l01018">1018</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#l01022">1022</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>
@@ -245,7 +245,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_palette32.html">CRGBPalette32</a></li>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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-members.html b/docs/3.1/class_d_a_t_a___n_o_p-members.html
index 9d07a7e7..fd176938 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 45473b69..83dc52dc 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
@@ -136,7 +136,7 @@ static&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> (
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:aafcb87c306c2be9f4c332e77691effb5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aafcb87c306c2be9f4c332e77691effb5"></a>
-static register uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>scale</b> { return <a class="el" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data, scale)</td></tr>
+static register uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>scale</b> { return <a class="el" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>(data, scale)</td></tr>
<tr class="separator:aafcb87c306c2be9f4c332e77691effb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 fd2fff8b..aa7320b4 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
@@ -157,7 +157,7 @@ $(document).ready(function(){initNavTree('class_d_m_x_s_e_r_i_a_l.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 1c6acc02..b94ed43a 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
@@ -290,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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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-members.html b/docs/3.1/class_d_m_x_s_i_m_p_l_e-members.html
index d88d8bfb..0b9be783 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
@@ -157,7 +157,7 @@ $(document).ready(function(){initNavTree('class_d_m_x_s_i_m_p_l_e.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 2292b0ba..d1f1eeaa 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
@@ -291,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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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-members.html b/docs/3.1/class_d_m_x_serial_controller-members.html
index e9c5ca8b..11b54379 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
@@ -157,7 +157,7 @@ $(document).ready(function(){initNavTree('class_d_m_x_serial_controller.html',''
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 8d486895..d71b944a 100644
--- a/docs/3.1/class_d_m_x_serial_controller.html
+++ b/docs/3.1/class_d_m_x_serial_controller.html
@@ -293,7 +293,7 @@ class DMXSerialController&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_serial_controller.html">DMXSerialController</a></li>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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-members.html b/docs/3.1/class_d_m_x_simple_controller-members.html
index 0bef5641..b9c83710 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
@@ -157,7 +157,7 @@ $(document).ready(function(){initNavTree('class_d_m_x_simple_controller.html',''
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 c7e58d98..49b7d15a 100644
--- a/docs/3.1/class_d_m_x_simple_controller.html
+++ b/docs/3.1/class_d_m_x_simple_controller.html
@@ -297,7 +297,7 @@ class DMXSimpleController&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_simple_controller.html">DMXSimpleController</a></li>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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-members.html b/docs/3.1/class_fast_pin-members.html
index adc6f136..9be2fdea 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 967d4fcb..2473bc8f 100644
--- a/docs/3.1/class_fast_pin.html
+++ b/docs/3.1/class_fast_pin.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 b429e5ae..4e8e1171 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 b83f96dd..b93b1ac1 100644
--- a/docs/3.1/class_fast_pin_b_b.html
+++ b/docs/3.1/class_fast_pin_b_b.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 77ade27a..2a0d29c2 100644
--- a/docs/3.1/class_g_w6205.html
+++ b/docs/3.1/class_g_w6205.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 effddafe..51b4a3c9 100644
--- a/docs/3.1/class_g_w6205__400.html
+++ b/docs/3.1/class_g_w6205__400.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 67f24f4e..47a5b65e 100644
--- a/docs/3.1/class_g_w6205_controller400_khz.html
+++ b/docs/3.1/class_g_w6205_controller400_khz.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 73b1fffc..4d57eb98 100644
--- a/docs/3.1/class_g_w6205_controller800_khz.html
+++ b/docs/3.1/class_g_w6205_controller800_khz.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 e9bee7d0..d67a914a 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 70118659..aec51778 100644
--- a/docs/3.1/class_input_pin.html
+++ b/docs/3.1/class_input_pin.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 2de80302..f914f934 100644
--- a/docs/3.1/class_l_p_d1886.html
+++ b/docs/3.1/class_l_p_d1886.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 da991460..8bbf990d 100644
--- a/docs/3.1/class_l_p_d1886_controller1250_khz.html
+++ b/docs/3.1/class_l_p_d1886_controller1250_khz.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 87534876..8e0e819f 100644
--- a/docs/3.1/class_l_p_d8806_controller-members.html
+++ b/docs/3.1/class_l_p_d8806_controller-members.html
@@ -158,7 +158,7 @@ $(document).ready(function(){initNavTree('class_l_p_d8806_controller.html','');}
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 1053a592..173fdd36 100644
--- a/docs/3.1/class_l_p_d8806_controller.html
+++ b/docs/3.1/class_l_p_d8806_controller.html
@@ -313,7 +313,7 @@ class LPD8806Controller&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_l_p_d8806_controller.html">LPD8806Controller</a></li>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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_e_o_p_i_x_e_l.html b/docs/3.1/class_n_e_o_p_i_x_e_l.html
index d5d84ab3..4c053e3c 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 b60396e4..f0864124 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 e3761a6e..02529018 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
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 493f7ce3..c855d3bf 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 e3aec8d4..bbf30e57 100644
--- a/docs/3.1/class_output_pin.html
+++ b/docs/3.1/class_output_pin.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 aef7ebb4..813eee8b 100644
--- a/docs/3.1/class_p9813_controller-members.html
+++ b/docs/3.1/class_p9813_controller-members.html
@@ -158,7 +158,7 @@ $(document).ready(function(){initNavTree('class_p9813_controller.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 25bcf5c5..e24ddd08 100644
--- a/docs/3.1/class_p9813_controller.html
+++ b/docs/3.1/class_p9813_controller.html
@@ -312,7 +312,7 @@ class P9813Controller&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_p9813_controller.html">P9813Controller</a></li>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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-members.html b/docs/3.1/class_p_i_x_i_e-members.html
index 587d0510..575b149d 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
@@ -158,7 +158,7 @@ $(document).ready(function(){initNavTree('class_p_i_x_i_e.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 abe55467..4824ca7e 100644
--- a/docs/3.1/class_p_i_x_i_e.html
+++ b/docs/3.1/class_p_i_x_i_e.html
@@ -290,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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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.html b/docs/3.1/class_p_l9823.html
index dee15631..b23782a7 100644
--- a/docs/3.1/class_p_l9823.html
+++ b/docs/3.1/class_p_l9823.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 8894ddee..c8c10d85 100644
--- a/docs/3.1/class_p_l9823_controller.html
+++ b/docs/3.1/class_p_l9823_controller.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 d87b1930..2446bcec 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 8395b086..30f70a11 100644
--- a/docs/3.1/class_pin.html
+++ b/docs/3.1/class_pin.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 4a46f5d7..0e604b0a 100644
--- a/docs/3.1/class_pixie_controller-members.html
+++ b/docs/3.1/class_pixie_controller-members.html
@@ -158,7 +158,7 @@ $(document).ready(function(){initNavTree('class_pixie_controller.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 55c07eb5..cce881e3 100644
--- a/docs/3.1/class_pixie_controller.html
+++ b/docs/3.1/class_pixie_controller.html
@@ -306,7 +306,7 @@ class PixieController&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_pixie_controller.html">PixieController</a></li>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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-members.html b/docs/3.1/class_r_e_f_hardware_s_p_i_output-members.html
index 01aae661..a3bea720 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 6b497da1..7c6c4f82 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
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 60533abb..43fa7822 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 507e062c..84c9ecbf 100644
--- a/docs/3.1/class_s_k6812_controller.html
+++ b/docs/3.1/class_s_k6812_controller.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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
index ab035503..86d386a2 100644
--- a/docs/3.1/class_s_k6822.html
+++ b/docs/3.1/class_s_k6822.html
@@ -144,7 +144,7 @@ class SK6822&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_k6822.html">SK6822</a></li>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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_controller.html b/docs/3.1/class_s_k6822_controller.html
index 874edb6c..10a01b43 100644
--- a/docs/3.1/class_s_k6822_controller.html
+++ b/docs/3.1/class_s_k6822_controller.html
@@ -142,7 +142,7 @@ class SK6822Controller&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_k6822_controller.html">SK6822Controller</a></li>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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-members.html b/docs/3.1/class_s_m16716_controller-members.html
index cd3b0fcc..d6cb448e 100644
--- a/docs/3.1/class_s_m16716_controller-members.html
+++ b/docs/3.1/class_s_m16716_controller-members.html
@@ -158,7 +158,7 @@ $(document).ready(function(){initNavTree('class_s_m16716_controller.html','');})
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 ce11a0fc..68281386 100644
--- a/docs/3.1/class_s_m16716_controller.html
+++ b/docs/3.1/class_s_m16716_controller.html
@@ -312,7 +312,7 @@ class SM16716Controller&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_s_m16716_controller.html">SM16716Controller</a></li>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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-members.html b/docs/3.1/class_s_p_i_output-members.html
index 6f90b685..8e56b4c8 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 8afa0baf..b9e77ab5 100644
--- a/docs/3.1/class_s_p_i_output.html
+++ b/docs/3.1/class_s_p_i_output.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 2e126ea1..d83640e9 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
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 c4484aab..62074ab7 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
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 5b5041e5..0fe6b02e 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
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 da3528f0..21171fdc 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
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 40b8fdc8..1091cc23 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
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 9556c26a..1243041e 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
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 df779f95..6489e8cb 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 abfa8a73..45c14a9d 100644
--- a/docs/3.1/class_selectable.html
+++ b/docs/3.1/class_selectable.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 04b78a3e..e0214f6d 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 590afbdb..50cb975f 100644
--- a/docs/3.1/class_software_s_p_i_output.html
+++ b/docs/3.1/class_software_s_p_i_output.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 1ad603ea..0fa9d479 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 b18eaa14..874e5452 100644
--- a/docs/3.1/class_t_m1803_controller400_khz.html
+++ b/docs/3.1/class_t_m1803_controller400_khz.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 e4e533a7..5db2924d 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 9f13a273..8739beba 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 8b8af2c4..370e42cb 100644
--- a/docs/3.1/class_t_m1809_controller800_khz.html
+++ b/docs/3.1/class_t_m1809_controller800_khz.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 9062de55..9e9e094f 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 64fd465e..9ccc942f 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 2625166e..59314651 100644
--- a/docs/3.1/class_t_m1829_controller1600_khz.html
+++ b/docs/3.1/class_t_m1829_controller1600_khz.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 896f3235..d3cceab3 100644
--- a/docs/3.1/class_t_m1829_controller800_khz.html
+++ b/docs/3.1/class_t_m1829_controller800_khz.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 123724e2..559683e8 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 b1dc1552..1d5dbad0 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 1f6f6cc7..0f20cee4 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
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 8aca7d2b..e5ce175a 100644
--- a/docs/3.1/class_u_c_s1903_controller400_khz.html
+++ b/docs/3.1/class_u_c_s1903_controller400_khz.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 6738294f..8ae7c82c 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 56e276ed..f11785ce 100644
--- a/docs/3.1/class_u_c_s1904_controller800_khz.html
+++ b/docs/3.1/class_u_c_s1904_controller800_khz.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 ccfbb990..2c03951b 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 5961b1b7..59d81b67 100644
--- a/docs/3.1/class_u_c_s2903_controller.html
+++ b/docs/3.1/class_u_c_s2903_controller.html
@@ -142,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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 dc9253b6..f668c974 100644
--- a/docs/3.1/class_w_s2801_controller-members.html
+++ b/docs/3.1/class_w_s2801_controller-members.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 0e8ad238..e5cce086 100644
--- a/docs/3.1/class_w_s2801_controller.html
+++ b/docs/3.1/class_w_s2801_controller.html
@@ -312,7 +312,7 @@ class WS2801Controller&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_s2801_controller.html">WS2801Controller</a></li>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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-members.html b/docs/3.1/class_w_s2803_controller-members.html
index e77b9814..9e6826bd 100644
--- a/docs/3.1/class_w_s2803_controller-members.html
+++ b/docs/3.1/class_w_s2803_controller-members.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 216a110a..fc5b97e4 100644
--- a/docs/3.1/class_w_s2803_controller.html
+++ b/docs/3.1/class_w_s2803_controller.html
@@ -291,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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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.html b/docs/3.1/class_w_s2811.html
index 499d45c0..5dd6f2a0 100644
--- a/docs/3.1/class_w_s2811.html
+++ b/docs/3.1/class_w_s2811.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 ecbc8a8c..176fc0bb 100644
--- a/docs/3.1/class_w_s2811__400.html
+++ b/docs/3.1/class_w_s2811__400.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 78b69ee7..ad95f13b 100644
--- a/docs/3.1/class_w_s2811_controller400_khz.html
+++ b/docs/3.1/class_w_s2811_controller400_khz.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 8315bc3e..8a97f702 100644
--- a/docs/3.1/class_w_s2811_controller800_khz.html
+++ b/docs/3.1/class_w_s2811_controller800_khz.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 de4e44a7..57ed8767 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 6eeda95a..f5b60b16 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 e9d75e07..ff2a5f1e 100644
--- a/docs/3.1/class_w_s2812_controller800_khz.html
+++ b/docs/3.1/class_w_s2812_controller800_khz.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 fa50eea9..40d8065e 100644
--- a/docs/3.1/classes.html
+++ b/docs/3.1/classes.html
@@ -168,7 +168,7 @@ $(document).ready(function(){initNavTree('classes.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 127642e4..b40fbc9c 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 8a1f3569..e67781c7 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#l00753">753</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#l00754">754</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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 7e688799..4653774e 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 9198b139..300ef338 100644
--- a/docs/3.1/color_8h_source.html
+++ b/docs/3.1/color_8h_source.html
@@ -179,7 +179,7 @@ $(document).ready(function(){initNavTree('color_8h_source.html','');});
<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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 d06b02f3..977ec521 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 4d875280..a26b0402 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 366ea120..7e0ef146 100644
--- a/docs/3.1/colorpalettes_8h_source.html
+++ b/docs/3.1/colorpalettes_8h_source.html
@@ -149,7 +149,7 @@ $(document).ready(function(){initNavTree('colorpalettes_8h_source.html','');});
<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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 889e17bd..3aa68420 100644
--- a/docs/3.1/colorutils_8cpp_source.html
+++ b/docs/3.1/colorutils_8cpp_source.html
@@ -172,7 +172,7 @@ $(document).ready(function(){initNavTree('colorutils_8cpp_source.html','');});
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;}</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</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="l00064"></a><span class="lineno"><a class="line" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88"> 64</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds,</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; uint16_t startpos, <a class="code" href="struct_c_r_g_b.html">CRGB</a> startcolor,</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; uint16_t endpos, <a class="code" href="struct_c_r_g_b.html">CRGB</a> endcolor )</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div>
@@ -232,54 +232,54 @@ $(document).ready(function(){initNavTree('colorutils_8cpp_source.html','');});
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( FastLED[0].leds(), FastLED[0].size(), c1, c2, c3, c4);</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="keywordtype">void</span> fill_gradient_RGB( <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="l00124"></a><span class="lineno"> 124</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</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="l00125"></a><span class="lineno"> 125</span>&#160;{</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; fill_gradient_RGB( FastLED[0].leds(), FastLED[0].size(), c1, c2);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( FastLED[0].leds(), FastLED[0].size(), c1, c2);</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;}</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="keywordtype">void</span> fill_gradient_RGB( <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="l00129"></a><span class="lineno"> 129</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</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="l00130"></a><span class="lineno"> 130</span>&#160;{</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; fill_gradient_RGB( FastLED[0].leds(), FastLED[0].size(), c1, c2, c3);</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( FastLED[0].leds(), FastLED[0].size(), c1, c2, c3);</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="keywordtype">void</span> fill_gradient_RGB( <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="l00134"></a><span class="lineno"> 134</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</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="l00135"></a><span class="lineno"> 135</span>&#160;{</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; fill_gradient_RGB( FastLED[0].leds(), FastLED[0].size(), c1, c2, c3, c4);</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( FastLED[0].leds(), FastLED[0].size(), c1, c2, c3, c4);</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;}</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</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="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="l00143"></a><span class="lineno"> 143</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( <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="l00144"></a><span class="lineno"> 144</span>&#160;{</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; uint16_t last = numLeds - 1;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; fill_gradient_RGB( leds, 0, c1, last, c2);</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( leds, 0, c1, last, c2);</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;<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="l00150"></a><span class="lineno"> 150</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( <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="l00151"></a><span class="lineno"> 151</span>&#160;{</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; uint16_t half = (numLeds / 2);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; uint16_t last = numLeds - 1;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; fill_gradient_RGB( leds, 0, c1, half, c2);</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; fill_gradient_RGB( leds, half, c2, last, c3);</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( leds, 0, c1, half, c2);</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( leds, half, c2, last, c3);</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="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="l00158"></a><span class="lineno"> 158</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( <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="l00159"></a><span class="lineno"> 159</span>&#160;{</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; uint16_t onethird = (numLeds / 3);</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; uint16_t twothirds = ((numLeds * 2) / 3);</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; uint16_t last = numLeds - 1;</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; fill_gradient_RGB( leds, 0, c1, onethird, c2);</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; fill_gradient_RGB( leds, onethird, c2, twothirds, c3);</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; fill_gradient_RGB( leds, twothirds, c3, last, c4);</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( leds, 0, c1, onethird, c2);</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( leds, onethird, c2, twothirds, c3);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( leds, twothirds, c3, last, c4);</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="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="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="l00171"></a><span class="lineno"><a class="line" href="group___colorutils.html#ga956be37436f2b9c06c99d24263ef8e83"> 171</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga956be37436f2b9c06c99d24263ef8e83">nscale8_video</a>( <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="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">for</span>( uint16_t i = 0; i &lt; num_leds; i++) {</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; leds[i].<a class="code" href="struct_c_r_g_b.html#a8bb881dd011552b412af2845562b0df3">nscale8_video</a>( scale);</div>
@@ -288,38 +288,38 @@ $(document).ready(function(){initNavTree('colorutils_8cpp_source.html','');});
<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="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="l00179"></a><span class="lineno"> 179</span>&#160;{</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; nscale8_video( leds, num_leds, 255 - fadeBy);</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="group___colorutils.html#ga956be37436f2b9c06c99d24263ef8e83">nscale8_video</a>( leds, num_leds, 255 - fadeBy);</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;}</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<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="l00183"></a><span class="lineno"><a class="line" href="group___colorutils.html#gac1e25878d16efa6112d907738f525773"> 183</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#gac1e25878d16efa6112d907738f525773">fadeLightBy</a>(<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="l00184"></a><span class="lineno"> 184</span>&#160;{</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; nscale8_video( leds, num_leds, 255 - fadeBy);</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="group___colorutils.html#ga956be37436f2b9c06c99d24263ef8e83">nscale8_video</a>( leds, num_leds, 255 - fadeBy);</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;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</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="l00189"></a><span class="lineno"><a class="line" href="group___colorutils.html#ga404d163d8a422cee2df2baac4151ca98"> 189</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga404d163d8a422cee2df2baac4151ca98">fadeToBlackBy</a>( <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="l00190"></a><span class="lineno"> 190</span>&#160;{</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; nscale8( leds, num_leds, 255 - fadeBy);</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="group___colorutils.html#gad0356fc313196732e7cd4e64f506f82b">nscale8</a>( leds, num_leds, 255 - fadeBy);</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="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="l00195"></a><span class="lineno"> 195</span>&#160;{</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; nscale8( leds, num_leds, 255 - fadeBy);</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="group___colorutils.html#gad0356fc313196732e7cd4e64f506f82b">nscale8</a>( leds, num_leds, 255 - fadeBy);</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;</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="keywordtype">void</span> nscale8_raw( <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="l00200"></a><span class="lineno"> 200</span>&#160;{</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; nscale8( leds, num_leds, scale);</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="group___colorutils.html#gad0356fc313196732e7cd4e64f506f82b">nscale8</a>( leds, num_leds, scale);</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="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="l00204"></a><span class="lineno"><a class="line" href="group___colorutils.html#gad0356fc313196732e7cd4e64f506f82b"> 204</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#gad0356fc313196732e7cd4e64f506f82b">nscale8</a>( <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="l00205"></a><span class="lineno"> 205</span>&#160;{</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">for</span>( uint16_t i = 0; i &lt; num_leds; i++) {</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; leds[i].<a class="code" href="struct_c_r_g_b.html#aa80fd3b2990b00a963aa009a3c4d095a">nscale8</a>( scale);</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;</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</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="l00211"></a><span class="lineno"><a class="line" href="group___colorutils.html#gae8c0a05b75034b4a2cae20ddc70ec15f"> 211</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#gae8c0a05b75034b4a2cae20ddc70ec15f">fadeUsingColor</a>( <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="l00212"></a><span class="lineno"> 212</span>&#160;{</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; uint8_t fr, fg, fb;</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; fr = colormask.r;</div>
@@ -327,14 +327,14 @@ $(document).ready(function(){initNavTree('colorutils_8cpp_source.html','');});
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; fb = colormask.b;</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="keywordflow">for</span>( uint16_t i = 0; i &lt; numLeds; i++) {</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; leds[i].r = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( leds[i].r, fr);</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; leds[i].g = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( leds[i].g, fg);</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; leds[i].b = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a> ( leds[i].b, fb);</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; leds[i].r = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( leds[i].r, fr);</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; leds[i].g = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( leds[i].g, fg);</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; leds[i].b = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a> ( leds[i].b, fb);</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;</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</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="l00226"></a><span class="lineno"><a class="line" href="group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335"> 226</a></span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; <a class="code" href="group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335">nblend</a>( <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="l00227"></a><span class="lineno"> 227</span>&#160;{</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">if</span>( amountOfOverlay == 0) {</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">return</span> existing;</div>
@@ -347,47 +347,47 @@ $(document).ready(function(){initNavTree('colorutils_8cpp_source.html','');});
<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; <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfKeep = 255 - amountOfOverlay;</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; existing.red = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( existing.red, amountOfKeep)</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; + <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( overlay.red, amountOfOverlay);</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; existing.green = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( existing.green, amountOfKeep)</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; + <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( overlay.green, amountOfOverlay);</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; existing.blue = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( existing.blue, amountOfKeep)</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; + <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( overlay.blue, amountOfOverlay);</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; existing.red = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( existing.red, amountOfKeep)</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; + <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( overlay.red, amountOfOverlay);</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; existing.green = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( existing.green, amountOfKeep)</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; + <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( overlay.green, amountOfOverlay);</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; existing.blue = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( existing.blue, amountOfKeep)</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; + <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( overlay.blue, amountOfOverlay);</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; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a>();</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> existing;</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="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="l00253"></a><span class="lineno"><a class="line" href="group___colorutils.html#ga63e89e8505c65e973218d1638dda3b04"> 253</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335">nblend</a>( <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="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">for</span>( uint16_t i = count; i; i--) {</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; nblend( *existing, *overlay, amountOfOverlay);</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <a class="code" href="group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335">nblend</a>( *existing, *overlay, amountOfOverlay);</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; existing++;</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; overlay++;</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; }</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;}</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</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="l00262"></a><span class="lineno"><a class="line" href="group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c"> 262</a></span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> <a class="code" href="group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c">blend</a>( <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="l00263"></a><span class="lineno"> 263</span>&#160;{</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> nu(p1);</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; nblend( nu, p2, amountOfP2);</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335">nblend</a>( nu, p2, amountOfP2);</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">return</span> nu;</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;<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, uint16_t count, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfsrc2 )</div>
+<div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="group___colorutils.html#gabea64e23b31132c325ea0c1fef0d3f13"> 269</a></span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a>* <a class="code" href="group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c">blend</a>( <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, uint16_t count, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfsrc2 )</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="keywordflow">for</span>( uint16_t i = 0; i &lt; count; i++) {</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; dest[i] = blend(src1[i], src2[i], amountOfsrc2);</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; dest[i] = <a class="code" href="group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c">blend</a>(src1[i], src2[i], amountOfsrc2);</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="keywordflow">return</span> dest;</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;</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;<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, TGradientDirectionCode directionCode)</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; <a class="code" href="group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335">nblend</a>( <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, TGradientDirectionCode directionCode)</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;{</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">if</span>( amountOfOverlay == 0) {</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">return</span> existing;</div>
@@ -417,47 +417,47 @@ $(document).ready(function(){initNavTree('colorutils_8cpp_source.html','');});
<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="keywordflow">if</span>( directionCode == FORWARD_HUES) {</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; existing.hue = existing.hue + <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( huedelta8, amountOfOverlay);</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; existing.hue = existing.hue + <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( huedelta8, amountOfOverlay);</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">else</span> <span class="comment">/* directionCode == BACKWARD_HUES */</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; huedelta8 = -huedelta8;</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; existing.hue = existing.hue - <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( huedelta8, amountOfOverlay);</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; existing.hue = existing.hue - <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( huedelta8, amountOfOverlay);</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; existing.sat = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( existing.sat, amountOfKeep)</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; + <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( overlay.sat, amountOfOverlay);</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; existing.val = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( existing.val, amountOfKeep)</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; + <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( overlay.val, amountOfOverlay);</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; existing.sat = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( existing.sat, amountOfKeep)</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; + <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( overlay.sat, amountOfOverlay);</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; existing.val = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( existing.val, amountOfKeep)</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; + <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( overlay.val, amountOfOverlay);</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; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <a class="code" href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a>();</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">return</span> existing;</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;}</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</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="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, TGradientDirectionCode directionCode )</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335">nblend</a>( <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, TGradientDirectionCode directionCode )</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="keywordflow">if</span>(existing == overlay) <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">for</span>( uint16_t i = count; i; i--) {</div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; nblend( *existing, *overlay, amountOfOverlay, directionCode);</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <a class="code" href="group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335">nblend</a>( *existing, *overlay, amountOfOverlay, directionCode);</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; existing++;</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; overlay++;</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; }</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;}</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;</div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</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, TGradientDirectionCode directionCode )</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a> <a class="code" href="group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c">blend</a>( <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, TGradientDirectionCode directionCode )</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; <a class="code" href="struct_c_h_s_v.html">CHSV</a> nu(p1);</div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; nblend( nu, p2, amountOfP2, directionCode);</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <a class="code" href="group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335">nblend</a>( nu, p2, amountOfP2, directionCode);</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">return</span> nu;</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;<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, uint16_t count, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfsrc2, TGradientDirectionCode directionCode )</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a>* <a class="code" href="group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c">blend</a>( <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, uint16_t count, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfsrc2, TGradientDirectionCode directionCode )</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="keywordflow">for</span>( uint16_t i = 0; i &lt; count; i++) {</div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; dest[i] = blend(src1[i], src2[i], amountOfsrc2, directionCode);</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; dest[i] = <a class="code" href="group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c">blend</a>(src1[i], src2[i], amountOfsrc2, directionCode);</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">return</span> dest;</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;}</div>
@@ -482,7 +482,7 @@ $(document).ready(function(){initNavTree('colorutils_8cpp_source.html','');});
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="comment">// calls to &#39;blur&#39; will also result in the light fading,</span></div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="comment">// eventually all the way to black; this is by design so that</span></div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="comment">// it can be used to (slowly) clear the LEDs to black.</span></div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</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="l00374"></a><span class="lineno"><a class="line" href="group___colorutils.html#gaacf0416f9e0438f23f92d0df6c338ea3"> 374</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#gaacf0416f9e0438f23f92d0df6c338ea3">blur1d</a>( <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="l00375"></a><span class="lineno"> 375</span>&#160;{</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; uint8_t keep = 255 - blur_amount;</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; uint8_t seep = blur_amount &gt;&gt; 1;</div>
@@ -501,21 +501,21 @@ $(document).ready(function(){initNavTree('colorutils_8cpp_source.html','');});
<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="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="l00392"></a><span class="lineno"> 392</span>&#160;{</div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; blurRows(leds, width, height, blur_amount);</div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; blurColumns(leds, width, height, blur_amount);</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <a class="code" href="group___colorutils.html#ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b">blurRows</a>(leds, width, height, blur_amount);</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <a class="code" href="group___colorutils.html#gacb40363ff285a5d816a1cf3096e27c14">blurColumns</a>(leds, width, height, blur_amount);</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="comment">// blurRows: perform a blur1d on every row of a rectangular matrix</span></div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</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="l00398"></a><span class="lineno"><a class="line" href="group___colorutils.html#ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b"> 398</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b">blurRows</a>( <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="l00399"></a><span class="lineno"> 399</span>&#160;{</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">for</span>( uint8_t row = 0; row &lt; height; row++) {</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a>* rowbase = leds + (row * width);</div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; blur1d( rowbase, width, blur_amount);</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <a class="code" href="group___colorutils.html#gaacf0416f9e0438f23f92d0df6c338ea3">blur1d</a>( rowbase, width, blur_amount);</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;</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="comment">// blurColumns: perform a blur1d on each column of a rectangular matrix</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</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="l00407"></a><span class="lineno"><a class="line" href="group___colorutils.html#gacb40363ff285a5d816a1cf3096e27c14"> 407</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#gacb40363ff285a5d816a1cf3096e27c14">blurColumns</a>(<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="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">// blur columns</span></div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; uint8_t keep = 255 - blur_amount;</div>
@@ -548,14 +548,14 @@ $(document).ready(function(){initNavTree('colorutils_8cpp_source.html','');});
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="comment">// On AVR/Arduino, this typically takes around 70 bytes of program memory,</span></div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;<span class="comment">// versus 768 bytes for a full 256-entry RGB lookup table.</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;<a class="code" href="struct_c_r_g_b.html">CRGB</a> HeatColor( uint8_t temperature)</div>
+<div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="group___colorutils.html#gac5c6b83ec07d310385a430f9f0336530"> 440</a></span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> <a class="code" href="group___colorutils.html#gac5c6b83ec07d310385a430f9f0336530">HeatColor</a>( uint8_t temperature)</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;{</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> heatcolor;</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; <span class="comment">// Scale &#39;heat&#39; down from 0-255 to 0-191,</span></div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="comment">// which can then be easily divided into three</span></div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="comment">// equal &#39;thirds&#39; of 64 units each.</span></div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; uint8_t t192 = <a class="code" href="group___scaling.html#ga333095ffa436c94d3e77ee9dc39da1c1">scale8_video</a>( temperature, 192);</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; uint8_t t192 = <a class="code" href="group___scaling.html#ga628b417ea1507e3447cdf5f308d9b6d5">scale8_video</a>( temperature, 192);</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="comment">// calculate a value that ramps up from</span></div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="comment">// zero to 255 in each &#39;third&#39; of the scale.</span></div>
@@ -619,7 +619,7 @@ $(document).ready(function(){initNavTree('colorutils_8cpp_source.html','');});
<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="l00511"></a><span class="lineno"> 511</span>&#160; uint8_t <a class="code" href="group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c">blend</a> = 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>
@@ -639,634 +639,706 @@ $(document).ready(function(){initNavTree('colorutils_8cpp_source.html','');});
<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="l00531"></a><span class="lineno"> 531</span>&#160; red1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">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#ga7386235cada3aca429b189681d2ec56d">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; 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="l00536"></a><span class="lineno"> 536</span>&#160; green1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">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#ga7386235cada3aca429b189681d2ec56d">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; 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="l00541"></a><span class="lineno"> 541</span>&#160; blue1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">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#ga7386235cada3aca429b189681d2ec56d">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="l00545"></a><span class="lineno"> 545</span>&#160; <a class="code" href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">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;<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; 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="l00552"></a><span class="lineno"> 552</span>&#160; <span class="comment">// we can just to scale8 and then add one (unless scale8 fixed) 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 ) {</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; red1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( red1, brightness);</div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="preprocessor">#if !(FASTLED_SCALE8_FIXED==1)</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; red1++;</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;<span class="preprocessor">#endif</span></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="keywordflow">if</span>( green1 ) {</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; green1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( green1, brightness);</div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;<span class="preprocessor">#if !(FASTLED_SCALE8_FIXED==1)</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; green1++;</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;<span class="preprocessor">#endif</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; <span class="keywordflow">if</span>( blue1 ) {</div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; blue1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( blue1, brightness);</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="preprocessor">#if !(FASTLED_SCALE8_FIXED==1)</span></div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; blue1++;</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="preprocessor">#endif</span></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; <a class="code" href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a>();</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; red1 = 0;</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; green1 = 0;</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; blue1 = 0;</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; }</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; }</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; <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="l00580"></a><span class="lineno"> 580</span>&#160;}</div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;</div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <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; 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 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="l00582"></a><span class="lineno"> 582</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="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">// hi4 = index &gt;&gt; 4;</span></div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; uint8_t hi4 = lsrX4(index);</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; uint8_t lo4 = index &amp; 0x0F;</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; <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="l00589"></a><span class="lineno"> 589</span>&#160; </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 red1 = entry.red;</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; uint8_t green1 = entry.green;</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; uint8_t blue1 = entry.blue;</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; uint8_t blend = lo4 &amp;&amp; (blendType != NOBLEND);</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="keywordflow">if</span>( blend ) {</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="keywordflow">if</span>( hi4 == 15 ) {</div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; entry = FL_PGM_READ_DWORD_NEAR( &amp;(pal[0]) );</div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; entry = FL_PGM_READ_DWORD_NEAR( &amp;(pal[1]) + hi4 );</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; uint8_t f2 = lo4 &lt;&lt; 4;</div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; uint8_t f1 = 255 - f2;</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="l00608"></a><span class="lineno"> 608</span>&#160; uint8_t red2 = entry.red;</div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; red1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( red1, f1);</div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; red2 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( red2, f2);</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; red1 += red2;</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; uint8_t green2 = entry.green;</div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; green1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( green1, f1);</div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; green2 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( green2, f2);</div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; green1 += green2;</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 blue2 = entry.blue;</div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; blue1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( blue1, f1);</div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; blue2 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( blue2, f2);</div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; blue1 += blue2;</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; <a class="code" href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a>();</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; <span class="keywordflow">if</span>( brightness != 255) {</div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="keywordflow">if</span>( brightness ) {</div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; brightness++; <span class="comment">// adjust for rounding</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</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="l00630"></a><span class="lineno"> 630</span>&#160; <span class="comment">// we can just to scale8 and then add one (unless scale8 fixed) to all nonzero inputs.</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="keywordflow">if</span>( red1 ) {</div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; red1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( red1, brightness);</div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;<span class="preprocessor">#if !(FASTLED_SCALE8_FIXED==1)</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; red1++;</div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;<span class="preprocessor">#endif</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="keywordflow">if</span>( green1 ) {</div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; green1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( green1, brightness);</div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;<span class="preprocessor">#if !(FASTLED_SCALE8_FIXED==1)</span></div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; green1++;</div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;<span class="preprocessor">#endif</span></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="keywordflow">if</span>( blue1 ) {</div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; blue1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( blue1, brightness);</div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;<span class="preprocessor">#if !(FASTLED_SCALE8_FIXED==1)</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; blue1++;</div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;<span class="preprocessor">#endif</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; <a class="code" href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a>();</div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; red1 = 0;</div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; green1 = 0;</div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; blue1 = 0;</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; }</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">return</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( red1, green1, blue1);</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;<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="l00662"></a><span class="lineno"> 662</span>&#160;{</div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; uint8_t hi5 = index;</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;<span class="preprocessor">#if defined(__AVR__)</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; hi5 /= 2;</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; hi5 /= 2;</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; hi5 /= 2;</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; hi5 &gt;&gt;= 3;</div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; uint8_t lo3 = index &amp; 0x07;</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="comment">// const CRGB* entry = &amp;(pal[0]) + hi5;</span></div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</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="l00675"></a><span class="lineno"> 675</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="l00676"></a><span class="lineno"> 676</span>&#160; <span class="comment">// So, we multiply hi5 X sizeof(CRGB), giving hi5XsizeofCRGB;</span></div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</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="l00678"></a><span class="lineno"> 678</span>&#160; <span class="comment">// We then add that to a base array pointer.</span></div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</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="l00680"></a><span class="lineno"> 680</span>&#160; </div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; uint8_t red1 = entry-&gt;red;</div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; uint8_t green1 = entry-&gt;green;</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; uint8_t blue1 = entry-&gt;blue;</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; uint8_t blend = lo3 &amp;&amp; (blendType != NOBLEND);</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="l00687"></a><span class="lineno"> 687</span>&#160; <span class="keywordflow">if</span>( blend ) {</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">if</span>( hi5 == 31 ) {</div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; entry = &amp;(pal[0]);</div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; entry++;</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; </div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; uint8_t f2 = lo3 &lt;&lt; 5;</div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; uint8_t f1 = 255 - f2;</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; uint8_t red2 = entry-&gt;red;</div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; red1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( red1, f1);</div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; red2 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( red2, f2);</div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; red1 += red2;</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; uint8_t green2 = entry-&gt;green;</div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; green1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( green1, f1);</div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; green2 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( green2, f2);</div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; green1 += green2;</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; uint8_t blue2 = entry-&gt;blue;</div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; blue1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( blue1, f1);</div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; blue2 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( blue2, f2);</div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; blue1 += blue2;</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="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a>();</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; </div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="keywordflow">if</span>( brightness != 255) {</div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <span class="keywordflow">if</span>( brightness ) {</div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; brightness++; <span class="comment">// adjust for rounding</span></div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</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="l00721"></a><span class="lineno"> 721</span>&#160; <span class="comment">// we can just to scale8 and then add one (unless scale8 fixed) to all nonzero inputs.</span></div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="keywordflow">if</span>( red1 ) {</div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; red1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( red1, brightness);</div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;<span class="preprocessor">#if !(FASTLED_SCALE8_FIXED==1)</span></div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; red1++;</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; <span class="keywordflow">if</span>( green1 ) {</div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; green1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( green1, brightness);</div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;<span class="preprocessor">#if !(FASTLED_SCALE8_FIXED==1)</span></div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; green1++;</div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; }</div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <span class="keywordflow">if</span>( blue1 ) {</div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; blue1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( blue1, brightness);</div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;<span class="preprocessor">#if !(FASTLED_SCALE8_FIXED==1)</span></div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; blue1++;</div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;<span class="preprocessor">#endif</span></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; <a class="code" href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a>();</div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; red1 = 0;</div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; green1 = 0;</div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; blue1 = 0;</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; <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="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="l00752"></a><span class="lineno"> 752</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="l00753"></a><span class="lineno"> 753</span>&#160;{</div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; uint8_t hi5 = index;</div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;<span class="preprocessor">#if defined(__AVR__)</span></div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; hi5 /= 2;</div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; hi5 /= 2;</div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; hi5 /= 2;</div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; hi5 &gt;&gt;= 3;</div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; uint8_t lo3 = index &amp; 0x07;</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; <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="l00765"></a><span class="lineno"> 765</span>&#160; </div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; uint8_t red1 = entry.red;</div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; uint8_t green1 = entry.green;</div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; uint8_t blue1 = entry.blue;</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; uint8_t blend = lo3 &amp;&amp; (blendType != NOBLEND);</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; 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;</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="l00772"></a><span class="lineno"> 772</span>&#160; <span class="keywordflow">if</span>( blend ) {</div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; </div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keywordflow">if</span>( hi5 == 31 ) {</div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; entry = FL_PGM_READ_DWORD_NEAR( &amp;(pal[0]) );</div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; entry = FL_PGM_READ_DWORD_NEAR( &amp;(pal[1]) + hi5 );</div>
+<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; }</div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; </div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; uint8_t f2 = lo3 &lt;&lt; 5;</div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; uint8_t f1 = 255 - f2;</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; uint8_t red2 = entry.red;</div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; red1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( red1, f1);</div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; red2 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( red2, f2);</div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; red1 += red2;</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; uint8_t green2 = entry.green;</div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; green1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( green1, f1);</div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; green2 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( green2, f2);</div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; green1 += green2;</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; uint8_t blue2 = entry.blue;</div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; blue1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( blue1, f1);</div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; blue2 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( blue2, f2);</div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; blue1 += blue2;</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___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a>();</div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; }</div>
+<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; </div>
+<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <span class="keywordflow">if</span>( brightness != 255) {</div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="keywordflow">if</span>( brightness ) {</div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; brightness++; <span class="comment">// adjust for rounding</span></div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</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="l00805"></a><span class="lineno"> 805</span>&#160; <span class="comment">// we can just to scale8 and then add one (unless scale8 fixed) to all nonzero inputs.</span></div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="keywordflow">if</span>( red1 ) {</div>
+<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; red1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( red1, brightness);</div>
+<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;<span class="preprocessor">#if !(FASTLED_SCALE8_FIXED==1)</span></div>
+<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; red1++;</div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;<span class="preprocessor">#endif</span></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>( green1 ) {</div>
+<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; green1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( green1, brightness);</div>
+<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;<span class="preprocessor">#if !(FASTLED_SCALE8_FIXED==1)</span></div>
+<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; green1++;</div>
+<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;<span class="preprocessor">#endif</span></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">if</span>( blue1 ) {</div>
+<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; blue1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( blue1, brightness);</div>
+<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160;<span class="preprocessor">#if !(FASTLED_SCALE8_FIXED==1)</span></div>
+<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; blue1++;</div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;<span class="preprocessor">#endif</span></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="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a>();</div>
+<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; red1 = 0;</div>
+<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; green1 = 0;</div>
+<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; blue1 = 0;</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="l00831"></a><span class="lineno"> 831</span>&#160; </div>
+<div class="line"><a name="l00832"></a><span class="lineno"> 832</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="l00833"></a><span class="lineno"> 833</span>&#160;}</div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;</div>
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;</div>
-<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; <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="l00836"></a><span class="lineno"> 836</span>&#160;</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> 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="l00838"></a><span class="lineno"> 838</span>&#160;{</div>
+<div class="line"><a name="l00839"></a><span class="lineno"> 839</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="l00840"></a><span class="lineno"> 840</span>&#160;</div>
+<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; uint8_t red = entry-&gt;red;</div>
+<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; uint8_t green = entry-&gt;green;</div>
+<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; uint8_t blue = entry-&gt;blue;</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; <span class="keywordflow">if</span>( brightness != 255) {</div>
+<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; brightness++; <span class="comment">// adjust for rounding</span></div>
+<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; red = <a class="code" href="group___scaling.html#gaf8e0821f34434cd6bfed4a16a895da23">scale8_video_LEAVING_R1_DIRTY</a>( red, brightness);</div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; green = <a class="code" href="group___scaling.html#gaf8e0821f34434cd6bfed4a16a895da23">scale8_video_LEAVING_R1_DIRTY</a>( green, brightness);</div>
+<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; blue = <a class="code" href="group___scaling.html#gaf8e0821f34434cd6bfed4a16a895da23">scale8_video_LEAVING_R1_DIRTY</a>( blue, brightness);</div>
+<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <a class="code" href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a>();</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;</div>
+<div class="line"><a name="l00853"></a><span class="lineno"> 853</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="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;</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="l00857"></a><span class="lineno"> 857</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="l00858"></a><span class="lineno"> 858</span>&#160;{</div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; <span class="comment">// hi4 = index &gt;&gt; 4;</span></div>
+<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; uint8_t hi4 = lsrX4(index);</div>
+<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; uint8_t lo4 = index &amp; 0x0F;</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; <span class="comment">// CRGB rgb1 = pal[ hi4];</span></div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</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="l00865"></a><span class="lineno"> 865</span>&#160;</div>
+<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; uint8_t hue1 = entry-&gt;hue;</div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; uint8_t sat1 = entry-&gt;sat;</div>
+<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; uint8_t val1 = entry-&gt;val;</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="l00870"></a><span class="lineno"> 870</span>&#160; uint8_t blend = lo4 &amp;&amp; (blendType != NOBLEND);</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; <span class="keywordflow">if</span>( blend ) {</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; <span class="keywordflow">if</span>( hi4 == 15 ) {</div>
+<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; entry = &amp;(pal[0]);</div>
+<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; entry++;</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="l00880"></a><span class="lineno"> 880</span>&#160; uint8_t f2 = lo4 &lt;&lt; 4;</div>
+<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; uint8_t f1 = 255 - f2;</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 hue2 = entry-&gt;hue;</div>
+<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; uint8_t sat2 = entry-&gt;sat;</div>
+<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; uint8_t val2 = entry-&gt;val;</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; <span class="comment">// Now some special casing for blending to or from</span></div>
+<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; <span class="comment">// either black or white. Black and white don&#39;t have</span></div>
+<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; <span class="comment">// proper &#39;hue&#39; of their own, so when ramping from</span></div>
+<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; <span class="comment">// something else to/from black/white, we set the &#39;hue&#39;</span></div>
+<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <span class="comment">// of the black/white color to be the same as the hue</span></div>
+<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; <span class="comment">// of the other color, so that you get the expected</span></div>
+<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <span class="comment">// brightness or saturation ramp, with hue staying</span></div>
+<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; <span class="comment">// constant:</span></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; <span class="comment">// If we are starting from white (sat=0)</span></div>
+<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; <span class="comment">// or black (val=0), adopt the target hue.</span></div>
+<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; <span class="keywordflow">if</span>( sat1 == 0 || val1 == 0) {</div>
+<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; hue1 = hue2;</div>
+<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; }</div>
+<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160;</div>
+<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; <span class="comment">// If we are ending at white (sat=0)</span></div>
+<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; <span class="comment">// or black (val=0), adopt the starting hue.</span></div>
+<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; <span class="keywordflow">if</span>( sat2 == 0 || val2 == 0) {</div>
+<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; hue2 = hue1;</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; sat1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( sat1, f1);</div>
+<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; val1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( val1, f1);</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; sat2 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( sat2, f2);</div>
+<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; val2 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( val2, f2);</div>
+<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160;</div>
+<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <span class="comment">// cleanup_R1();</span></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">// These sums can&#39;t overflow, so no qadd8 needed.</span></div>
+<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; sat1 += sat2;</div>
+<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; val1 += val2;</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; uint8_t deltaHue = (uint8_t)(hue2 - hue1);</div>
+<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <span class="keywordflow">if</span>( deltaHue &amp; 0x80 ) {</div>
+<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; <span class="comment">// go backwards</span></div>
+<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; hue1 -= <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( 255 - deltaHue, f2);</div>
+<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; <span class="comment">// go forwards</span></div>
+<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; hue1 += <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( deltaHue, f2);</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;</div>
+<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; <a class="code" href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a>();</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;</div>
+<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; <span class="keywordflow">if</span>( brightness != 255) {</div>
+<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; val1 = <a class="code" href="group___scaling.html#ga628b417ea1507e3447cdf5f308d9b6d5">scale8_video</a>( val1, brightness);</div>
+<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; }</div>
+<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160;</div>
+<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; <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="l00938"></a><span class="lineno"> 938</span>&#160;}</div>
+<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160;</div>
+<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160;</div>
+<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160;<a class="code" href="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="l00942"></a><span class="lineno"> 942</span>&#160;{</div>
+<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; uint8_t hi5 = index;</div>
+<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160;<span class="preprocessor">#if defined(__AVR__)</span></div>
+<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; hi5 /= 2;</div>
+<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; hi5 /= 2;</div>
+<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; hi5 /= 2;</div>
+<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; hi5 &gt;&gt;= 3;</div>
+<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; uint8_t lo3 = index &amp; 0x07;</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; 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="l00954"></a><span class="lineno"> 954</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="l00955"></a><span class="lineno"> 955</span>&#160; </div>
+<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; uint8_t hue1 = entry-&gt;hue;</div>
+<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; uint8_t sat1 = entry-&gt;sat;</div>
+<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; uint8_t val1 = entry-&gt;val;</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; uint8_t blend = lo3 &amp;&amp; (blendType != NOBLEND);</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">if</span>( blend ) {</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="keywordflow">if</span>( hi5 == 31 ) {</div>
+<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; entry = &amp;(pal[0]);</div>
+<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; entry++;</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; uint8_t f2 = lo3 &lt;&lt; 5;</div>
+<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; uint8_t f1 = 255 - f2;</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; uint8_t hue2 = entry-&gt;hue;</div>
+<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; uint8_t sat2 = entry-&gt;sat;</div>
+<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; uint8_t val2 = entry-&gt;val;</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="comment">// Now some special casing for blending to or from</span></div>
+<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; <span class="comment">// either black or white. Black and white don&#39;t have</span></div>
+<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; <span class="comment">// proper &#39;hue&#39; of their own, so when ramping from</span></div>
+<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; <span class="comment">// something else to/from black/white, we set the &#39;hue&#39;</span></div>
+<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; <span class="comment">// of the black/white color to be the same as the hue</span></div>
+<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <span class="comment">// of the other color, so that you get the expected</span></div>
+<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; <span class="comment">// brightness or saturation ramp, with hue staying</span></div>
+<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; <span class="comment">// constant:</span></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; <span class="comment">// If we are starting from white (sat=0)</span></div>
+<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; <span class="comment">// or black (val=0), adopt the target hue.</span></div>
+<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; <span class="keywordflow">if</span>( sat1 == 0 || val1 == 0) {</div>
+<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; hue1 = hue2;</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; </div>
+<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; <span class="comment">// If we are ending at white (sat=0)</span></div>
+<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; <span class="comment">// or black (val=0), adopt the starting hue.</span></div>
+<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; <span class="keywordflow">if</span>( sat2 == 0 || val2 == 0) {</div>
+<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; hue2 = hue1;</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; </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; sat1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( sat1, f1);</div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; val1 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( val1, f1);</div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; </div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; sat2 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( sat2, f2);</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; val2 = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( val2, f2);</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; <span class="comment">// cleanup_R1();</span></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; <span class="comment">// These sums can&#39;t overflow, so no qadd8 needed.</span></div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; sat1 += sat2;</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; val1 += val2;</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; uint8_t deltaHue = (uint8_t)(hue2 - hue1);</div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; <span class="keywordflow">if</span>( deltaHue &amp; 0x80 ) {</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; <span class="comment">// go backwards</span></div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; hue1 -= <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( 255 - deltaHue, f2);</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; <span class="comment">// go forwards</span></div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; hue1 += <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( deltaHue, f2);</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; </div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; <a class="code" href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a>();</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; }</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; </div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; <span class="keywordflow">if</span>( brightness != 255) {</div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; val1 = <a class="code" href="group___scaling.html#ga628b417ea1507e3447cdf5f308d9b6d5">scale8_video</a>( val1, brightness);</div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; }</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; </div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; <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="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="l01030"></a><span class="lineno"> 1030</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="l01031"></a><span class="lineno"> 1031</span>&#160;{</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</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="l01033"></a><span class="lineno"> 1033</span>&#160;</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; <span class="keywordflow">if</span>( brightness != 255) {</div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; hsv.value = <a class="code" href="group___scaling.html#ga628b417ea1507e3447cdf5f308d9b6d5">scale8_video</a>( hsv.value, brightness);</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;</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; <span class="keywordflow">return</span> hsv;</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="l01041"></a><span class="lineno"> 1041</span>&#160;</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</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="l01043"></a><span class="lineno"> 1043</span>&#160;{</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; destpal256[(uint8_t)(i)] = ColorFromPalette( srcpal16, i);</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; }</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;}</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;<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="l01050"></a><span class="lineno"> 1050</span>&#160;{</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; destpal256[(uint8_t)(i)] = ColorFromPalette( srcpal16, i);</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;</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;<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="l01058"></a><span class="lineno"> 1058</span>&#160;{</div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; uint8_t j = i * 2;</div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; destpal32[j+0] = srcpal16[i];</div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; destpal32[j+1] = srcpal16[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;</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</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="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; 16; i++) {</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; uint8_t j = i * 2;</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; destpal32[j+0] = srcpal16[i];</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; destpal32[j+1] = srcpal16[i];</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;}</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="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="l01076"></a><span class="lineno"> 1076</span>&#160;{</div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; destpal256[(uint8_t)(i)] = ColorFromPalette( srcpal32, i);</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;</div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</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="l01083"></a><span class="lineno"> 1083</span>&#160;{</div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; destpal256[(uint8_t)(i)] = ColorFromPalette( srcpal32, i);</div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; }</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;}</div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;</div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;</div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;<span class="preprocessor">#if 0</span></div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;<span class="comment">// replaced by PartyColors_p</span></div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</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="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="line"><a name="l01095"></a><span class="lineno"> 1095</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="l01096"></a><span class="lineno"> 1096</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="l01097"></a><span class="lineno"> 1097</span>&#160;}</div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;</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;<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="l01102"></a><span class="lineno"> 1102</span>&#160;{</div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; uint8_t* p1;</div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; uint8_t* p2;</div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; uint8_t changes = 0;</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; p1 = (uint8_t*)current.entries;</div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; p2 = (uint8_t*)target.entries;</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; <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="l01111"></a><span class="lineno"> 1111</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; totalChannels; i++) {</div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; <span class="comment">// if the values are equal, no changes are needed</span></div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; <span class="keywordflow">if</span>( p1[i] == p2[i] ) { <span class="keywordflow">continue</span>; }</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; <span class="comment">// if the current value is less than the target, increase it by one</span></div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; <span class="keywordflow">if</span>( p1[i] &lt; p2[i] ) { p1[i]++; changes++; }</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="comment">// if the current value is greater than the target,</span></div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; <span class="comment">// increase it by one (or two if it&#39;s still greater).</span></div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; <span class="keywordflow">if</span>( p1[i] &gt; p2[i] ) {</div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; p1[i]--; changes++;</div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; <span class="keywordflow">if</span>( p1[i] &gt; p2[i] ) { p1[i]--; }</div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; }</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="comment">// if we&#39;ve hit the maximum number of changes, exit</span></div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; <span class="keywordflow">if</span>( changes &gt;= maxChanges) { <span class="keywordflow">break</span>; }</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; }</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;}</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;</div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;uint8_t applyGamma_video( uint8_t brightness, <span class="keywordtype">float</span> gamma)</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;{</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; <span class="keywordtype">float</span> orig;</div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; <span class="keywordtype">float</span> adj;</div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; orig = (float)(brightness) / (255.0);</div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; adj = pow( orig, gamma) * (255.0);</div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; uint8_t result = (uint8_t)(adj);</div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; <span class="keywordflow">if</span>( (brightness &gt; 0) &amp;&amp; (result == 0)) {</div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; result = 1; <span class="comment">// never gamma-adjust a positive number down to zero</span></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; <span class="keywordflow">return</span> result;</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;</div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</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="l01145"></a><span class="lineno"> 1145</span>&#160;{</div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> adj;</div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; adj.r = applyGamma_video( orig.r, gamma);</div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; adj.g = applyGamma_video( orig.g, gamma);</div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; adj.b = applyGamma_video( orig.b, gamma);</div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; <span class="keywordflow">return</span> adj;</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;</div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> applyGamma_video( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; orig, <span class="keywordtype">float</span> gammaR, <span class="keywordtype">float</span> gammaG, <span class="keywordtype">float</span> gammaB)</div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;{</div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> adj;</div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; adj.r = applyGamma_video( orig.r, gammaR);</div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; adj.g = applyGamma_video( orig.g, gammaG);</div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; adj.b = applyGamma_video( orig.b, gammaB);</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; <span class="keywordflow">return</span> adj;</div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;}</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;<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="l01163"></a><span class="lineno"> 1163</span>&#160;{</div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; rgb = applyGamma_video( rgb, gamma);</div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; <span class="keywordflow">return</span> rgb;</div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;}</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;<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="l01169"></a><span class="lineno"> 1169</span>&#160;{</div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; rgb = applyGamma_video( rgb, gammaR, gammaG, gammaB);</div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; <span class="keywordflow">return</span> rgb;</div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;}</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;<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="l01175"></a><span class="lineno"> 1175</span>&#160;{</div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; <span class="keywordflow">for</span>( uint16_t i = 0; i &lt; count; i++) {</div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; rgbarray[i] = applyGamma_video( rgbarray[i], gamma);</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;</div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</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="l01182"></a><span class="lineno"> 1182</span>&#160;{</div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; <span class="keywordflow">for</span>( uint16_t i = 0; i &lt; count; i++) {</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; rgbarray[i] = applyGamma_video( rgbarray[i], gammaR, gammaG, gammaB);</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; }</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;</div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;</div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="ttc" id="group___colorutils_html_gaacf0416f9e0438f23f92d0df6c338ea3"><div class="ttname"><a href="group___colorutils.html#gaacf0416f9e0438f23f92d0df6c338ea3">blur1d</a></div><div class="ttdeci">void blur1d(CRGB *leds, uint16_t numLeds, fract8 blur_amount)</div><div class="ttdoc">blur1d: one-dimensional blur filter. </div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00374">colorutils.cpp:374</a></div></div>
+<div class="ttc" id="group___colorutils_html_gacb40363ff285a5d816a1cf3096e27c14"><div class="ttname"><a href="group___colorutils.html#gacb40363ff285a5d816a1cf3096e27c14">blurColumns</a></div><div class="ttdeci">void blurColumns(CRGB *leds, uint8_t width, uint8_t height, fract8 blur_amount)</div><div class="ttdoc">blurColumns: perform a blur1d on each column of a rectangular matrix </div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00407">colorutils.cpp:407</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_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#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#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="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#l01022">colorutils.h:1022</a></div></div>
+<div class="ttc" id="group___scaling_html_ga3fade00fb4cf5b937b973128198a7a79"><div class="ttname"><a href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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#l00299">scale8.h:299</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#l00354">lib8tion.h:354</a></div></div>
+<div class="ttc" id="group___colorutils_html_gae8c0a05b75034b4a2cae20ddc70ec15f"><div class="ttname"><a href="group___colorutils.html#gae8c0a05b75034b4a2cae20ddc70ec15f">fadeUsingColor</a></div><div class="ttdeci">void fadeUsingColor(CRGB *leds, uint16_t numLeds, const CRGB &amp;colormask)</div><div class="ttdoc">fadeUsingColor - scale down the brightness of an array of pixels, as though it were seen through a tr...</div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00211">colorutils.cpp:211</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#l00546">colorutils.h:546</a></div></div>
+<div class="ttc" id="group___scaling_html_gaf8e0821f34434cd6bfed4a16a895da23"><div class="ttname"><a href="group___scaling.html#gaf8e0821f34434cd6bfed4a16a895da23">scale8_video_LEAVING_R1_DIRTY</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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#l00230">scale8.h:230</a></div></div>
+<div class="ttc" id="group___scaling_html_ga628b417ea1507e3447cdf5f308d9b6d5"><div class="ttname"><a href="group___scaling.html#ga628b417ea1507e3447cdf5f308d9b6d5">scale8_video</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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#l00098">scale8.h:98</a></div></div>
+<div class="ttc" id="group___colorutils_html_gad0356fc313196732e7cd4e64f506f82b"><div class="ttname"><a href="group___colorutils.html#gad0356fc313196732e7cd4e64f506f82b">nscale8</a></div><div class="ttdeci">void nscale8(CRGB *leds, uint16_t num_leds, uint8_t scale)</div><div class="ttdoc">nscale8 - scale down the brightness of an array of pixels all at once. </div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00204">colorutils.cpp:204</a></div></div>
+<div class="ttc" id="group___colorutils_html_ga956be37436f2b9c06c99d24263ef8e83"><div class="ttname"><a href="group___colorutils.html#ga956be37436f2b9c06c99d24263ef8e83">nscale8_video</a></div><div class="ttdeci">void nscale8_video(CRGB *leds, uint16_t num_leds, uint8_t scale)</div><div class="ttdoc">nscale8_video - scale down the brightness of an array of pixels all at once. </div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00171">colorutils.cpp:171</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#l00650">colorutils.h:650</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#l00335">lib8tion.h:335</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_a8bb881dd011552b412af2845562b0df3"><div class="ttname"><a href="struct_c_r_g_b.html#a8bb881dd011552b412af2845562b0df3">CRGB::nscale8_video</a></div><div class="ttdeci">CRGB &amp; nscale8_video(uint8_t scaledown)</div><div class="ttdoc">scale down a RGB to N 256ths of it&#39;s current brightness, using &#39;video&#39; dimming rules, which means that unless the scale factor is ZERO each channel is guaranteed NOT to dim down to zero. </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00329">pixeltypes.h:329</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="struct_c_r_g_b_html_aa80fd3b2990b00a963aa009a3c4d095a"><div class="ttname"><a href="struct_c_r_g_b.html#aa80fd3b2990b00a963aa009a3c4d095a">CRGB::nscale8</a></div><div class="ttdeci">CRGB &amp; nscale8(uint8_t scaledown)</div><div class="ttdoc">scale down a RGB to N 256ths of it&#39;s current brightness, using &#39;plain math&#39; dimming rules...</div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00353">pixeltypes.h:353</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="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#l01309">colorutils.h:1309</a></div></div>
+<div class="ttc" id="group___colorutils_html_ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b"><div class="ttname"><a href="group___colorutils.html#ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b">blurRows</a></div><div class="ttdeci">void blurRows(CRGB *leds, uint8_t width, uint8_t height, fract8 blur_amount)</div><div class="ttdoc">blurRows: perform a blur1d on every row of a rectangular matrix </div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00398">colorutils.cpp:398</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#l00916">colorutils.h:916</a></div></div>
+<div class="ttc" id="group___colorutils_html_gac1e25878d16efa6112d907738f525773"><div class="ttname"><a href="group___colorutils.html#gac1e25878d16efa6112d907738f525773">fadeLightBy</a></div><div class="ttdeci">void fadeLightBy(CRGB *leds, uint16_t num_leds, uint8_t fadeBy)</div><div class="ttdoc">fadeLightBy and fade_video - reduce the brightness of an array of pixels all at once. </div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00183">colorutils.cpp:183</a></div></div>
+<div class="ttc" id="group___colorutils_html_ga4f06b4423f71f77346aaf5dabe7dd05c"><div class="ttname"><a href="group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c">blend</a></div><div class="ttdeci">CRGB blend(const CRGB &amp;p1, const CRGB &amp;p2, fract8 amountOfP2)</div><div class="ttdoc">Pixel blending. </div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00262">colorutils.cpp:262</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#l00442">colorutils.h:442</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#l01313">colorutils.h:1313</a></div></div>
+<div class="ttc" id="group___colorutils_html_ga404d163d8a422cee2df2baac4151ca98"><div class="ttname"><a href="group___colorutils.html#ga404d163d8a422cee2df2baac4151ca98">fadeToBlackBy</a></div><div class="ttdeci">void fadeToBlackBy(CRGB *leds, uint16_t num_leds, uint8_t fadeBy)</div><div class="ttdoc">fadeToBlackBy and fade_raw - reduce the brightness of an array of pixels all at once. </div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00189">colorutils.cpp:189</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___scaling_html_gad7535ccda9c92470c4e6ee0265585555"><div class="ttname"><a href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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="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 class="ttc" id="group___scaling_html_ga7386235cada3aca429b189681d2ec56d"><div class="ttname"><a href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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#l00146">scale8.h:146</a></div></div>
+<div class="ttc" id="group___colorutils_html_ga6afaa1f712186a4b67445f69871cad88"><div class="ttname"><a href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a></div><div class="ttdeci">void fill_gradient_RGB(CRGB *leds, uint16_t startpos, CRGB startcolor, uint16_t endpos, CRGB endcolor)</div><div class="ttdoc">fill_gradient_RGB - fill a range of LEDs with a smooth RGB gradient between two specified RGB colors...</div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00064">colorutils.cpp:64</a></div></div>
+<div class="ttc" id="group___colorutils_html_ga9ddce40dda09fb46db19c55368baf335"><div class="ttname"><a href="group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335">nblend</a></div><div class="ttdeci">CRGB &amp; nblend(CRGB &amp;existing, const CRGB &amp;overlay, fract8 amountOfOverlay)</div><div class="ttdoc">nblend - destructively modifies one color, blending in a given fraction of an overlay color ...</div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00226">colorutils.cpp:226</a></div></div>
+<div class="ttc" id="group___colorutils_html_gac5c6b83ec07d310385a430f9f0336530"><div class="ttname"><a href="group___colorutils.html#gac5c6b83ec07d310385a430f9f0336530">HeatColor</a></div><div class="ttdeci">CRGB HeatColor(uint8_t temperature)</div><div class="ttdoc">CRGB HeatColor( uint8_t temperature) </div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00440">colorutils.cpp:440</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>colorutils.cpp</b></li>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 9248a884..b5b60dfb 100644
--- a/docs/3.1/colorutils_8h.html
+++ b/docs/3.1/colorutils_8h.html
@@ -207,18 +207,21 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grou
<tr class="separator:ga3144bb2bb66aeed33e20f4fdd6cc1a98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gace693b077794f9b6aa80875fdd550a68"><td class="memTemplParams" colspan="2"><a class="anchor" id="gace693b077794f9b6aa80875fdd550a68"></a>
template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gace693b077794f9b6aa80875fdd550a68"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fill_gradient</b> (T *targetArray, uint16_t numLeds, 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, TGradientDirectionCode directionCode=SHORTEST_HUES)</td></tr>
+<tr class="memitem:gace693b077794f9b6aa80875fdd550a68"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group___colorutils.html#gace693b077794f9b6aa80875fdd550a68">fill_gradient</a> (T *targetArray, uint16_t numLeds, 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, TGradientDirectionCode directionCode=SHORTEST_HUES)</td></tr>
+<tr class="memdesc:gace693b077794f9b6aa80875fdd550a68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience functions to fill an array of colors with a two-color. <br /></td></tr>
<tr class="separator:gace693b077794f9b6aa80875fdd550a68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3a46ed6b7043382df172d7501785033c"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga3a46ed6b7043382df172d7501785033c"></a>
template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga3a46ed6b7043382df172d7501785033c"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fill_gradient</b> (T *targetArray, uint16_t numLeds, 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, TGradientDirectionCode directionCode=SHORTEST_HUES)</td></tr>
+<tr class="memitem:ga3a46ed6b7043382df172d7501785033c"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group___colorutils.html#ga3a46ed6b7043382df172d7501785033c">fill_gradient</a> (T *targetArray, uint16_t numLeds, 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, TGradientDirectionCode directionCode=SHORTEST_HUES)</td></tr>
+<tr class="memdesc:ga3a46ed6b7043382df172d7501785033c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience functions to fill an array of colors with a three-color. <br /></td></tr>
<tr class="separator:ga3a46ed6b7043382df172d7501785033c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga396996c5e505e459b418330f4386f779"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga396996c5e505e459b418330f4386f779"></a>
template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga396996c5e505e459b418330f4386f779"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fill_gradient</b> (T *targetArray, uint16_t numLeds, 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, TGradientDirectionCode directionCode=SHORTEST_HUES)</td></tr>
+<tr class="memitem:ga396996c5e505e459b418330f4386f779"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group___colorutils.html#ga396996c5e505e459b418330f4386f779">fill_gradient</a> (T *targetArray, uint16_t numLeds, 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, TGradientDirectionCode directionCode=SHORTEST_HUES)</td></tr>
+<tr class="memdesc:ga396996c5e505e459b418330f4386f779"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience functions to fill an array of colors with a four-color gradient. <br /></td></tr>
<tr class="separator:ga396996c5e505e459b418330f4386f779"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6afaa1f712186a4b67445f69871cad88"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6afaa1f712186a4b67445f69871cad88"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_gradient_RGB</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t startpos, <a class="el" href="struct_c_r_g_b.html">CRGB</a> startcolor, uint16_t endpos, <a class="el" href="struct_c_r_g_b.html">CRGB</a> endcolor)</td></tr>
+<tr class="memitem:ga6afaa1f712186a4b67445f69871cad88"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t startpos, <a class="el" href="struct_c_r_g_b.html">CRGB</a> startcolor, uint16_t endpos, <a class="el" href="struct_c_r_g_b.html">CRGB</a> endcolor)</td></tr>
+<tr class="memdesc:ga6afaa1f712186a4b67445f69871cad88"><td class="mdescLeft">&#160;</td><td class="mdescRight">fill_gradient_RGB - fill a range of LEDs with a smooth RGB gradient between two specified RGB colors. <a href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">More...</a><br /></td></tr>
<tr class="separator:ga6afaa1f712186a4b67445f69871cad88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad86495ad60871dacb19923fe9ddde262"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad86495ad60871dacb19923fe9ddde262"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_gradient_RGB</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t numLeds, 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>
@@ -229,65 +232,69 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_gradient_RGB</b>
<tr class="memitem:ga570fbfd0ac82ef3e4e05d3958b641d7a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga570fbfd0ac82ef3e4e05d3958b641d7a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_gradient_RGB</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t numLeds, 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:ga570fbfd0ac82ef3e4e05d3958b641d7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac1e25878d16efa6112d907738f525773"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac1e25878d16efa6112d907738f525773"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>fadeLightBy</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t num_leds, uint8_t fadeBy)</td></tr>
+<tr class="memitem:gac1e25878d16efa6112d907738f525773"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#gac1e25878d16efa6112d907738f525773">fadeLightBy</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t num_leds, uint8_t fadeBy)</td></tr>
+<tr class="memdesc:gac1e25878d16efa6112d907738f525773"><td class="mdescLeft">&#160;</td><td class="mdescRight">fadeLightBy and fade_video - reduce the brightness of an array of pixels all at once. <a href="group___colorutils.html#gac1e25878d16efa6112d907738f525773">More...</a><br /></td></tr>
<tr class="separator:gac1e25878d16efa6112d907738f525773"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaff656b0046fac0d40b8eb02941ce1755"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaff656b0046fac0d40b8eb02941ce1755"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fade_video</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t num_leds, uint8_t fadeBy)</td></tr>
<tr class="separator:gaff656b0046fac0d40b8eb02941ce1755"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga956be37436f2b9c06c99d24263ef8e83"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga956be37436f2b9c06c99d24263ef8e83"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>nscale8_video</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t num_leds, uint8_t scale)</td></tr>
+<tr class="memitem:ga956be37436f2b9c06c99d24263ef8e83"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#ga956be37436f2b9c06c99d24263ef8e83">nscale8_video</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t num_leds, uint8_t scale)</td></tr>
+<tr class="memdesc:ga956be37436f2b9c06c99d24263ef8e83"><td class="mdescLeft">&#160;</td><td class="mdescRight">nscale8_video - scale down the brightness of an array of pixels all at once. <a href="group___colorutils.html#ga956be37436f2b9c06c99d24263ef8e83">More...</a><br /></td></tr>
<tr class="separator:ga956be37436f2b9c06c99d24263ef8e83"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga404d163d8a422cee2df2baac4151ca98"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga404d163d8a422cee2df2baac4151ca98"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>fadeToBlackBy</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t num_leds, uint8_t fadeBy)</td></tr>
+<tr class="memitem:ga404d163d8a422cee2df2baac4151ca98"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#ga404d163d8a422cee2df2baac4151ca98">fadeToBlackBy</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t num_leds, uint8_t fadeBy)</td></tr>
+<tr class="memdesc:ga404d163d8a422cee2df2baac4151ca98"><td class="mdescLeft">&#160;</td><td class="mdescRight">fadeToBlackBy and fade_raw - reduce the brightness of an array of pixels all at once. <a href="group___colorutils.html#ga404d163d8a422cee2df2baac4151ca98">More...</a><br /></td></tr>
<tr class="separator:ga404d163d8a422cee2df2baac4151ca98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac020b03041306ed9c859bbdfebe943cf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac020b03041306ed9c859bbdfebe943cf"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fade_raw</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t num_leds, uint8_t fadeBy)</td></tr>
<tr class="separator:gac020b03041306ed9c859bbdfebe943cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad0356fc313196732e7cd4e64f506f82b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad0356fc313196732e7cd4e64f506f82b"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>nscale8</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t num_leds, uint8_t scale)</td></tr>
+<tr class="memitem:gad0356fc313196732e7cd4e64f506f82b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#gad0356fc313196732e7cd4e64f506f82b">nscale8</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t num_leds, uint8_t scale)</td></tr>
+<tr class="memdesc:gad0356fc313196732e7cd4e64f506f82b"><td class="mdescLeft">&#160;</td><td class="mdescRight">nscale8 - scale down the brightness of an array of pixels all at once. <a href="group___colorutils.html#gad0356fc313196732e7cd4e64f506f82b">More...</a><br /></td></tr>
<tr class="separator:gad0356fc313196732e7cd4e64f506f82b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae8c0a05b75034b4a2cae20ddc70ec15f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae8c0a05b75034b4a2cae20ddc70ec15f"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>fadeUsingColor</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t numLeds, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colormask)</td></tr>
+<tr class="memitem:gae8c0a05b75034b4a2cae20ddc70ec15f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#gae8c0a05b75034b4a2cae20ddc70ec15f">fadeUsingColor</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t numLeds, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colormask)</td></tr>
+<tr class="memdesc:gae8c0a05b75034b4a2cae20ddc70ec15f"><td class="mdescLeft">&#160;</td><td class="mdescRight">fadeUsingColor - scale down the brightness of an array of pixels, as though it were seen through a transparent filter with the specified color. <a href="group___colorutils.html#gae8c0a05b75034b4a2cae20ddc70ec15f">More...</a><br /></td></tr>
<tr class="separator:gae8c0a05b75034b4a2cae20ddc70ec15f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4f06b4423f71f77346aaf5dabe7dd05c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4f06b4423f71f77346aaf5dabe7dd05c"></a>
-<a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>blend</b> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;p1, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;p2, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfP2)</td></tr>
+<tr class="memitem:ga4f06b4423f71f77346aaf5dabe7dd05c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c">blend</a> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;p1, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;p2, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfP2)</td></tr>
+<tr class="memdesc:ga4f06b4423f71f77346aaf5dabe7dd05c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pixel blending. <a href="group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c">More...</a><br /></td></tr>
<tr class="separator:ga4f06b4423f71f77346aaf5dabe7dd05c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0d242048cc8978be5ea70a6c33402721"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0d242048cc8978be5ea70a6c33402721"></a>
<a class="el" href="struct_c_h_s_v.html">CHSV</a>&#160;</td><td class="memItemRight" valign="bottom"><b>blend</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;p1, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;p2, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfP2, TGradientDirectionCode directionCode=SHORTEST_HUES)</td></tr>
<tr class="separator:ga0d242048cc8978be5ea70a6c33402721"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabea64e23b31132c325ea0c1fef0d3f13"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabea64e23b31132c325ea0c1fef0d3f13"></a>
-<a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>blend</b> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> *src1, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> *src2, <a class="el" href="struct_c_r_g_b.html">CRGB</a> *dest, uint16_t count, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfsrc2)</td></tr>
+<tr class="memitem:gabea64e23b31132c325ea0c1fef0d3f13"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#gabea64e23b31132c325ea0c1fef0d3f13">blend</a> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> *src1, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> *src2, <a class="el" href="struct_c_r_g_b.html">CRGB</a> *dest, uint16_t count, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfsrc2)</td></tr>
+<tr class="memdesc:gabea64e23b31132c325ea0c1fef0d3f13"><td class="mdescLeft">&#160;</td><td class="mdescRight">blend - computes a new color blended array of colors, each a given fraction of the way between corresponding elements of two source arrays of colors. <a href="group___colorutils.html#gabea64e23b31132c325ea0c1fef0d3f13">More...</a><br /></td></tr>
<tr class="separator:gabea64e23b31132c325ea0c1fef0d3f13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2b2bd0aead5cac9ed7a51f7da845bdaa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2b2bd0aead5cac9ed7a51f7da845bdaa"></a>
<a class="el" href="struct_c_h_s_v.html">CHSV</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>blend</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> *src1, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> *src2, <a class="el" href="struct_c_h_s_v.html">CHSV</a> *dest, uint16_t count, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfsrc2, TGradientDirectionCode directionCode=SHORTEST_HUES)</td></tr>
<tr class="separator:ga2b2bd0aead5cac9ed7a51f7da845bdaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9ddce40dda09fb46db19c55368baf335"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9ddce40dda09fb46db19c55368baf335"></a>
-<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>nblend</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;existing, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;overlay, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay)</td></tr>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335">nblend</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;existing, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;overlay, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay)</td></tr>
+<tr class="memdesc:ga9ddce40dda09fb46db19c55368baf335"><td class="mdescLeft">&#160;</td><td class="mdescRight">nblend - destructively modifies one color, blending in a given fraction of an overlay color <br /></td></tr>
<tr class="separator:ga9ddce40dda09fb46db19c55368baf335"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad6e2224119d7df0c7f6fffd6b603bb27"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad6e2224119d7df0c7f6fffd6b603bb27"></a>
<a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>nblend</b> (<a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;existing, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;overlay, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay, TGradientDirectionCode directionCode=SHORTEST_HUES)</td></tr>
<tr class="separator:gad6e2224119d7df0c7f6fffd6b603bb27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga63e89e8505c65e973218d1638dda3b04"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga63e89e8505c65e973218d1638dda3b04"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>nblend</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *existing, <a class="el" href="struct_c_r_g_b.html">CRGB</a> *overlay, uint16_t count, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay)</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#ga63e89e8505c65e973218d1638dda3b04">nblend</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *existing, <a class="el" href="struct_c_r_g_b.html">CRGB</a> *overlay, uint16_t count, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay)</td></tr>
+<tr class="memdesc:ga63e89e8505c65e973218d1638dda3b04"><td class="mdescLeft">&#160;</td><td class="mdescRight">nblend - destructively blends a given fraction of a new color array into an existing color array <br /></td></tr>
<tr class="separator:ga63e89e8505c65e973218d1638dda3b04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6d07fb779bbeddd59a9025cdc64594d6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6d07fb779bbeddd59a9025cdc64594d6"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>nblend</b> (<a class="el" href="struct_c_h_s_v.html">CHSV</a> *existing, <a class="el" href="struct_c_h_s_v.html">CHSV</a> *overlay, uint16_t count, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay, TGradientDirectionCode directionCode=SHORTEST_HUES)</td></tr>
<tr class="separator:ga6d07fb779bbeddd59a9025cdc64594d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaacf0416f9e0438f23f92d0df6c338ea3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaacf0416f9e0438f23f92d0df6c338ea3"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>blur1d</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t numLeds, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount)</td></tr>
+<tr class="memitem:gaacf0416f9e0438f23f92d0df6c338ea3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#gaacf0416f9e0438f23f92d0df6c338ea3">blur1d</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t numLeds, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount)</td></tr>
+<tr class="memdesc:gaacf0416f9e0438f23f92d0df6c338ea3"><td class="mdescLeft">&#160;</td><td class="mdescRight">blur1d: one-dimensional blur filter. <a href="group___colorutils.html#gaacf0416f9e0438f23f92d0df6c338ea3">More...</a><br /></td></tr>
<tr class="separator:gaacf0416f9e0438f23f92d0df6c338ea3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae97f9574ca4fa1a7ab65782b2a804fba"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae97f9574ca4fa1a7ab65782b2a804fba"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>blur2d</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint8_t width, uint8_t height, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount)</td></tr>
<tr class="separator:gae97f9574ca4fa1a7ab65782b2a804fba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>blurRows</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint8_t width, uint8_t height, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount)</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b">blurRows</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint8_t width, uint8_t height, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount)</td></tr>
+<tr class="memdesc:ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b"><td class="mdescLeft">&#160;</td><td class="mdescRight">blurRows: perform a blur1d on every row of a rectangular matrix <br /></td></tr>
<tr class="separator:ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacb40363ff285a5d816a1cf3096e27c14"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacb40363ff285a5d816a1cf3096e27c14"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>blurColumns</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint8_t width, uint8_t height, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount)</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#gacb40363ff285a5d816a1cf3096e27c14">blurColumns</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint8_t width, uint8_t height, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount)</td></tr>
+<tr class="memdesc:gacb40363ff285a5d816a1cf3096e27c14"><td class="mdescLeft">&#160;</td><td class="mdescRight">blurColumns: perform a blur1d on each column of a rectangular matrix <br /></td></tr>
<tr class="separator:gacb40363ff285a5d816a1cf3096e27c14"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac5c6b83ec07d310385a430f9f0336530"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac5c6b83ec07d310385a430f9f0336530"></a>
-<a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>HeatColor</b> (uint8_t temperature)</td></tr>
+<tr class="memitem:gac5c6b83ec07d310385a430f9f0336530"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#gac5c6b83ec07d310385a430f9f0336530">HeatColor</a> (uint8_t temperature)</td></tr>
+<tr class="memdesc:gac5c6b83ec07d310385a430f9f0336530"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> <a class="el" href="group___colorutils.html#gac5c6b83ec07d310385a430f9f0336530" title="CRGB HeatColor( uint8_t temperature) ">HeatColor( uint8_t temperature)</a> <a href="group___colorutils.html#gac5c6b83ec07d310385a430f9f0336530">More...</a><br /></td></tr>
<tr class="separator:gac5c6b83ec07d310385a430f9f0336530"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaea18108bf50282f20a0ecd4213b5ac8c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaea18108bf50282f20a0ecd4213b5ac8c"></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_palette256.html">CRGBPalette256</a> &amp;destpal256)</td></tr>
@@ -374,7 +381,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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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_source.html b/docs/3.1/colorutils_8h_source.html
index e4cbf6b6..babf8dad 100644
--- a/docs/3.1/colorutils_8h_source.html
+++ b/docs/3.1/colorutils_8h_source.html
@@ -251,1557 +251,1501 @@ $(document).ready(function(){initNavTree('colorutils_8h_source.html','');});
<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;</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="l00183"></a><span class="lineno"><a class="line" href="group___colorutils.html#gace693b077794f9b6aa80875fdd550a68"> 183</a></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="l00192"></a><span class="lineno"> 192</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="group___colorutils.html#ga3a46ed6b7043382df172d7501785033c"> 193</a></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="l00194"></a><span class="lineno"> 194</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="l00195"></a><span class="lineno"> 195</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES )</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; uint16_t half = (numLeds / 2);</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; uint16_t last = numLeds - 1;</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</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="l00200"></a><span class="lineno"> 200</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="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="l00205"></a><span class="lineno"> 205</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="group___colorutils.html#ga396996c5e505e459b418330f4386f779"> 206</a></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="l00207"></a><span class="lineno"> 207</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="l00208"></a><span class="lineno"> 208</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES )</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; uint16_t onethird = (numLeds / 3);</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; uint16_t twothirds = ((numLeds * 2) / 3);</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; uint16_t last = numLeds - 1;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</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="l00214"></a><span class="lineno"> 214</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="l00215"></a><span class="lineno"> 215</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="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">// 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;</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;</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="l00218"></a><span class="lineno"> 218</span>&#160;<span class="comment">// convenience synonym</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="preprocessor">#define fill_gradient_HSV fill_gradient</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds,</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; uint16_t startpos, <a class="code" href="struct_c_r_g_b.html">CRGB</a> startcolor,</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; uint16_t endpos, <a class="code" href="struct_c_r_g_b.html">CRGB</a> endcolor );</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( <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="l00231"></a><span class="lineno"> 231</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( <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="l00232"></a><span class="lineno"> 232</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( <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="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="l00239"></a><span class="lineno"> 239</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#gac1e25878d16efa6112d907738f525773">fadeLightBy</a>( <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="l00240"></a><span class="lineno"> 240</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="l00241"></a><span class="lineno"> 241</span>&#160;</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga956be37436f2b9c06c99d24263ef8e83">nscale8_video</a>( <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="l00246"></a><span class="lineno"> 246</span>&#160;</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga404d163d8a422cee2df2baac4151ca98">fadeToBlackBy</a>( <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="l00253"></a><span class="lineno"> 253</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="l00254"></a><span class="lineno"> 254</span>&#160;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#gad0356fc313196732e7cd4e64f506f82b">nscale8</a>( <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="l00259"></a><span class="lineno"> 259</span>&#160;</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#gae8c0a05b75034b4a2cae20ddc70ec15f">fadeUsingColor</a>( <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="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="l00279"></a><span class="lineno"> 279</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> <a class="code" href="group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c">blend</a>( <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="l00280"></a><span class="lineno"> 280</span>&#160;</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a> <a class="code" href="group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c">blend</a>( <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="l00282"></a><span class="lineno"> 282</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES );</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a>* <a class="code" href="group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c">blend</a>( <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="l00289"></a><span class="lineno"> 289</span>&#160; uint16_t count, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfsrc2 );</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="l00291"></a><span class="lineno"> 291</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a>* <a class="code" href="group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c">blend</a>( <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="l00292"></a><span class="lineno"> 292</span>&#160; uint16_t count, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfsrc2,</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES );</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<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="l00297"></a><span class="lineno"> 297</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; <a class="code" href="group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335">nblend</a>( <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="l00298"></a><span class="lineno"> 298</span>&#160;</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; <a class="code" href="group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335">nblend</a>( <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="l00300"></a><span class="lineno"> 300</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES );</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<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="l00304"></a><span class="lineno"> 304</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335">nblend</a>( <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="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;</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;</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="l00306"></a><span class="lineno"> 306</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335">nblend</a>( <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="l00307"></a><span class="lineno"> 307</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES);</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="l00323"></a><span class="lineno"> 323</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#gaacf0416f9e0438f23f92d0df6c338ea3">blur1d</a>( <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="l00324"></a><span class="lineno"> 324</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="l00325"></a><span class="lineno"> 325</span>&#160;</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b">blurRows</a>( <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="l00329"></a><span class="lineno"> 329</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#gacb40363ff285a5d816a1cf3096e27c14">blurColumns</a>(<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="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="l00339"></a><span class="lineno"> 339</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> <a class="code" href="group___colorutils.html#gac5c6b83ec07d310385a430f9f0336530">HeatColor</a>( uint8_t temperature);</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="comment">// Palettes</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">// RGB Palettes map an 8-bit value (0..255) to an RGB color.</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="comment">// You can create any color palette you wish; a couple of starters</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="comment">// are provided: Forest, Clouds, Lava, Ocean, Rainbow, and Rainbow Stripes.</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">// Palettes come in the traditional 256-entry variety, which take</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</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="l00351"></a><span class="lineno"> 351</span>&#160;<span class="comment">// variety automatically interpolates between its entries to produce</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</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="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::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="l00354"></a><span class="lineno"> 354</span>&#160;<span class="comment">// Basic operation is like this: (example shows the 16-entry variety)</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="comment">// 1. Declare your palette storage:</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">//</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</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="l00359"></a><span class="lineno"> 359</span>&#160;<span class="comment">// You can specify your 16 colors a variety of ways:</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="comment">// CRGBPalette16 myPalette(</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="comment">// CRGB::Black,</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="comment">// CRGB::Black,</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="comment">// CRGB::Red,</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="comment">// CRGB::Yellow,</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="comment">// CRGB::Green,</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="comment">// CRGB::Blue,</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="comment">// CRGB::Purple,</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="comment">// CRGB::Black,</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">// 0x100000,</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="comment">// 0x200000,</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="comment">// 0x400000,</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="comment">// 0x800000,</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">// CHSV( 30,255,255),</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="comment">// CHSV( 50,255,255),</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="comment">// CHSV( 70,255,255),</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="comment">// CHSV( 90,255,255)</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">//</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="comment">// Or you can initiaize your palette with a preset color scheme:</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="comment">// myPalette = RainbowStripesColors_p;</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</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="l00385"></a><span class="lineno"> 385</span>&#160;<span class="comment">// &quot;ColorFromPalette(...)&quot; as shown:</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="comment">// uint8_t index = /* any value 0..255 */;</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="comment">// leds[i] = ColorFromPalette( myPalette, index);</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">// Even though your palette has only 16 explicily defined entries, you</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</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="l00392"></a><span class="lineno"> 392</span>&#160;<span class="comment">// be spread evenly across the 0..255 range, and the intermedate values</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="comment">// will be RGB-interpolated between adjacent explicit entries.</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="comment">// It&#39;s easier to use than it sounds.</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</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="l00399"></a><span class="lineno"> 399</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="l00400"></a><span class="lineno"> 400</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="l00401"></a><span class="lineno"> 401</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="l00402"></a><span class="lineno"> 402</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="l00403"></a><span class="lineno"> 403</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="l00404"></a><span class="lineno"> 404</span>&#160;<span class="keyword">typedef</span> uint32_t TProgmemRGBPalette16[16];</div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="keyword">typedef</span> uint32_t TProgmemHSVPalette16[16];</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="preprocessor">#define TProgmemPalette16 TProgmemRGBPalette16</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="keyword">typedef</span> uint32_t TProgmemRGBPalette32[32];</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="keyword">typedef</span> uint32_t TProgmemHSVPalette32[32];</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor">#define TProgmemPalette32 TProgmemRGBPalette32</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;<span class="keyword">typedef</span> <span class="keyword">const</span> uint8_t TProgmemRGBGradientPalette_byte ;</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="keyword">typedef</span> <span class="keyword">const</span> TProgmemRGBGradientPalette_byte *TProgmemRGBGradientPalette_bytes;</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="keyword">typedef</span> TProgmemRGBGradientPalette_bytes TProgmemRGBGradientPalettePtr;</div>
+<div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="union_t_r_g_b_gradient_palette_entry_union.html"> 414</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; uint8_t index;</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; uint8_t r;</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; uint8_t g;</div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; uint8_t b;</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; uint32_t dword;</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; uint8_t bytes[4];</div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;} <a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a>;</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="l00425"></a><span class="lineno"> 425</span>&#160;<span class="keyword">typedef</span> uint8_t TDynamicRGBGradientPalette_byte ;</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="keyword">typedef</span> <span class="keyword">const</span> TDynamicRGBGradientPalette_byte *TDynamicRGBGradientPalette_bytes;</div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="keyword">typedef</span> TDynamicRGBGradientPalette_bytes TDynamicRGBGradientPalettePtr;</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="l00429"></a><span class="lineno"> 429</span>&#160;<span class="comment">// Convert a 16-entry palette to a 256-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_palette256.html">CRGBPalette256</a>&amp; destpal256);</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_palette256.html">CHSVPalette256</a>&amp; destpal256);</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="l00433"></a><span class="lineno"> 433</span>&#160;<span class="comment">// Convert a 16-entry palette to a 32-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_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="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_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="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="l00437"></a><span class="lineno"> 437</span>&#160;<span class="comment">// Convert a 32-entry palette to a 256-entry palette</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</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="l00439"></a><span class="lineno"> 439</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="l00440"></a><span class="lineno"> 440</span>&#160;</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"><a class="line" href="class_c_h_s_v_palette16.html"> 442</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="l00443"></a><span class="lineno"> 443</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <a class="code" href="struct_c_h_s_v.html">CHSV</a> entries[16];</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>() {};</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>( <span class="keyword">const</span> <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="l00447"></a><span class="lineno"> 447</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="l00448"></a><span class="lineno"> 448</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="l00449"></a><span class="lineno"> 449</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="l00450"></a><span class="lineno"> 450</span>&#160; {</div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; entries[0]=c00; entries[1]=c01; entries[2]=c02; entries[3]=c03;</div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; entries[4]=c04; entries[5]=c05; entries[6]=c06; entries[7]=c07;</div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; entries[8]=c08; entries[9]=c09; entries[10]=c10; entries[11]=c11;</div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; entries[12]=c12; entries[13]=c13; entries[14]=c14; entries[15]=c15;</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; };</div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>( <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;</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="l00460"></a><span class="lineno"> 460</span>&#160; }</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <a class="code" href="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="l00462"></a><span class="lineno"> 462</span>&#160; {</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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;</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</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="l00468"></a><span class="lineno"> 468</span>&#160; {</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</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> xyz = FL_PGM_READ_DWORD_NEAR( rhs + i);</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; entries[i].hue = xyz.red;</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; entries[i].sat = xyz.green;</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; entries[i].val = xyz.blue;</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; <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="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">for</span>( uint8_t i = 0; i &lt; 16; i++) {</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> xyz = FL_PGM_READ_DWORD_NEAR( rhs + i);</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; entries[i].hue = xyz.red;</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; entries[i].sat = xyz.green;</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; entries[i].val = xyz.blue;</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> *<span class="keyword">this</span>;</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">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="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> 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="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="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="l00491"></a><span class="lineno"> 491</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="l00492"></a><span class="lineno"> 492</span>&#160; {</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">return</span> entries[x];</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; <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="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="l00500"></a><span class="lineno"> 500</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="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> entries[(uint8_t)x];</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="keyword">operator</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>*()</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> &amp;(entries[0]);</div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; }</div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <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="l00511"></a><span class="lineno"> 511</span>&#160; {</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</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="l00513"></a><span class="lineno"> 513</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="l00514"></a><span class="lineno"> 514</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="l00515"></a><span class="lineno"> 515</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="l00516"></a><span class="lineno"> 516</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="l00517"></a><span class="lineno"> 517</span>&#160; p++;</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; q++;</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">true</span>;</div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; }</div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; </div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <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="l00522"></a><span class="lineno"> 522</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="l00523"></a><span class="lineno"> 523</span>&#160; {</div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="keywordflow">return</span> !( *<span class="keyword">this</span> == rhs);</div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; }</div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;</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)</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="l00529"></a><span class="lineno"> 529</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 16, c1);</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="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)</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="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);</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="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)</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="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 16, c1, c2, c3, c4);</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);</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"><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; 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="l00539"></a><span class="lineno"> 539</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="l00540"></a><span class="lineno"> 540</span>&#160; {</div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</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="l00542"></a><span class="lineno"> 542</span>&#160; }</div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;</div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;};</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"><a class="line" href="class_c_h_s_v_palette256.html"> 546</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="l00547"></a><span class="lineno"> 547</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <a class="code" href="struct_c_h_s_v.html">CHSV</a> entries[256];</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>() {};</div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</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="l00551"></a><span class="lineno"> 551</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="l00552"></a><span class="lineno"> 552</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="l00553"></a><span class="lineno"> 553</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="l00554"></a><span class="lineno"> 554</span>&#160; {</div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</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="l00556"></a><span class="lineno"> 556</span>&#160; c08,c09,c10,c11,c12,c13,c14,c15);</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; *<span class="keyword">this</span> = p16;</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; <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="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="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_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="l00565"></a><span class="lineno"> 565</span>&#160; {</div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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; <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="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;</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="l00573"></a><span class="lineno"> 573</span>&#160; }</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</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="l00575"></a><span class="lineno"> 575</span>&#160; {</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; UpscalePalette( rhs16, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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;</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</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="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="class_c_h_s_v_palette16.html">CHSVPalette16</a> p16(rhs);</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; *<span class="keyword">this</span> = p16;</div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; }</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>&amp; operator=( <span class="keyword">const</span> TProgmemRGBPalette16&amp; rhs)</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; {</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> p16(rhs);</div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; *<span class="keyword">this</span> = p16;</div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</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; <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="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> 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="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="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="l00596"></a><span class="lineno"> 596</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="l00597"></a><span class="lineno"> 597</span>&#160; {</div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keywordflow">return</span> entries[x];</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; <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="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="l00605"></a><span class="lineno"> 605</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="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> entries[(uint8_t)x];</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; <span class="keyword">operator</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>*()</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="keywordflow">return</span> &amp;(entries[0]);</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;</div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</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="l00616"></a><span class="lineno"> 616</span>&#160; {</div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</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="l00618"></a><span class="lineno"> 618</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="l00619"></a><span class="lineno"> 619</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="l00620"></a><span class="lineno"> 620</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="l00621"></a><span class="lineno"> 621</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="l00622"></a><span class="lineno"> 622</span>&#160; p++;</div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; q++;</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">true</span>;</div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; }</div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; </div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <a class="code" href="class_c_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="l00627"></a><span class="lineno"> 627</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="l00628"></a><span class="lineno"> 628</span>&#160; {</div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="keywordflow">return</span> !( *<span class="keyword">this</span> == rhs);</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; <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="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="l00634"></a><span class="lineno"> 634</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 256, c1);</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="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)</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="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);</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="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)</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="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);</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="l00644"></a><span class="lineno"> 644</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="l00645"></a><span class="lineno"> 645</span>&#160; {</div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</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="l00647"></a><span class="lineno"> 647</span>&#160; }</div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;};</div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;</div>
+<div class="line"><a name="l00650"></a><span class="lineno"><a class="line" href="class_c_r_g_b_palette16.html"> 650</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="l00651"></a><span class="lineno"> 651</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> entries[16];</div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>() {};</div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</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="l00655"></a><span class="lineno"> 655</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="l00656"></a><span class="lineno"> 656</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="l00657"></a><span class="lineno"> 657</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="l00658"></a><span class="lineno"> 658</span>&#160; {</div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; entries[0]=c00; entries[1]=c01; entries[2]=c02; entries[3]=c03;</div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; entries[4]=c04; entries[5]=c05; entries[6]=c06; entries[7]=c07;</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; entries[8]=c08; entries[9]=c09; entries[10]=c10; entries[11]=c11;</div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; entries[12]=c12; entries[13]=c13; entries[14]=c14; entries[15]=c15;</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; <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="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="l00667"></a><span class="lineno"> 667</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[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="l00669"></a><span class="lineno"> 669</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="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;</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; <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; <span class="keywordflow">return</span> !( *<span class="keyword">this</span> == rhs);</div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; }</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&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="l00674"></a><span class="lineno"> 674</span>&#160; {</div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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; <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="l00679"></a><span class="lineno"> 679</span>&#160; {</div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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;</div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</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="l00685"></a><span class="lineno"> 685</span>&#160; {</div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; }</div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; }</div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a> rhs[16])</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="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; entries[i] = rhs[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></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; }</div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&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="l00697"></a><span class="lineno"> 697</span>&#160; {</div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</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; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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; <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="l00704"></a><span class="lineno"> 704</span>&#160; {</div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; entries[i] = rhs[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></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> *<span class="keyword">this</span>;</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; <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="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">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; entries[i] = FL_PGM_READ_DWORD_NEAR( rhs + i);</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; }</div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</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="l00718"></a><span class="lineno"> 718</span>&#160; {</div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; entries[i] = FL_PGM_READ_DWORD_NEAR( rhs + i);</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> *<span class="keyword">this</span>;</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; <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="l00726"></a><span class="lineno"> 726</span>&#160; {</div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</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="l00728"></a><span class="lineno"> 728</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="l00729"></a><span class="lineno"> 729</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="l00730"></a><span class="lineno"> 730</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="l00731"></a><span class="lineno"> 731</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="l00732"></a><span class="lineno"> 732</span>&#160; p++;</div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; q++;</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> <span class="keyword">true</span>;</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="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="l00737"></a><span class="lineno"> 737</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="l00738"></a><span class="lineno"> 738</span>&#160; {</div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="keywordflow">return</span> !( *<span class="keyword">this</span> == rhs);</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; <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="l00743"></a><span class="lineno"> 743</span>&#160; {</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;</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="l00746"></a><span class="lineno"> 746</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="l00747"></a><span class="lineno"> 747</span>&#160; {</div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="keywordflow">return</span> entries[x];</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="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="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="l00755"></a><span class="lineno"> 755</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="l00756"></a><span class="lineno"> 756</span>&#160; {</div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</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="keyword">operator</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>*()</div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; {</div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="keywordflow">return</span> &amp;(entries[0]);</div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; }</div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;</div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <a class="code" href="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="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="l00767"></a><span class="lineno"> 767</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 16, c1);</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="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)</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="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);</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="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)</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="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);</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="l00777"></a><span class="lineno"> 777</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="l00778"></a><span class="lineno"> 778</span>&#160; {</div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</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="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="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="l00783"></a><span class="lineno"> 783</span>&#160; {</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="l00784"></a><span class="lineno"> 784</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 16, c1);</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>( <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="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)</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; fill_gradient_RGB( &amp;(entries[0]), 16, c1, c2, c3);</div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( &amp;(entries[0]), 16, c1, c2);</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="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)</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="l00792"></a><span class="lineno"> 792</span>&#160; <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( &amp;(entries[0]), 16, c1, c2, c3);</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="l00794"></a><span class="lineno"> 794</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="l00795"></a><span class="lineno"> 795</span>&#160; {</div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( &amp;(entries[0]), 16, c1, c2, c3, c4);</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;</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; <span class="comment">// Gradient palettes are loaded into CRGB16Palettes in such a way</span></div>
+<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <span class="comment">// that, if possible, every color represented in the gradient palette</span></div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="comment">// is also represented in the CRGBPalette16.</span></div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="comment">// For example, consider a gradient palette that is all black except</span></div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</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="l00805"></a><span class="lineno"> 805</span>&#160; <span class="comment">// 0, 0,0,0</span></div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="comment">// 124, 0,0,0</span></div>
+<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <span class="comment">// 125, 255,0,0 // one 1/256th-palette-wide red stripe</span></div>
+<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <span class="comment">// 126, 0,0,0</span></div>
+<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="comment">// 255, 0,0,0</span></div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</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="l00811"></a><span class="lineno"> 811</span>&#160; <span class="comment">// might accidentally completely eliminate the red spike, rendering the</span></div>
+<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <span class="comment">// palette completely black.</span></div>
+<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <span class="comment">// However, the conversions provided here would attempt to include a</span></div>
+<div class="line"><a name="l00814"></a><span class="lineno"> 814</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="l00815"></a><span class="lineno"> 815</span>&#160; <span class="comment">// So in this case, the resulting CRGBPalette16 palette would have a red</span></div>
+<div class="line"><a name="l00816"></a><span class="lineno"> 816</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="l00817"></a><span class="lineno"> 817</span>&#160; <span class="comment">// narrowest possible in a CRGBPalette16.</span></div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; <span class="comment">// This means that the relative width of stripes in a CRGBPalette16</span></div>
+<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="comment">// will be, by definition, different from the widths in the gradient</span></div>
+<div class="line"><a name="l00820"></a><span class="lineno"> 820</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="l00821"></a><span class="lineno"> 821</span>&#160; <span class="comment">// the exact stripe widths at the expense of dropping some colors.</span></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>( 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="l00824"></a><span class="lineno"> 824</span>&#160; *<span class="keyword">this</span> = progpal;</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="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; operator=( TProgmemRGBGradientPalette_bytes progpal )</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="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="l00829"></a><span class="lineno"> 829</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="l00830"></a><span class="lineno"> 830</span>&#160;</div>
+<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="comment">// Count entries</span></div>
+<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; uint8_t count = 0;</div>
+<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR(progent + count);</div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; count++;;</div>
+<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; } <span class="keywordflow">while</span> ( u.index != 255);</div>
+<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;</div>
+<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; int8_t lastSlotUsed = -1;</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; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
+<div class="line"><a name="l00841"></a><span class="lineno"> 841</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="l00842"></a><span class="lineno"> 842</span>&#160;</div>
+<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
+<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; uint8_t istart8 = 0;</div>
+<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; uint8_t iend8 = 0;</div>
+<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
+<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; progent++;</div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
+<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
+<div class="line"><a name="l00850"></a><span class="lineno"> 850</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="l00851"></a><span class="lineno"> 851</span>&#160; istart8 = indexstart / 16;</div>
+<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; iend8 = indexend / 16;</div>
+<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; <span class="keywordflow">if</span>( count &lt; 16) {</div>
+<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; <span class="keywordflow">if</span>( (istart8 &lt;= lastSlotUsed) &amp;&amp; (lastSlotUsed &lt; 15)) {</div>
+<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; istart8 = lastSlotUsed + 1;</div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; <span class="keywordflow">if</span>( iend8 &lt; istart8) {</div>
+<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; iend8 = istart8;</div>
+<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; }</div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; }</div>
+<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; lastSlotUsed = iend8;</div>
+<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; }</div>
+<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( &amp;(entries[0]), istart8, rgbstart, iend8, rgbend);</div>
+<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; indexstart = indexend;</div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; rgbstart = rgbend;</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; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; }</div>
+<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; loadDynamicGradientPalette( TDynamicRGBGradientPalette_bytes gpal )</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="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="l00871"></a><span class="lineno"> 871</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="l00872"></a><span class="lineno"> 872</span>&#160;</div>
+<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; <span class="comment">// Count entries</span></div>
+<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; uint8_t count = 0;</div>
+<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; u = *(ent + count);</div>
+<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; count++;;</div>
+<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; } <span class="keywordflow">while</span> ( u.index != 255);</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; int8_t lastSlotUsed = -1;</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="l00882"></a><span class="lineno"> 882</span>&#160;</div>
+<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; u = *ent;</div>
+<div class="line"><a name="l00884"></a><span class="lineno"> 884</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="l00885"></a><span class="lineno"> 885</span>&#160;</div>
+<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
+<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; uint8_t istart8 = 0;</div>
+<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; uint8_t iend8 = 0;</div>
+<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
+<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; ent++;</div>
+<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; u = *ent;</div>
+<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
+<div class="line"><a name="l00893"></a><span class="lineno"> 893</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="l00894"></a><span class="lineno"> 894</span>&#160; istart8 = indexstart / 16;</div>
+<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; iend8 = indexend / 16;</div>
+<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; <span class="keywordflow">if</span>( count &lt; 16) {</div>
+<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; <span class="keywordflow">if</span>( (istart8 &lt;= lastSlotUsed) &amp;&amp; (lastSlotUsed &lt; 15)) {</div>
+<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; istart8 = lastSlotUsed + 1;</div>
+<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; <span class="keywordflow">if</span>( iend8 &lt; istart8) {</div>
+<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; iend8 = istart8;</div>
+<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; }</div>
+<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; }</div>
+<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; lastSlotUsed = iend8;</div>
+<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; }</div>
+<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( &amp;(entries[0]), istart8, rgbstart, iend8, rgbend);</div>
+<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; indexstart = indexend;</div>
+<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; rgbstart = rgbend;</div>
+<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; }</div>
+<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; }</div>
<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160;</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; <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="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="l00915"></a><span class="lineno"> 915</span>&#160;</div>
+<div class="line"><a name="l00916"></a><span class="lineno"><a class="line" href="class_c_h_s_v_palette32.html"> 916</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="l00917"></a><span class="lineno"> 917</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; <a class="code" href="struct_c_h_s_v.html">CHSV</a> entries[32];</div>
+<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <a class="code" href="class_c_h_s_v_palette32.html">CHSVPalette32</a>() {};</div>
+<div class="line"><a name="l00920"></a><span class="lineno"> 920</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="l00921"></a><span class="lineno"> 921</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="l00922"></a><span class="lineno"> 922</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="l00923"></a><span class="lineno"> 923</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="l00924"></a><span class="lineno"> 924</span>&#160; {</div>
+<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 2; i++) {</div>
+<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; entries[0+i]=c00; entries[2+i]=c01; entries[4+i]=c02; entries[6+i]=c03;</div>
+<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; entries[8+i]=c04; entries[10+i]=c05; entries[12+i]=c06; entries[14+i]=c07;</div>
+<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; entries[16+i]=c08; entries[18+i]=c09; entries[20+i]=c10; entries[22+i]=c11;</div>
+<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; entries[24+i]=c12; entries[26+i]=c13; entries[28+i]=c14; entries[30+i]=c15;</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;</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>( <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="l00936"></a><span class="lineno"> 936</span>&#160; }</div>
+<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; <a class="code" href="class_c_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="l00938"></a><span class="lineno"> 938</span>&#160; {</div>
+<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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;</div>
+<div class="line"><a name="l00943"></a><span class="lineno"> 943</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="l00944"></a><span class="lineno"> 944</span>&#160; {</div>
+<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 32; i++) {</div>
+<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> xyz = FL_PGM_READ_DWORD_NEAR( rhs + i);</div>
+<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; entries[i].hue = xyz.red;</div>
+<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; entries[i].sat = xyz.green;</div>
+<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; entries[i].val = xyz.blue;</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; }</div>
+<div class="line"><a name="l00952"></a><span class="lineno"> 952</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="l00953"></a><span class="lineno"> 953</span>&#160; {</div>
+<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 32; i++) {</div>
+<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> xyz = FL_PGM_READ_DWORD_NEAR( rhs + i);</div>
+<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; entries[i].hue = xyz.red;</div>
+<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; entries[i].sat = xyz.green;</div>
+<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; entries[i].val = xyz.blue;</div>
+<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; }</div>
+<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; }</div>
+<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160;</div>
+<div class="line"><a name="l00963"></a><span class="lineno"> 963</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="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="l00967"></a><span class="lineno"> 967</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="l00968"></a><span class="lineno"> 968</span>&#160; {</div>
+<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; <span class="keywordflow">return</span> entries[x];</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;</div>
+<div class="line"><a name="l00972"></a><span class="lineno"> 972</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="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; <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="l00976"></a><span class="lineno"> 976</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="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> entries[(uint8_t)x];</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; <span class="keyword">operator</span> <a class="code" href="struct_c_h_s_v.html">CHSV</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; <span class="keywordflow">return</span> &amp;(entries[0]);</div>
+<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; }</div>
+<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160;</div>
+<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; <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="l00987"></a><span class="lineno"> 987</span>&#160; {</div>
+<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; <span class="keyword">const</span> uint8_t* p = (<span class="keyword">const</span> uint8_t*)(&amp;(this-&gt;entries[0]));</div>
+<div class="line"><a name="l00989"></a><span class="lineno"> 989</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="l00990"></a><span class="lineno"> 990</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="l00991"></a><span class="lineno"> 991</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="l00992"></a><span class="lineno"> 992</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="l00993"></a><span class="lineno"> 993</span>&#160; p++;</div>
+<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; q++;</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">true</span>;</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; <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_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="l00998"></a><span class="lineno"> 998</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="l00999"></a><span class="lineno"> 999</span>&#160; {</div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; <span class="keywordflow">return</span> !( *<span class="keyword">this</span> == rhs);</div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; }</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_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="l01004"></a><span class="lineno"> 1004</span>&#160; {</div>
-<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 32, c1, c2);</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 32, c1);</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; <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="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)</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="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);</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="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)</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="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);</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="l01015"></a><span class="lineno"> 1015</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="l01016"></a><span class="lineno"> 1016</span>&#160; {</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</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="l01018"></a><span class="lineno"> 1018</span>&#160; }</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"><a class="line" href="class_c_r_g_b_palette32.html"> 1022</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="l01023"></a><span class="lineno"> 1023</span>&#160;<span class="keyword">public</span>:</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> entries[32];</div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>() {};</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</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="l01027"></a><span class="lineno"> 1027</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="l01028"></a><span class="lineno"> 1028</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="l01029"></a><span class="lineno"> 1029</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="l01030"></a><span class="lineno"> 1030</span>&#160; {</div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 2; i++) {</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; entries[0+i]=c00; entries[2+i]=c01; entries[4+i]=c02; entries[6+i]=c03;</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; entries[8+i]=c04; entries[10+i]=c05; entries[12+i]=c06; entries[14+i]=c07;</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; entries[16+i]=c08; entries[18+i]=c09; entries[20+i]=c10; entries[22+i]=c11;</div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; entries[24+i]=c12; entries[26+i]=c13; entries[28+i]=c14; entries[30+i]=c15;</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; };</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="class_c_r_g_b_palette32.html">CRGBPalette32</a>&amp; rhs)</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="l01041"></a><span class="lineno"> 1041</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[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="l01043"></a><span class="lineno"> 1043</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="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="l01045"></a><span class="lineno"> 1045</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs[0]), <span class="keyword">sizeof</span>( entries));</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_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="l01048"></a><span class="lineno"> 1048</span>&#160; {</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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; <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="l01053"></a><span class="lineno"> 1053</span>&#160; {</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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;</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</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="l01059"></a><span class="lineno"> 1059</span>&#160; {</div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 32; i++) {</div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></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; }</div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</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="l01065"></a><span class="lineno"> 1065</span>&#160; {</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 32; i++) {</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; entries[i] = rhs[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></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; <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="l01071"></a><span class="lineno"> 1071</span>&#160; {</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 32; i++) {</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></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">return</span> *<span class="keyword">this</span>;</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="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="l01078"></a><span class="lineno"> 1078</span>&#160; {</div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 32; i++) {</div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; entries[i] = rhs[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; }</div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; }</div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;</div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; <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="l01086"></a><span class="lineno"> 1086</span>&#160; {</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 32; i++) {</div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; entries[i] = FL_PGM_READ_DWORD_NEAR( rhs + i);</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; }</div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</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="l01092"></a><span class="lineno"> 1092</span>&#160; {</div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 32; i++) {</div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; entries[i] = FL_PGM_READ_DWORD_NEAR( rhs + i);</div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; }</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; }</div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;</div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</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="l01100"></a><span class="lineno"> 1100</span>&#160; {</div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</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="l01102"></a><span class="lineno"> 1102</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="l01103"></a><span class="lineno"> 1103</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="l01104"></a><span class="lineno"> 1104</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="l01105"></a><span class="lineno"> 1105</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="l01106"></a><span class="lineno"> 1106</span>&#160; p++;</div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; q++;</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">true</span>;</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="l01111"></a><span class="lineno"> 1111</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="l01112"></a><span class="lineno"> 1112</span>&#160; {</div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; <span class="keywordflow">return</span> !( *<span class="keyword">this</span> == rhs);</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; <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="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="l01120"></a><span class="lineno"> 1120</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="l01121"></a><span class="lineno"> 1121</span>&#160; {</div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; }</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> <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="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="l01129"></a><span class="lineno"> 1129</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="l01130"></a><span class="lineno"> 1130</span>&#160; {</div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; }</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;</div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</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="l01135"></a><span class="lineno"> 1135</span>&#160; {</div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; <span class="keywordflow">return</span> &amp;(entries[0]);</div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; }</div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;</div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; <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="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="l01141"></a><span class="lineno"> 1141</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 32, c1);</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="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)</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="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);</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="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)</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="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);</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="l01151"></a><span class="lineno"> 1151</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="l01152"></a><span class="lineno"> 1152</span>&#160; {</div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</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="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; <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="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="l01158"></a><span class="lineno"> 1158</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 32, c1);</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="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)</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="l01162"></a><span class="lineno"> 1162</span>&#160; <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( &amp;(entries[0]), 32, c1, c2);</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="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)</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="l01166"></a><span class="lineno"> 1166</span>&#160; <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( &amp;(entries[0]), 32, c1, c2, c3);</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="l01168"></a><span class="lineno"> 1168</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="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="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( &amp;(entries[0]), 32, c1, c2, c3, c4);</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;</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>( <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="l01177"></a><span class="lineno"> 1177</span>&#160; }</div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</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="l01179"></a><span class="lineno"> 1179</span>&#160; {</div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; UpscalePalette( rhs16, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; }</div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</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="l01185"></a><span class="lineno"> 1185</span>&#160; {</div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> p16(rhs);</div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; *<span class="keyword">this</span> = p16;</div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; }</div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</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="l01190"></a><span class="lineno"> 1190</span>&#160; {</div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> p16(rhs);</div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; *<span class="keyword">this</span> = p16;</div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; }</div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;</div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;</div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; <span class="comment">// Gradient palettes are loaded into CRGB16Palettes in such a way</span></div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; <span class="comment">// that, if possible, every color represented in the gradient palette</span></div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; <span class="comment">// is also represented in the CRGBPalette32.</span></div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; <span class="comment">// For example, consider a gradient palette that is all black except</span></div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</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="l01202"></a><span class="lineno"> 1202</span>&#160; <span class="comment">// 0, 0,0,0</span></div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; <span class="comment">// 124, 0,0,0</span></div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; <span class="comment">// 125, 255,0,0 // one 1/256th-palette-wide red stripe</span></div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; <span class="comment">// 126, 0,0,0</span></div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; <span class="comment">// 255, 0,0,0</span></div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</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="l01208"></a><span class="lineno"> 1208</span>&#160; <span class="comment">// might accidentally completely eliminate the red spike, rendering the</span></div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160; <span class="comment">// palette completely black.</span></div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160; <span class="comment">// However, the conversions provided here would attempt to include a</span></div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</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="l01212"></a><span class="lineno"> 1212</span>&#160; <span class="comment">// So in this case, the resulting CRGBPalette32 palette would have a red</span></div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</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="l01214"></a><span class="lineno"> 1214</span>&#160; <span class="comment">// narrowest possible in a CRGBPalette32.</span></div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; <span class="comment">// This means that the relative width of stripes in a CRGBPalette32</span></div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; <span class="comment">// will be, by definition, different from the widths in the gradient</span></div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</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="l01218"></a><span class="lineno"> 1218</span>&#160; <span class="comment">// the exact stripe widths at the expense of dropping some colors.</span></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>( 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="l01221"></a><span class="lineno"> 1221</span>&#160; *<span class="keyword">this</span> = progpal;</div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; }</div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</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="l01224"></a><span class="lineno"> 1224</span>&#160; {</div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</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="l01226"></a><span class="lineno"> 1226</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="l01227"></a><span class="lineno"> 1227</span>&#160;</div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160; <span class="comment">// Count entries</span></div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160; uint8_t count = 0;</div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160; <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR(progent + count);</div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160; count++;;</div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; } <span class="keywordflow">while</span> ( u.index != 255);</div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;</div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; int8_t lastSlotUsed = -1;</div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;</div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</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="l01239"></a><span class="lineno"> 1239</span>&#160;</div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160; uint8_t istart8 = 0;</div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160; uint8_t iend8 = 0;</div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160; progent++;</div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</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="l01248"></a><span class="lineno"> 1248</span>&#160; istart8 = indexstart / 8;</div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; iend8 = indexend / 8;</div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160; <span class="keywordflow">if</span>( count &lt; 16) {</div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160; <span class="keywordflow">if</span>( (istart8 &lt;= lastSlotUsed) &amp;&amp; (lastSlotUsed &lt; 31)) {</div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160; istart8 = lastSlotUsed + 1;</div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160; <span class="keywordflow">if</span>( iend8 &lt; istart8) {</div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160; iend8 = istart8;</div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; }</div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; }</div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160; lastSlotUsed = iend8;</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; <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( &amp;(entries[0]), istart8, rgbstart, iend8, rgbend);</div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160; indexstart = indexend;</div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160; rgbstart = rgbend;</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; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; }</div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</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="l01266"></a><span class="lineno"> 1266</span>&#160; {</div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</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="l01268"></a><span class="lineno"> 1268</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="l01269"></a><span class="lineno"> 1269</span>&#160;</div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; <span class="comment">// Count entries</span></div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160; uint8_t count = 0;</div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160; u = *(ent + count);</div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; count++;;</div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; } <span class="keywordflow">while</span> ( u.index != 255);</div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;</div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160; int8_t lastSlotUsed = -1;</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;</div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160; u = *ent;</div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</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="l01282"></a><span class="lineno"> 1282</span>&#160;</div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; uint8_t istart8 = 0;</div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; uint8_t iend8 = 0;</div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; ent++;</div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160; u = *ent;</div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</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="l01291"></a><span class="lineno"> 1291</span>&#160; istart8 = indexstart / 8;</div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160; iend8 = indexend / 8;</div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160; <span class="keywordflow">if</span>( count &lt; 16) {</div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160; <span class="keywordflow">if</span>( (istart8 &lt;= lastSlotUsed) &amp;&amp; (lastSlotUsed &lt; 31)) {</div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160; istart8 = lastSlotUsed + 1;</div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160; <span class="keywordflow">if</span>( iend8 &lt; istart8) {</div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160; iend8 = istart8;</div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160; }</div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; }</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; lastSlotUsed = iend8;</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; <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( &amp;(entries[0]), istart8, rgbstart, iend8, rgbend);</div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160; indexstart = indexend;</div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160; rgbstart = rgbend;</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; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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="l01309"></a><span class="lineno"> 1309</span>&#160;};</div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;</div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;</div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;</div>
+<div class="line"><a name="l01313"></a><span class="lineno"><a class="line" href="class_c_r_g_b_palette256.html"> 1313</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="l01314"></a><span class="lineno"> 1314</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> entries[256];</div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>() {};</div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</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="l01318"></a><span class="lineno"> 1318</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="l01319"></a><span class="lineno"> 1319</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="l01320"></a><span class="lineno"> 1320</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="l01321"></a><span class="lineno"> 1321</span>&#160; {</div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</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="l01323"></a><span class="lineno"> 1323</span>&#160; c08,c09,c10,c11,c12,c13,c14,c15);</div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160; *<span class="keyword">this</span> = p16;</div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; };</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="class_c_r_g_b_palette256.html">CRGBPalette256</a>&amp; rhs)</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="l01329"></a><span class="lineno"> 1329</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[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="l01331"></a><span class="lineno"> 1331</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="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="l01333"></a><span class="lineno"> 1333</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160; }</div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</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="l01336"></a><span class="lineno"> 1336</span>&#160; {</div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160; }</div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</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="l01341"></a><span class="lineno"> 1341</span>&#160; {</div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160; }</div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;</div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</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="l01347"></a><span class="lineno"> 1347</span>&#160; {</div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160; }</div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160; }</div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</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="l01353"></a><span class="lineno"> 1353</span>&#160; {</div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160; entries[i] = rhs[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160; }</div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; }</div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</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="l01359"></a><span class="lineno"> 1359</span>&#160; {</div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></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">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160; }</div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</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="l01366"></a><span class="lineno"> 1366</span>&#160; {</div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160; entries[i] = rhs[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160; }</div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160; }</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>( <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="l01376"></a><span class="lineno"> 1376</span>&#160; }</div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</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="l01378"></a><span class="lineno"> 1378</span>&#160; {</div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160; UpscalePalette( rhs16, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160; }</div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;</div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</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="l01384"></a><span class="lineno"> 1384</span>&#160; {</div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> p16(rhs);</div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160; *<span class="keyword">this</span> = p16;</div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160; }</div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</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="l01389"></a><span class="lineno"> 1389</span>&#160; {</div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> p16(rhs);</div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160; *<span class="keyword">this</span> = p16;</div>
+<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160; }</div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;</div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</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="l01396"></a><span class="lineno"> 1396</span>&#160; {</div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</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="l01398"></a><span class="lineno"> 1398</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="l01399"></a><span class="lineno"> 1399</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="l01400"></a><span class="lineno"> 1400</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="l01401"></a><span class="lineno"> 1401</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="l01402"></a><span class="lineno"> 1402</span>&#160; p++;</div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160; q++;</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">true</span>;</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="l01407"></a><span class="lineno"> 1407</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="l01408"></a><span class="lineno"> 1408</span>&#160; {</div>
+<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160; <span class="keywordflow">return</span> !( *<span class="keyword">this</span> == rhs);</div>
+<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160; }</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> <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="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="l01416"></a><span class="lineno"> 1416</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="l01417"></a><span class="lineno"> 1417</span>&#160; {</div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160; }</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> <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="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="l01425"></a><span class="lineno"> 1425</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="l01426"></a><span class="lineno"> 1426</span>&#160; {</div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160; }</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; <span class="keyword">operator</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>*()</div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160; {</div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160; <span class="keywordflow">return</span> &amp;(entries[0]);</div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160; }</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)</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="l01437"></a><span class="lineno"> 1437</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 256, c1);</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="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)</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="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);</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="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)</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="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);</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="l01447"></a><span class="lineno"> 1447</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="l01448"></a><span class="lineno"> 1448</span>&#160; {</div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</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="l01450"></a><span class="lineno"> 1450</span>&#160; }</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)</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="l01454"></a><span class="lineno"> 1454</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 256, c1);</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="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)</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="l01458"></a><span class="lineno"> 1458</span>&#160; <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( &amp;(entries[0]), 256, c1, c2);</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="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)</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="l01462"></a><span class="lineno"> 1462</span>&#160; <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( &amp;(entries[0]), 256, c1, c2, c3);</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="l01464"></a><span class="lineno"> 1464</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="l01465"></a><span class="lineno"> 1465</span>&#160; {</div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160; <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( &amp;(entries[0]), 256, c1, c2, c3, c4);</div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160; }</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>( 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="l01471"></a><span class="lineno"> 1471</span>&#160; *<span class="keyword">this</span> = progpal;</div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160; }</div>
+<div class="line"><a name="l01473"></a><span class="lineno"> 1473</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="l01474"></a><span class="lineno"> 1474</span>&#160; {</div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</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="l01476"></a><span class="lineno"> 1476</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="l01477"></a><span class="lineno"> 1477</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</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="l01479"></a><span class="lineno"> 1479</span>&#160;</div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
+<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160; progent++;</div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</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="l01486"></a><span class="lineno"> 1486</span>&#160; <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( &amp;(entries[0]), indexstart, rgbstart, indexend, rgbend);</div>
+<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160; indexstart = indexend;</div>
+<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160; rgbstart = rgbend;</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; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160; }</div>
+<div class="line"><a name="l01492"></a><span class="lineno"> 1492</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="l01493"></a><span class="lineno"> 1493</span>&#160; {</div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</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="l01495"></a><span class="lineno"> 1495</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="l01496"></a><span class="lineno"> 1496</span>&#160; u = *ent;</div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</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="l01498"></a><span class="lineno"> 1498</span>&#160;</div>
+<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
+<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
+<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160; ent++;</div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160; u = *ent;</div>
+<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
+<div class="line"><a name="l01504"></a><span class="lineno"> 1504</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="l01505"></a><span class="lineno"> 1505</span>&#160; <a class="code" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a>( &amp;(entries[0]), indexstart, rgbstart, indexend, rgbend);</div>
+<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160; indexstart = indexend;</div>
+<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160; rgbstart = rgbend;</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; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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;};</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].<a class="code" href="struct_c_r_g_b.html#aa80fd3b2990b00a963aa009a3c4d095a">nscale8</a>( 256 - opacity);</div>
-<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160; rgb.<a class="code" href="struct_c_r_g_b.html#a8bb881dd011552b412af2845562b0df3">nscale8_video</a>( 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="l01513"></a><span class="lineno"> 1513</span>&#160;</div>
+<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;</div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> { NOBLEND=0, LINEARBLEND=1 } TBlendType;</div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160;</div>
+<div class="line"><a name="l01517"></a><span class="lineno"> 1517</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="l01518"></a><span class="lineno"> 1518</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160; TBlendType blendType=LINEARBLEND);</div>
+<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160;</div>
+<div class="line"><a name="l01522"></a><span class="lineno"> 1522</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="l01523"></a><span class="lineno"> 1523</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160; TBlendType blendType=LINEARBLEND);</div>
+<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160;</div>
+<div class="line"><a name="l01527"></a><span class="lineno"> 1527</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="l01528"></a><span class="lineno"> 1528</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160; TBlendType blendType=NOBLEND );</div>
+<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160;</div>
+<div class="line"><a name="l01532"></a><span class="lineno"> 1532</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="l01533"></a><span class="lineno"> 1533</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160; TBlendType blendType=LINEARBLEND);</div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160;</div>
+<div class="line"><a name="l01537"></a><span class="lineno"> 1537</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="l01538"></a><span class="lineno"> 1538</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160; TBlendType blendType=NOBLEND );</div>
+<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160;</div>
+<div class="line"><a name="l01542"></a><span class="lineno"> 1542</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="l01543"></a><span class="lineno"> 1543</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160; TBlendType blendType=LINEARBLEND);</div>
+<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160;</div>
+<div class="line"><a name="l01547"></a><span class="lineno"> 1547</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="l01548"></a><span class="lineno"> 1548</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160; TBlendType blendType=LINEARBLEND);</div>
+<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160;</div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</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="l01553"></a><span class="lineno"> 1553</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160; TBlendType blendType=LINEARBLEND);</div>
+<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160;</div>
+<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160;</div>
+<div class="line"><a name="l01558"></a><span class="lineno"> 1558</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="l01559"></a><span class="lineno"> 1559</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> PALETTE&gt;</div>
+<div class="line"><a name="l01560"></a><span class="lineno"> 1560</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="l01561"></a><span class="lineno"> 1561</span>&#160; <span class="keyword">const</span> PALETTE&amp; pal, uint8_t brightness, TBlendType blendType)</div>
+<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160;{</div>
+<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160; uint8_t colorIndex = startIndex;</div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160; <span class="keywordflow">for</span>( uint16_t i = 0; i &lt; N; i++) {</div>
+<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160; L[i] = ColorFromPalette( pal, colorIndex, brightness, blendType);</div>
+<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160; colorIndex += incIndex;</div>
+<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160; }</div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;}</div>
+<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160;</div>
+<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> PALETTE&gt;</div>
+<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160;<span class="keywordtype">void</span> map_data_into_colors_through_palette(</div>
+<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160; uint8_t *dataArray, uint16_t dataCount,</div>
+<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a>* targetColorArray,</div>
+<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160; <span class="keyword">const</span> PALETTE&amp; pal,</div>
+<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160; uint8_t opacity=255,</div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160; TBlendType blendType=LINEARBLEND)</div>
+<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160;{</div>
+<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160; <span class="keywordflow">for</span>( uint16_t i = 0; i &lt; dataCount; i++) {</div>
+<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160; uint8_t d = dataArray[i];</div>
+<div class="line"><a name="l01581"></a><span class="lineno"> 1581</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="l01582"></a><span class="lineno"> 1582</span>&#160; <span class="keywordflow">if</span>( opacity == 255 ) {</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; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160; targetColorArray[i].<a class="code" href="struct_c_r_g_b.html#aa80fd3b2990b00a963aa009a3c4d095a">nscale8</a>( 256 - opacity);</div>
+<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160; rgb.<a class="code" href="struct_c_r_g_b.html#a8bb881dd011552b412af2845562b0df3">nscale8_video</a>( opacity);</div>
+<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160; targetColorArray[i] += rgb;</div>
+<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160; }</div>
+<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160; }</div>
+<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;}</div>
+<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160;</div>
+<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160;<span class="comment">// nblendPaletteTowardPalette:</span></div>
+<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;<span class="comment">// Alter one palette by making it slightly more like</span></div>
+<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;<span class="comment">// a &#39;target palette&#39;, used for palette cross-fades.</span></div>
+<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01596"></a><span class="lineno"> 1596</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="l01597"></a><span class="lineno"> 1597</span>&#160;<span class="comment">// of each entry in the current palette to the corresponding</span></div>
+<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;<span class="comment">// entry in the target palette and making small adjustments:</span></div>
+<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;<span class="comment">// If the Red channel is too low, it will be increased.</span></div>
+<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;<span class="comment">// If the Red channel is too high, it will be slightly reduced.</span></div>
+<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160;<span class="comment">// ... and likewise for Green and Blue channels.</span></div>
+<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160;<span class="comment">// Additionally, there are two significant visual improvements</span></div>
+<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;<span class="comment">// to this algorithm implemented here. First is this:</span></div>
+<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160;<span class="comment">// When increasing a channel, it is stepped up by ONE.</span></div>
+<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160;<span class="comment">// When decreasing a channel, it is stepped down by TWO.</span></div>
+<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;<span class="comment">// Due to the way the eye perceives light, and the way colors</span></div>
+<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160;<span class="comment">// are represented in RGB, this produces a more uniform apparent</span></div>
+<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160;<span class="comment">// brightness when cross-fading between most palette colors.</span></div>
+<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160;<span class="comment">// The second visual tweak is limiting the number of changes</span></div>
+<div class="line"><a name="l01612"></a><span class="lineno"> 1612</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="l01613"></a><span class="lineno"> 1613</span>&#160;<span class="comment">// entries are changed at once, it can give a muddled appearance.</span></div>
+<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160;<span class="comment">// However, if only a few palette entries are changed at once,</span></div>
+<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160;<span class="comment">// you get a visually smoother transition: in the middle of the</span></div>
+<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160;<span class="comment">// cross-fade your current palette will actually contain some</span></div>
+<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160;<span class="comment">// colors from the old palette, a few blended colors, and some</span></div>
+<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160;<span class="comment">// colors from the new palette.</span></div>
+<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;<span class="comment">// The maximum number of possible palette changes per call</span></div>
+<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160;<span class="comment">// is 48 (sixteen color entries time three channels each).</span></div>
+<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160;<span class="comment">// The default &#39;maximim number of changes&#39; here is 12, meaning</span></div>
+<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160;<span class="comment">// that only approximately a quarter of the palette entries</span></div>
+<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160;<span class="comment">// will be changed per call.</span></div>
+<div class="line"><a name="l01624"></a><span class="lineno"> 1624</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="l01625"></a><span class="lineno"> 1625</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; targetPalette,</div>
+<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160; uint8_t maxChanges=24);</div>
+<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160;</div>
+<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160;</div>
+<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;</div>
+<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160;</div>
+<div class="line"><a name="l01631"></a><span class="lineno"> 1631</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="l01632"></a><span class="lineno"> 1632</span>&#160;<span class="comment">// of connected color gradients.</span></div>
+<div class="line"><a name="l01633"></a><span class="lineno"> 1633</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="l01634"></a><span class="lineno"> 1634</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="l01635"></a><span class="lineno"> 1635</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="l01636"></a><span class="lineno"> 1636</span>&#160;<span class="comment">// starting black point (at index 0), the red midpoint (at index 192),</span></div>
+<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;<span class="comment">// and the final white point (at index 255). It looks like this:</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="l01639"></a><span class="lineno"> 1639</span>&#160;<span class="comment">// index: 0 192 255</span></div>
+<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;<span class="comment">// |----------r-r-r-rrrrrrrrRrRrRrRrRRRR-|-RRWRWWRWWW-|</span></div>
+<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;<span class="comment">// color: (0,0,0) (255,0,0) (255,255,255)</span></div>
+<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160;<span class="comment">// Here&#39;s how you&#39;d define that gradient palette:</span></div>
+<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160;<span class="comment">// DEFINE_GRADIENT_PALETTE( black_to_red_to_white_p ) {</span></div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160;<span class="comment">// 0, 0, 0, 0, /* at index 0, black(0,0,0) */</span></div>
+<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;<span class="comment">// 192, 255, 0, 0, /* at index 192, red(255,0,0) */</span></div>
+<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160;<span class="comment">// 255, 255,255,255 /* at index 255, white(255,255,255) */</span></div>
+<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;<span class="comment">// };</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="l01651"></a><span class="lineno"> 1651</span>&#160;<span class="comment">// This format is designed for compact storage. The example palette here</span></div>
+<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;<span class="comment">// takes up just 12 bytes of PROGMEM (flash) storage, and zero bytes</span></div>
+<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;<span class="comment">// of SRAM when not currently in use.</span></div>
+<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;<span class="comment">// To use one of these gradient palettes, simply assign it into a</span></div>
+<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;<span class="comment">// CRGBPalette16 or a CRGBPalette256, like this:</span></div>
+<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160;<span class="comment">// CRGBPalette16 pal = black_to_red_to_white_p;</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="l01660"></a><span class="lineno"> 1660</span>&#160;<span class="comment">// When the assignment is made, the gradients are expanded out into</span></div>
+<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160;<span class="comment">// either 16 or 256 palette entries, depending on the kind of palette</span></div>
+<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160;<span class="comment">// object they&#39;re assigned to.</span></div>
+<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;<span class="comment">// IMPORTANT NOTES &amp; CAVEATS:</span></div>
+<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01666"></a><span class="lineno"> 1666</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="l01667"></a><span class="lineno"> 1667</span>&#160;<span class="comment">// index 255 will result in program hangs or crashes.</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="l01669"></a><span class="lineno"> 1669</span>&#160;<span class="comment">// - At this point, these gradient palette definitions MUST BE</span></div>
+<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160;<span class="comment">// stored in PROGMEM on AVR-based Arduinos. If you use the</span></div>
+<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;<span class="comment">// DEFINE_GRADIENT_PALETTE macro, this is taken care of automatically.</span></div>
+<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160;</div>
+<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160;<span class="preprocessor">#define DEFINE_GRADIENT_PALETTE(X) \</span></div>
+<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160;<span class="preprocessor"> extern const TProgmemRGBGradientPalette_byte X[] FL_PROGMEM =</span></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="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;<span class="preprocessor">#define DECLARE_GRADIENT_PALETTE(X) \</span></div>
+<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;<span class="preprocessor"> extern const TProgmemRGBGradientPalette_byte X[] FL_PROGMEM</span></div>
+<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160;</div>
+<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160;</div>
+<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;<span class="comment">// Functions to apply gamma adjustments, either:</span></div>
+<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160;<span class="comment">// - a single gamma adjustment to a single scalar value,</span></div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160;<span class="comment">// - a single gamma adjustment to each channel of a CRGB color, or</span></div>
+<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160;<span class="comment">// - different gamma adjustments for each channel of a CRFB color.</span></div>
+<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160;<span class="comment">// Note that the gamma is specified as a traditional floating point value</span></div>
+<div class="line"><a name="l01687"></a><span class="lineno"> 1687</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="l01688"></a><span class="lineno"> 1688</span>&#160;<span class="comment">// your innermost pixel loops, or in animations that are extremely</span></div>
+<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160;<span class="comment">// low on program storage space. Nevertheless, if you need these</span></div>
+<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160;<span class="comment">// functions, here they are.</span></div>
+<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;<span class="comment">// Furthermore, bear in mind that CRGB leds have only eight bits</span></div>
+<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160;<span class="comment">// per channel of color resolution, and that very small, subtle shadings</span></div>
+<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160;<span class="comment">// may not be visible.</span></div>
+<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160;uint8_t applyGamma_video( uint8_t brightness, <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> 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="l01697"></a><span class="lineno"> 1697</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="l01698"></a><span class="lineno"> 1698</span>&#160;<span class="comment">// The &quot;n&quot; versions below modify their arguments in-place.</span></div>
+<div class="line"><a name="l01699"></a><span class="lineno"> 1699</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="l01700"></a><span class="lineno"> 1700</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="l01701"></a><span class="lineno"> 1701</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="l01702"></a><span class="lineno"> 1702</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="l01703"></a><span class="lineno"> 1703</span>&#160;</div>
+<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160;</div>
+<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;</div>
+<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="group___colorutils_html_gaacf0416f9e0438f23f92d0df6c338ea3"><div class="ttname"><a href="group___colorutils.html#gaacf0416f9e0438f23f92d0df6c338ea3">blur1d</a></div><div class="ttdeci">void blur1d(CRGB *leds, uint16_t numLeds, fract8 blur_amount)</div><div class="ttdoc">blur1d: one-dimensional blur filter. </div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00374">colorutils.cpp:374</a></div></div>
+<div class="ttc" id="group___colorutils_html_gacb40363ff285a5d816a1cf3096e27c14"><div class="ttname"><a href="group___colorutils.html#gacb40363ff285a5d816a1cf3096e27c14">blurColumns</a></div><div class="ttdeci">void blurColumns(CRGB *leds, uint8_t width, uint8_t height, fract8 blur_amount)</div><div class="ttdoc">blurColumns: perform a blur1d on each column of a rectangular matrix </div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00407">colorutils.cpp:407</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_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="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#l01022">colorutils.h:1022</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#l00354">lib8tion.h:354</a></div></div>
+<div class="ttc" id="group___colorutils_html_gae8c0a05b75034b4a2cae20ddc70ec15f"><div class="ttname"><a href="group___colorutils.html#gae8c0a05b75034b4a2cae20ddc70ec15f">fadeUsingColor</a></div><div class="ttdeci">void fadeUsingColor(CRGB *leds, uint16_t numLeds, const CRGB &amp;colormask)</div><div class="ttdoc">fadeUsingColor - scale down the brightness of an array of pixels, as though it were seen through a tr...</div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00211">colorutils.cpp:211</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#l00546">colorutils.h:546</a></div></div>
+<div class="ttc" id="group___colorutils_html_gad0356fc313196732e7cd4e64f506f82b"><div class="ttname"><a href="group___colorutils.html#gad0356fc313196732e7cd4e64f506f82b">nscale8</a></div><div class="ttdeci">void nscale8(CRGB *leds, uint16_t num_leds, uint8_t scale)</div><div class="ttdoc">nscale8 - scale down the brightness of an array of pixels all at once. </div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00204">colorutils.cpp:204</a></div></div>
+<div class="ttc" id="group___colorutils_html_ga956be37436f2b9c06c99d24263ef8e83"><div class="ttname"><a href="group___colorutils.html#ga956be37436f2b9c06c99d24263ef8e83">nscale8_video</a></div><div class="ttdeci">void nscale8_video(CRGB *leds, uint16_t num_leds, uint8_t scale)</div><div class="ttdoc">nscale8_video - scale down the brightness of an array of pixels all at once. </div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00171">colorutils.cpp:171</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#l00650">colorutils.h:650</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#l00335">lib8tion.h:335</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_a8bb881dd011552b412af2845562b0df3"><div class="ttname"><a href="struct_c_r_g_b.html#a8bb881dd011552b412af2845562b0df3">CRGB::nscale8_video</a></div><div class="ttdeci">CRGB &amp; nscale8_video(uint8_t scaledown)</div><div class="ttdoc">scale down a RGB to N 256ths of it&#39;s current brightness, using &#39;video&#39; dimming rules, which means that unless the scale factor is ZERO each channel is guaranteed NOT to dim down to zero. </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00329">pixeltypes.h:329</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="struct_c_r_g_b_html_aa80fd3b2990b00a963aa009a3c4d095a"><div class="ttname"><a href="struct_c_r_g_b.html#aa80fd3b2990b00a963aa009a3c4d095a">CRGB::nscale8</a></div><div class="ttdeci">CRGB &amp; nscale8(uint8_t scaledown)</div><div class="ttdoc">scale down a RGB to N 256ths of it&#39;s current brightness, using &#39;plain math&#39; dimming rules...</div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00353">pixeltypes.h:353</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___colorutils_html_ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b"><div class="ttname"><a href="group___colorutils.html#ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b">blurRows</a></div><div class="ttdeci">void blurRows(CRGB *leds, uint8_t width, uint8_t height, fract8 blur_amount)</div><div class="ttdoc">blurRows: perform a blur1d on every row of a rectangular matrix </div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00398">colorutils.cpp:398</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#l00916">colorutils.h:916</a></div></div>
+<div class="ttc" id="group___colorutils_html_gac1e25878d16efa6112d907738f525773"><div class="ttname"><a href="group___colorutils.html#gac1e25878d16efa6112d907738f525773">fadeLightBy</a></div><div class="ttdeci">void fadeLightBy(CRGB *leds, uint16_t num_leds, uint8_t fadeBy)</div><div class="ttdoc">fadeLightBy and fade_video - reduce the brightness of an array of pixels all at once. </div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00183">colorutils.cpp:183</a></div></div>
+<div class="ttc" id="group___colorutils_html_ga4f06b4423f71f77346aaf5dabe7dd05c"><div class="ttname"><a href="group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c">blend</a></div><div class="ttdeci">CRGB blend(const CRGB &amp;p1, const CRGB &amp;p2, fract8 amountOfP2)</div><div class="ttdoc">Pixel blending. </div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00262">colorutils.cpp:262</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#l00442">colorutils.h:442</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#l01313">colorutils.h:1313</a></div></div>
+<div class="ttc" id="group___colorutils_html_ga404d163d8a422cee2df2baac4151ca98"><div class="ttname"><a href="group___colorutils.html#ga404d163d8a422cee2df2baac4151ca98">fadeToBlackBy</a></div><div class="ttdeci">void fadeToBlackBy(CRGB *leds, uint16_t num_leds, uint8_t fadeBy)</div><div class="ttdoc">fadeToBlackBy and fade_raw - reduce the brightness of an array of pixels all at once. </div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00189">colorutils.cpp:189</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#l00753">lib8tion.h:753</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#l00754">lib8tion.h:754</a></div></div>
+<div class="ttc" id="group___colorutils_html_ga6afaa1f712186a4b67445f69871cad88"><div class="ttname"><a href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a></div><div class="ttdeci">void fill_gradient_RGB(CRGB *leds, uint16_t startpos, CRGB startcolor, uint16_t endpos, CRGB endcolor)</div><div class="ttdoc">fill_gradient_RGB - fill a range of LEDs with a smooth RGB gradient between two specified RGB colors...</div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00064">colorutils.cpp:64</a></div></div>
+<div class="ttc" id="group___colorutils_html_ga9ddce40dda09fb46db19c55368baf335"><div class="ttname"><a href="group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335">nblend</a></div><div class="ttdeci">CRGB &amp; nblend(CRGB &amp;existing, const CRGB &amp;overlay, fract8 amountOfOverlay)</div><div class="ttdoc">nblend - destructively modifies one color, blending in a given fraction of an overlay color ...</div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00226">colorutils.cpp:226</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#l00410">colorutils.h:410</a></div></div>
+<div class="ttc" id="group___colorutils_html_gac5c6b83ec07d310385a430f9f0336530"><div class="ttname"><a href="group___colorutils.html#gac5c6b83ec07d310385a430f9f0336530">HeatColor</a></div><div class="ttdeci">CRGB HeatColor(uint8_t temperature)</div><div class="ttdoc">CRGB HeatColor( uint8_t temperature) </div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00440">colorutils.cpp:440</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#l00414">colorutils.h:414</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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 0f5effd9..c6fce75e 100644
--- a/docs/3.1/controller_8h.html
+++ b/docs/3.1/controller_8h.html
@@ -144,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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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_source.html b/docs/3.1/controller_8h_source.html
index 2bdec29a..1beb70f5 100644
--- a/docs/3.1/controller_8h_source.html
+++ b/docs/3.1/controller_8h_source.html
@@ -366,125 +366,126 @@ $(document).ready(function(){initNavTree('controller_8h_source.html','');});
<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="l00298"></a><span class="lineno"> 298</span>&#160; d[i] = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>(Q, e[i]);</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor">#if (FASTLED_SCALE8_FIXED == 1)</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">if</span>(d[i]) (d[i]--);</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="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">if</span>(e[i]) e[i]--;</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="preprocessor">#endif</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; }</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="comment">// Do we have n pixels left to process?</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</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="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">return</span> mLenRemaining &gt;= n;</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="comment">// toggle dithering enable</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordtype">void</span> enable_dithering(EDitherMode dither) {</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">switch</span>(dither) {</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">case</span> BINARY_DITHER: init_binary_dithering(); <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</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="l00317"></a><span class="lineno"> 317</span>&#160; }</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; }</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</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> size() { <span class="keywordflow">return</span> mLen; }</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="l00322"></a><span class="lineno"> 322</span>&#160; <span class="comment">// get the amount to advance the pointer by</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">int</span> advanceBy() { <span class="keywordflow">return</span> mAdvance; }</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="l00325"></a><span class="lineno"> 325</span>&#160; <span class="comment">// advance the data pointer forward, adjust position counter</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> advanceData() { mData += mAdvance; mLenRemaining--;}</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">// step the dithering forward</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keywordtype">void</span> stepDithering() {</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="comment">// IF UPDATING HERE, BE SURE TO UPDATE THE ASM VERSION IN</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="comment">// clockless_trinket.h!</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; d[0] = e[0] - d[0];</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; d[1] = e[1] - d[1];</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; d[2] = e[2] - d[2];</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">// 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="l00338"></a><span class="lineno"> 338</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keywordtype">void</span> preStepFirstByteDithering() {</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; d[RO(0)] = e[RO(0)] - d[RO(0)];</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <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="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 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="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 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#ga07133b3085824d0fcd4f5086d286c4b5">qadd8</a>(b, pc.d[RO(SLOT)]) : 0; }</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 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#ga07133b3085824d0fcd4f5086d286c4b5">qadd8</a>(b,d) : 0; }</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="l00348"></a><span class="lineno"> 348</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#gad7535ccda9c92470c4e6ee0265585555">scale8</a>(b, pc.mScale.raw[RO(SLOT)]); }</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 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#gad7535ccda9c92470c4e6ee0265585555">scale8</a>(b, scale); }</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="comment">// composite shortcut functions for loading, dithering, and scaling</span></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="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="l00353"></a><span class="lineno"> 353</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="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 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#gad7535ccda9c92470c4e6ee0265585555">scale8</a>(pc.dither&lt;SLOT&gt;(pc, pc.loadByte&lt;SLOT&gt;(pc, lane), d), scale); }</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 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#gad7535ccda9c92470c4e6ee0265585555">scale8</a>(pc.loadByte&lt;SLOT&gt;(pc, lane), scale); }</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="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 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="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 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="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="l00360"></a><span class="lineno"> 360</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="l00361"></a><span class="lineno"> 361</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="l00362"></a><span class="lineno"> 362</span>&#160;</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="comment">// Helper functions to get around gcc stupidities</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</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="l00365"></a><span class="lineno"> 365</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="l00366"></a><span class="lineno"> 366</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="l00367"></a><span class="lineno"> 367</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="l00368"></a><span class="lineno"> 368</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="l00369"></a><span class="lineno"> 369</span>&#160;</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</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="l00371"></a><span class="lineno"> 371</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="l00372"></a><span class="lineno"> 372</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="l00373"></a><span class="lineno"> 373</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="l00374"></a><span class="lineno"> 374</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="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"><a class="line" href="class_c_pixel_l_e_d_controller.html"> 377</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="l00378"></a><span class="lineno"> 378</span>&#160;<span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</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="l00380"></a><span class="lineno"> 380</span>&#160;</div>
+<div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016"> 385</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="l00386"></a><span class="lineno"> 386</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="l00387"></a><span class="lineno"> 387</span>&#160; showPixels(pixels);</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;</div>
+<div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="class_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c"> 394</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="l00395"></a><span class="lineno"> 395</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="l00396"></a><span class="lineno"> 396</span>&#160; showPixels(pixels);</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="l00399"></a><span class="lineno"> 399</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</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="l00401"></a><span class="lineno"> 401</span>&#160;};</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="preprocessor">#endif</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;FASTLED_NAMESPACE_END</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="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_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#l00394">controller.h:394</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_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#l00385">controller.h:385</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#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_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#l00150">FastLED.h:150</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#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="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_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#l00377">controller.h:377</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>
@@ -495,6 +496,7 @@ $(document).ready(function(){initNavTree('controller_8h_source.html','');});
<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="group___math_html_ga07133b3085824d0fcd4f5086d286c4b5"><div class="ttname"><a href="group___math.html#ga07133b3085824d0fcd4f5086d286c4b5">qadd8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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="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#l00117">controller.h:117</a></div></div>
@@ -504,13 +506,14 @@ $(document).ready(function(){initNavTree('controller_8h_source.html','');});
<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 class="ttc" id="group___scaling_html_gad7535ccda9c92470c4e6ee0265585555"><div class="ttname"><a href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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><!-- 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 93709e9d..07ebf699 100644
--- a/docs/3.1/cpp__compat_8h_source.html
+++ b/docs/3.1/cpp__compat_8h_source.html
@@ -132,7 +132,7 @@ $(document).ready(function(){initNavTree('cpp__compat_8h_source.html','');});
<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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 1a6360e3..723e9334 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 0ff7f6cd..01de6461 100644
--- a/docs/3.1/dmx_8h_source.html
+++ b/docs/3.1/dmx_8h_source.html
@@ -175,7 +175,7 @@ $(document).ready(function(){initNavTree('dmx_8h_source.html','');});
<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="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#l00377">controller.h:377</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 -->
@@ -184,7 +184,7 @@ $(document).ready(function(){initNavTree('dmx_8h_source.html','');});
<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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 9a5d85d3..0076d11e 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 cfe2aef3..1ff3452e 100644
--- a/docs/3.1/fastled__config_8h_source.html
+++ b/docs/3.1/fastled__config_8h_source.html
@@ -138,7 +138,16 @@ $(document).ready(function(){initNavTree('fastled__config_8h_source.html','');})
<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="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment">// Use this toggle whether or not to use the &#39;fixed&#39; FastLED scale8. The initial scale8</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment">// had a problem where scale8(255,255) would give you 254. This is now fixed, and that</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">// fix is enabled by default. However, if for some reason you have code that is not</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// working right as a result of this (e.g. code that was expecting the old scale8 behavior)</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">// you can disable it here</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">#define FASTLED_SCALE8_FIXED 1</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">// define FASTLED_SCALE8_FIXED 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="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 -->
@@ -146,7 +155,7 @@ $(document).ready(function(){initNavTree('fastled__config_8h_source.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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 3fa7b4dd..370ea554 100644
--- a/docs/3.1/fastled__delay_8h.html
+++ b/docs/3.1/fastled__delay_8h.html
@@ -159,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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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_source.html b/docs/3.1/fastled__delay_8h_source.html
index a0142aa4..ae7ae936 100644
--- a/docs/3.1/fastled__delay_8h_source.html
+++ b/docs/3.1/fastled__delay_8h_source.html
@@ -244,7 +244,7 @@ $(document).ready(function(){initNavTree('fastled__delay_8h_source.html','');});
<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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 c6acf282..256fc744 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 ea56037c..095a27f5 100644
--- a/docs/3.1/fastled__progmem_8h_source.html
+++ b/docs/3.1/fastled__progmem_8h_source.html
@@ -180,7 +180,7 @@ $(document).ready(function(){initNavTree('fastled__progmem_8h_source.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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 230b390d..8afe2218 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 9ef3067b..082107d5 100644
--- a/docs/3.1/fastpin_8h_source.html
+++ b/docs/3.1/fastpin_8h_source.html
@@ -352,7 +352,7 @@ $(document).ready(function(){initNavTree('fastpin_8h_source.html','');});
<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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 287218eb..213323cf 100644
--- a/docs/3.1/fastspi_8h_source.html
+++ b/docs/3.1/fastspi_8h_source.html
@@ -241,7 +241,7 @@ $(document).ready(function(){initNavTree('fastspi_8h_source.html','');});
<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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 8c80b9a6..1899cf80 100644
--- a/docs/3.1/fastspi__bitbang_8h_source.html
+++ b/docs/3.1/fastspi__bitbang_8h_source.html
@@ -481,7 +481,7 @@ $(document).ready(function(){initNavTree('fastspi__bitbang_8h_source.html','');}
<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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 36a595ad..f0ec0229 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 9553a71b..d0a6f67c 100644
--- a/docs/3.1/fastspi__nop_8h_source.html
+++ b/docs/3.1/fastspi__nop_8h_source.html
@@ -179,7 +179,7 @@ $(document).ready(function(){initNavTree('fastspi__nop_8h_source.html','');});
<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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 ce9bd504..22d3dcfc 100644
--- a/docs/3.1/fastspi__ref_8h_source.html
+++ b/docs/3.1/fastspi__ref_8h_source.html
@@ -215,7 +215,7 @@ $(document).ready(function(){initNavTree('fastspi__ref_8h_source.html','');});
<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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 a37c0b92..cfe4cd22 100644
--- a/docs/3.1/fastspi__types_8h_source.html
+++ b/docs/3.1/fastspi__types_8h_source.html
@@ -125,7 +125,7 @@ $(document).ready(function(){initNavTree('fastspi__types_8h_source.html','');});
<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="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#gad7535ccda9c92470c4e6ee0265585555">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>
@@ -146,16 +146,16 @@ $(document).ready(function(){initNavTree('fastspi__types_8h_source.html','');});
<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#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 class="ttc" id="group___scaling_html_gad7535ccda9c92470c4e6ee0265585555"><div class="ttname"><a href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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><!-- 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 07ab8bc6..ef9839da 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:46 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 78d6a6d3..7675fad2 100644
--- a/docs/3.1/functions.html
+++ b/docs/3.1/functions.html
@@ -488,7 +488,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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 bf46b44a..5f19483d 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:46 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 7a03107f..cb5f101e 100644
--- a/docs/3.1/functions_func.html
+++ b/docs/3.1/functions_func.html
@@ -485,7 +485,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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:46 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 d8d15fa7..a7c5c037 100644
--- a/docs/3.1/globals.html
+++ b/docs/3.1/globals.html
@@ -84,6 +84,23 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
</ul>
</div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="#index__"><span>_</span></a></li>
+ <li><a href="#index_b"><span>b</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_h"><span>h</span></a></li>
+ <li><a href="#index_i"><span>i</span></a></li>
+ <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_t"><span>t</span></a></li>
+ <li class="current"><a href="#index_u"><span>u</span></a></li>
+ </ul>
+ </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
@@ -114,11 +131,33 @@ $(document).ready(function(){initNavTree('globals.html','');});
</div>
<div class="contents">
-<div class="textblock">Here is a list of all documented file members with links to the documentation:</div><ul>
+<div class="textblock">Here is a list of all documented file members with links to the documentation:</div>
+
+<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
<li>__attribute__()
: <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">bitswap.h</a>
, <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">fastled_delay.h</a>
</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>blend()
+: <a class="el" href="group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c">colorutils.h</a>
+</li>
+<li>blur1d()
+: <a class="el" href="group___colorutils.html#gaacf0416f9e0438f23f92d0df6c338ea3">colorutils.h</a>
+</li>
+<li>blurColumns()
+: <a class="el" href="group___colorutils.html#gacb40363ff285a5d816a1cf3096e27c14">colorutils.h</a>
+</li>
+<li>blurRows()
+: <a class="el" href="group___colorutils.html#ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b">colorutils.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
<li>CarbonArc
: <a class="el" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9aa9dab8ea30eb2a41c48956480b7014d1">color.h</a>
</li>
@@ -128,15 +167,39 @@ $(document).ready(function(){initNavTree('globals.html','');});
<li>ColorTemperature
: <a class="el" href="group___color_enums.html#ga251e9e8dc2c7b981786b71706522b2a9">color.h</a>
</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
<li>DirectSunlight
: <a class="el" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a890e0555ad95071fa4391a5775a38621">color.h</a>
</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
<li>ESPIChipsets
: <a class="el" href="_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926">FastLED.h</a>
</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>fadeLightBy()
+: <a class="el" href="group___colorutils.html#gac1e25878d16efa6112d907738f525773">colorutils.h</a>
+</li>
+<li>fadeToBlackBy()
+: <a class="el" href="group___colorutils.html#ga404d163d8a422cee2df2baac4151ca98">colorutils.h</a>
+</li>
+<li>fadeUsingColor()
+: <a class="el" href="group___colorutils.html#gae8c0a05b75034b4a2cae20ddc70ec15f">colorutils.h</a>
+</li>
<li>fill_gradient()
: <a class="el" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">colorutils.h</a>
</li>
+<li>fill_gradient_RGB()
+: <a class="el" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">colorutils.h</a>
+</li>
<li>fill_rainbow()
: <a class="el" href="group___colorutils.html#gafcc7dac88e25736ebc49a9faf2a1c2e2">colorutils.h</a>
</li>
@@ -146,21 +209,57 @@ $(document).ready(function(){initNavTree('globals.html','');});
<li>FL_PROGMEM
: <a class="el" href="group___colorpalletes.html#ga57a38373661043f74b292976e83c687b">colorpalettes.h</a>
</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
<li>Halogen
: <a class="el" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae5ec76aa869b51e645e9f226dfee4b79">color.h</a>
</li>
+<li>HeatColor()
+: <a class="el" href="group___colorutils.html#gac5c6b83ec07d310385a430f9f0336530">colorutils.h</a>
+</li>
<li>HighNoonSun
: <a class="el" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ac9a2b02351fcc9ad08ef4e2748530e76">color.h</a>
</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
<li>inoise16_raw()
: <a class="el" href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">noise.h</a>
</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
<li>LEDColorCorrection
: <a class="el" href="group___color_enums.html#gadf6bcba67c9573665af20788c4431ae8">color.h</a>
</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>nblend()
+: <a class="el" href="group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335">colorutils.h</a>
+</li>
+<li>nscale8()
+: <a class="el" href="group___colorutils.html#gad0356fc313196732e7cd4e64f506f82b">colorutils.h</a>
+</li>
+<li>nscale8_video()
+: <a class="el" href="group___colorutils.html#ga956be37436f2b9c06c99d24263ef8e83">colorutils.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
<li>OvercastSky
: <a class="el" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ad0aebf757f0aa8fc45ba282bd25006f7">color.h</a>
</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
<li>Tungsten100W
: <a class="el" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a631a1e96b10db9220ab27d70a320ac48">color.h</a>
</li>
@@ -173,6 +272,10 @@ $(document).ready(function(){initNavTree('globals.html','');});
<li>TypicalSMD5050
: <a class="el" href="group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8ac52fe8e181ff3c39128664fba835eae3">color.h</a>
</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
<li>UncorrectedColor
: <a class="el" href="group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8af964ffff5f2977a60a83aa3f9f8b4368">color.h</a>
</li>
@@ -185,7 +288,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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:46 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 668fc7b1..e9980403 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:46 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 3b7b16db..0f491658 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:46 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 15141f53..2d2e3232 100644
--- a/docs/3.1/globals_func.html
+++ b/docs/3.1/globals_func.html
@@ -119,25 +119,61 @@ $(document).ready(function(){initNavTree('globals_func.html','');});
: <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">bitswap.h</a>
, <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">fastled_delay.h</a>
</li>
+<li>blend()
+: <a class="el" href="group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c">colorutils.h</a>
+</li>
+<li>blur1d()
+: <a class="el" href="group___colorutils.html#gaacf0416f9e0438f23f92d0df6c338ea3">colorutils.h</a>
+</li>
+<li>blurColumns()
+: <a class="el" href="group___colorutils.html#gacb40363ff285a5d816a1cf3096e27c14">colorutils.h</a>
+</li>
+<li>blurRows()
+: <a class="el" href="group___colorutils.html#ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b">colorutils.h</a>
+</li>
+<li>fadeLightBy()
+: <a class="el" href="group___colorutils.html#gac1e25878d16efa6112d907738f525773">colorutils.h</a>
+</li>
+<li>fadeToBlackBy()
+: <a class="el" href="group___colorutils.html#ga404d163d8a422cee2df2baac4151ca98">colorutils.h</a>
+</li>
+<li>fadeUsingColor()
+: <a class="el" href="group___colorutils.html#gae8c0a05b75034b4a2cae20ddc70ec15f">colorutils.h</a>
+</li>
<li>fill_gradient()
: <a class="el" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">colorutils.h</a>
</li>
+<li>fill_gradient_RGB()
+: <a class="el" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">colorutils.h</a>
+</li>
<li>fill_rainbow()
: <a class="el" href="group___colorutils.html#gafcc7dac88e25736ebc49a9faf2a1c2e2">colorutils.h</a>
</li>
<li>fill_solid()
: <a class="el" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">colorutils.h</a>
</li>
+<li>HeatColor()
+: <a class="el" href="group___colorutils.html#gac5c6b83ec07d310385a430f9f0336530">colorutils.h</a>
+</li>
<li>inoise16_raw()
: <a class="el" href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">noise.h</a>
</li>
+<li>nblend()
+: <a class="el" href="group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335">colorutils.h</a>
+</li>
+<li>nscale8()
+: <a class="el" href="group___colorutils.html#gad0356fc313196732e7cd4e64f506f82b">colorutils.h</a>
+</li>
+<li>nscale8_video()
+: <a class="el" href="group___colorutils.html#ga956be37436f2b9c06c99d24263ef8e83">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="footer">Generated on Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:46 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 25887f45..4536d285 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:46 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 757efb79..588f7475 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 48aad0cb..87b6e82c 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 43e9d6f6..f85ac1c6 100644
--- a/docs/3.1/group___color_enums.html
+++ b/docs/3.1/group___color_enums.html
@@ -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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 585a07af..ac9677d3 100644
--- a/docs/3.1/group___colorpalletes.html
+++ b/docs/3.1/group___colorpalletes.html
@@ -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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 6d324e32..accdd39d 100644
--- a/docs/3.1/group___colorutils.html
+++ b/docs/3.1/group___colorutils.html
@@ -199,18 +199,21 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grou
<tr class="separator:ga3144bb2bb66aeed33e20f4fdd6cc1a98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gace693b077794f9b6aa80875fdd550a68"><td class="memTemplParams" colspan="2"><a class="anchor" id="gace693b077794f9b6aa80875fdd550a68"></a>
template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gace693b077794f9b6aa80875fdd550a68"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fill_gradient</b> (T *targetArray, uint16_t numLeds, 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, TGradientDirectionCode directionCode=SHORTEST_HUES)</td></tr>
+<tr class="memitem:gace693b077794f9b6aa80875fdd550a68"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group___colorutils.html#gace693b077794f9b6aa80875fdd550a68">fill_gradient</a> (T *targetArray, uint16_t numLeds, 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, TGradientDirectionCode directionCode=SHORTEST_HUES)</td></tr>
+<tr class="memdesc:gace693b077794f9b6aa80875fdd550a68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience functions to fill an array of colors with a two-color. <br /></td></tr>
<tr class="separator:gace693b077794f9b6aa80875fdd550a68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3a46ed6b7043382df172d7501785033c"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga3a46ed6b7043382df172d7501785033c"></a>
template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga3a46ed6b7043382df172d7501785033c"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fill_gradient</b> (T *targetArray, uint16_t numLeds, 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, TGradientDirectionCode directionCode=SHORTEST_HUES)</td></tr>
+<tr class="memitem:ga3a46ed6b7043382df172d7501785033c"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group___colorutils.html#ga3a46ed6b7043382df172d7501785033c">fill_gradient</a> (T *targetArray, uint16_t numLeds, 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, TGradientDirectionCode directionCode=SHORTEST_HUES)</td></tr>
+<tr class="memdesc:ga3a46ed6b7043382df172d7501785033c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience functions to fill an array of colors with a three-color. <br /></td></tr>
<tr class="separator:ga3a46ed6b7043382df172d7501785033c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga396996c5e505e459b418330f4386f779"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga396996c5e505e459b418330f4386f779"></a>
template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga396996c5e505e459b418330f4386f779"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fill_gradient</b> (T *targetArray, uint16_t numLeds, 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, TGradientDirectionCode directionCode=SHORTEST_HUES)</td></tr>
+<tr class="memitem:ga396996c5e505e459b418330f4386f779"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group___colorutils.html#ga396996c5e505e459b418330f4386f779">fill_gradient</a> (T *targetArray, uint16_t numLeds, 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, TGradientDirectionCode directionCode=SHORTEST_HUES)</td></tr>
+<tr class="memdesc:ga396996c5e505e459b418330f4386f779"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience functions to fill an array of colors with a four-color gradient. <br /></td></tr>
<tr class="separator:ga396996c5e505e459b418330f4386f779"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6afaa1f712186a4b67445f69871cad88"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6afaa1f712186a4b67445f69871cad88"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_gradient_RGB</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t startpos, <a class="el" href="struct_c_r_g_b.html">CRGB</a> startcolor, uint16_t endpos, <a class="el" href="struct_c_r_g_b.html">CRGB</a> endcolor)</td></tr>
+<tr class="memitem:ga6afaa1f712186a4b67445f69871cad88"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88">fill_gradient_RGB</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t startpos, <a class="el" href="struct_c_r_g_b.html">CRGB</a> startcolor, uint16_t endpos, <a class="el" href="struct_c_r_g_b.html">CRGB</a> endcolor)</td></tr>
+<tr class="memdesc:ga6afaa1f712186a4b67445f69871cad88"><td class="mdescLeft">&#160;</td><td class="mdescRight">fill_gradient_RGB - fill a range of LEDs with a smooth RGB gradient between two specified RGB colors. <a href="#ga6afaa1f712186a4b67445f69871cad88">More...</a><br /></td></tr>
<tr class="separator:ga6afaa1f712186a4b67445f69871cad88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad86495ad60871dacb19923fe9ddde262"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad86495ad60871dacb19923fe9ddde262"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_gradient_RGB</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t numLeds, 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>
@@ -221,65 +224,69 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_gradient_RGB</b>
<tr class="memitem:ga570fbfd0ac82ef3e4e05d3958b641d7a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga570fbfd0ac82ef3e4e05d3958b641d7a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_gradient_RGB</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t numLeds, 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:ga570fbfd0ac82ef3e4e05d3958b641d7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac1e25878d16efa6112d907738f525773"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac1e25878d16efa6112d907738f525773"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>fadeLightBy</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t num_leds, uint8_t fadeBy)</td></tr>
+<tr class="memitem:gac1e25878d16efa6112d907738f525773"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#gac1e25878d16efa6112d907738f525773">fadeLightBy</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t num_leds, uint8_t fadeBy)</td></tr>
+<tr class="memdesc:gac1e25878d16efa6112d907738f525773"><td class="mdescLeft">&#160;</td><td class="mdescRight">fadeLightBy and fade_video - reduce the brightness of an array of pixels all at once. <a href="#gac1e25878d16efa6112d907738f525773">More...</a><br /></td></tr>
<tr class="separator:gac1e25878d16efa6112d907738f525773"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaff656b0046fac0d40b8eb02941ce1755"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaff656b0046fac0d40b8eb02941ce1755"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fade_video</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t num_leds, uint8_t fadeBy)</td></tr>
<tr class="separator:gaff656b0046fac0d40b8eb02941ce1755"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga956be37436f2b9c06c99d24263ef8e83"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga956be37436f2b9c06c99d24263ef8e83"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>nscale8_video</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t num_leds, uint8_t scale)</td></tr>
+<tr class="memitem:ga956be37436f2b9c06c99d24263ef8e83"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#ga956be37436f2b9c06c99d24263ef8e83">nscale8_video</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t num_leds, uint8_t scale)</td></tr>
+<tr class="memdesc:ga956be37436f2b9c06c99d24263ef8e83"><td class="mdescLeft">&#160;</td><td class="mdescRight">nscale8_video - scale down the brightness of an array of pixels all at once. <a href="#ga956be37436f2b9c06c99d24263ef8e83">More...</a><br /></td></tr>
<tr class="separator:ga956be37436f2b9c06c99d24263ef8e83"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga404d163d8a422cee2df2baac4151ca98"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga404d163d8a422cee2df2baac4151ca98"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>fadeToBlackBy</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t num_leds, uint8_t fadeBy)</td></tr>
+<tr class="memitem:ga404d163d8a422cee2df2baac4151ca98"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#ga404d163d8a422cee2df2baac4151ca98">fadeToBlackBy</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t num_leds, uint8_t fadeBy)</td></tr>
+<tr class="memdesc:ga404d163d8a422cee2df2baac4151ca98"><td class="mdescLeft">&#160;</td><td class="mdescRight">fadeToBlackBy and fade_raw - reduce the brightness of an array of pixels all at once. <a href="#ga404d163d8a422cee2df2baac4151ca98">More...</a><br /></td></tr>
<tr class="separator:ga404d163d8a422cee2df2baac4151ca98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac020b03041306ed9c859bbdfebe943cf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac020b03041306ed9c859bbdfebe943cf"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fade_raw</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t num_leds, uint8_t fadeBy)</td></tr>
<tr class="separator:gac020b03041306ed9c859bbdfebe943cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad0356fc313196732e7cd4e64f506f82b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad0356fc313196732e7cd4e64f506f82b"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>nscale8</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t num_leds, uint8_t scale)</td></tr>
+<tr class="memitem:gad0356fc313196732e7cd4e64f506f82b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#gad0356fc313196732e7cd4e64f506f82b">nscale8</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t num_leds, uint8_t scale)</td></tr>
+<tr class="memdesc:gad0356fc313196732e7cd4e64f506f82b"><td class="mdescLeft">&#160;</td><td class="mdescRight">nscale8 - scale down the brightness of an array of pixels all at once. <a href="#gad0356fc313196732e7cd4e64f506f82b">More...</a><br /></td></tr>
<tr class="separator:gad0356fc313196732e7cd4e64f506f82b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae8c0a05b75034b4a2cae20ddc70ec15f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae8c0a05b75034b4a2cae20ddc70ec15f"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>fadeUsingColor</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t numLeds, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colormask)</td></tr>
+<tr class="memitem:gae8c0a05b75034b4a2cae20ddc70ec15f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#gae8c0a05b75034b4a2cae20ddc70ec15f">fadeUsingColor</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t numLeds, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colormask)</td></tr>
+<tr class="memdesc:gae8c0a05b75034b4a2cae20ddc70ec15f"><td class="mdescLeft">&#160;</td><td class="mdescRight">fadeUsingColor - scale down the brightness of an array of pixels, as though it were seen through a transparent filter with the specified color. <a href="#gae8c0a05b75034b4a2cae20ddc70ec15f">More...</a><br /></td></tr>
<tr class="separator:gae8c0a05b75034b4a2cae20ddc70ec15f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4f06b4423f71f77346aaf5dabe7dd05c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4f06b4423f71f77346aaf5dabe7dd05c"></a>
-<a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>blend</b> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;p1, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;p2, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfP2)</td></tr>
+<tr class="memitem:ga4f06b4423f71f77346aaf5dabe7dd05c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c">blend</a> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;p1, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;p2, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfP2)</td></tr>
+<tr class="memdesc:ga4f06b4423f71f77346aaf5dabe7dd05c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pixel blending. <a href="#ga4f06b4423f71f77346aaf5dabe7dd05c">More...</a><br /></td></tr>
<tr class="separator:ga4f06b4423f71f77346aaf5dabe7dd05c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0d242048cc8978be5ea70a6c33402721"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0d242048cc8978be5ea70a6c33402721"></a>
<a class="el" href="struct_c_h_s_v.html">CHSV</a>&#160;</td><td class="memItemRight" valign="bottom"><b>blend</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;p1, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;p2, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfP2, TGradientDirectionCode directionCode=SHORTEST_HUES)</td></tr>
<tr class="separator:ga0d242048cc8978be5ea70a6c33402721"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabea64e23b31132c325ea0c1fef0d3f13"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabea64e23b31132c325ea0c1fef0d3f13"></a>
-<a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>blend</b> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> *src1, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> *src2, <a class="el" href="struct_c_r_g_b.html">CRGB</a> *dest, uint16_t count, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfsrc2)</td></tr>
+<tr class="memitem:gabea64e23b31132c325ea0c1fef0d3f13"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#gabea64e23b31132c325ea0c1fef0d3f13">blend</a> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> *src1, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> *src2, <a class="el" href="struct_c_r_g_b.html">CRGB</a> *dest, uint16_t count, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfsrc2)</td></tr>
+<tr class="memdesc:gabea64e23b31132c325ea0c1fef0d3f13"><td class="mdescLeft">&#160;</td><td class="mdescRight">blend - computes a new color blended array of colors, each a given fraction of the way between corresponding elements of two source arrays of colors. <a href="#gabea64e23b31132c325ea0c1fef0d3f13">More...</a><br /></td></tr>
<tr class="separator:gabea64e23b31132c325ea0c1fef0d3f13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2b2bd0aead5cac9ed7a51f7da845bdaa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2b2bd0aead5cac9ed7a51f7da845bdaa"></a>
<a class="el" href="struct_c_h_s_v.html">CHSV</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>blend</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> *src1, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> *src2, <a class="el" href="struct_c_h_s_v.html">CHSV</a> *dest, uint16_t count, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfsrc2, TGradientDirectionCode directionCode=SHORTEST_HUES)</td></tr>
<tr class="separator:ga2b2bd0aead5cac9ed7a51f7da845bdaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9ddce40dda09fb46db19c55368baf335"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9ddce40dda09fb46db19c55368baf335"></a>
-<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>nblend</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;existing, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;overlay, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay)</td></tr>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335">nblend</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;existing, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;overlay, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay)</td></tr>
+<tr class="memdesc:ga9ddce40dda09fb46db19c55368baf335"><td class="mdescLeft">&#160;</td><td class="mdescRight">nblend - destructively modifies one color, blending in a given fraction of an overlay color <br /></td></tr>
<tr class="separator:ga9ddce40dda09fb46db19c55368baf335"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad6e2224119d7df0c7f6fffd6b603bb27"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad6e2224119d7df0c7f6fffd6b603bb27"></a>
<a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>nblend</b> (<a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;existing, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;overlay, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay, TGradientDirectionCode directionCode=SHORTEST_HUES)</td></tr>
<tr class="separator:gad6e2224119d7df0c7f6fffd6b603bb27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga63e89e8505c65e973218d1638dda3b04"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga63e89e8505c65e973218d1638dda3b04"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>nblend</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *existing, <a class="el" href="struct_c_r_g_b.html">CRGB</a> *overlay, uint16_t count, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay)</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#ga63e89e8505c65e973218d1638dda3b04">nblend</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *existing, <a class="el" href="struct_c_r_g_b.html">CRGB</a> *overlay, uint16_t count, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay)</td></tr>
+<tr class="memdesc:ga63e89e8505c65e973218d1638dda3b04"><td class="mdescLeft">&#160;</td><td class="mdescRight">nblend - destructively blends a given fraction of a new color array into an existing color array <br /></td></tr>
<tr class="separator:ga63e89e8505c65e973218d1638dda3b04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6d07fb779bbeddd59a9025cdc64594d6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6d07fb779bbeddd59a9025cdc64594d6"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>nblend</b> (<a class="el" href="struct_c_h_s_v.html">CHSV</a> *existing, <a class="el" href="struct_c_h_s_v.html">CHSV</a> *overlay, uint16_t count, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay, TGradientDirectionCode directionCode=SHORTEST_HUES)</td></tr>
<tr class="separator:ga6d07fb779bbeddd59a9025cdc64594d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaacf0416f9e0438f23f92d0df6c338ea3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaacf0416f9e0438f23f92d0df6c338ea3"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>blur1d</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t numLeds, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount)</td></tr>
+<tr class="memitem:gaacf0416f9e0438f23f92d0df6c338ea3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#gaacf0416f9e0438f23f92d0df6c338ea3">blur1d</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint16_t numLeds, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount)</td></tr>
+<tr class="memdesc:gaacf0416f9e0438f23f92d0df6c338ea3"><td class="mdescLeft">&#160;</td><td class="mdescRight">blur1d: one-dimensional blur filter. <a href="#gaacf0416f9e0438f23f92d0df6c338ea3">More...</a><br /></td></tr>
<tr class="separator:gaacf0416f9e0438f23f92d0df6c338ea3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae97f9574ca4fa1a7ab65782b2a804fba"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae97f9574ca4fa1a7ab65782b2a804fba"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>blur2d</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint8_t width, uint8_t height, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount)</td></tr>
<tr class="separator:gae97f9574ca4fa1a7ab65782b2a804fba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>blurRows</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint8_t width, uint8_t height, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount)</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b">blurRows</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint8_t width, uint8_t height, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount)</td></tr>
+<tr class="memdesc:ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b"><td class="mdescLeft">&#160;</td><td class="mdescRight">blurRows: perform a blur1d on every row of a rectangular matrix <br /></td></tr>
<tr class="separator:ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacb40363ff285a5d816a1cf3096e27c14"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacb40363ff285a5d816a1cf3096e27c14"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>blurColumns</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint8_t width, uint8_t height, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount)</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#gacb40363ff285a5d816a1cf3096e27c14">blurColumns</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, uint8_t width, uint8_t height, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount)</td></tr>
+<tr class="memdesc:gacb40363ff285a5d816a1cf3096e27c14"><td class="mdescLeft">&#160;</td><td class="mdescRight">blurColumns: perform a blur1d on each column of a rectangular matrix <br /></td></tr>
<tr class="separator:gacb40363ff285a5d816a1cf3096e27c14"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac5c6b83ec07d310385a430f9f0336530"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac5c6b83ec07d310385a430f9f0336530"></a>
-<a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>HeatColor</b> (uint8_t temperature)</td></tr>
+<tr class="memitem:gac5c6b83ec07d310385a430f9f0336530"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___colorutils.html#gac5c6b83ec07d310385a430f9f0336530">HeatColor</a> (uint8_t temperature)</td></tr>
+<tr class="memdesc:gac5c6b83ec07d310385a430f9f0336530"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> <a class="el" href="group___colorutils.html#gac5c6b83ec07d310385a430f9f0336530" title="CRGB HeatColor( uint8_t temperature) ">HeatColor( uint8_t temperature)</a> <a href="#gac5c6b83ec07d310385a430f9f0336530">More...</a><br /></td></tr>
<tr class="separator:gac5c6b83ec07d310385a430f9f0336530"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaea18108bf50282f20a0ecd4213b5ac8c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaea18108bf50282f20a0ecd4213b5ac8c"></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_palette256.html">CRGBPalette256</a> &amp;destpal256)</td></tr>
@@ -359,6 +366,248 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>napplyGamma_video</b>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>A variety of functions for working with color, palletes, and leds. </p>
<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga4f06b4423f71f77346aaf5dabe7dd05c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_c_r_g_b.html">CRGB</a> blend </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td>
+ <td class="paramname"><em>p1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td>
+ <td class="paramname"><em>p2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a>&#160;</td>
+ <td class="paramname"><em>amountOfP2</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Pixel blending. </p>
+<p>blend - computes a new color blended some fraction of the way between two other colors. </p>
+
+<p>Definition at line <a class="el" href="colorutils_8cpp_source.html#l00262">262</a> of file <a class="el" href="colorutils_8cpp_source.html">colorutils.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gabea64e23b31132c325ea0c1fef0d3f13"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_c_r_g_b.html">CRGB</a>* blend </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td>
+ <td class="paramname"><em>src1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td>
+ <td class="paramname"><em>src2</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>dest</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>count</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a>&#160;</td>
+ <td class="paramname"><em>amountOfsrc2</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>blend - computes a new color blended array of colors, each a given fraction of the way between corresponding elements of two source arrays of colors. </p>
+<p>Useful for blending palettes. </p>
+
+<p>Definition at line <a class="el" href="colorutils_8cpp_source.html#l00269">269</a> of file <a class="el" href="colorutils_8cpp_source.html">colorutils.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaacf0416f9e0438f23f92d0df6c338ea3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void blur1d </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td>
+ <td class="paramname"><em>leds</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>numLeds</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a>&#160;</td>
+ <td class="paramname"><em>blur_amount</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>blur1d: one-dimensional blur filter. </p>
+<p>Spreads light to 2 line neighbors. blur2d: two-dimensional blur filter. Spreads light to 8 XY neighbors. </p><pre class="fragment"> 0 = no spread at all
+ 64 = moderate spreading
+ 172 = maximum smooth, even spreading
+
+ 173..255 = wider spreading, but increasing flicker
+
+ Total light is NOT entirely conserved, so many repeated
+ calls to 'blur' will also result in the light fading,
+ eventually all the way to black; this is by design so that
+ it can be used to (slowly) clear the LEDs to black. </pre>
+<p>Definition at line <a class="el" href="colorutils_8cpp_source.html#l00374">374</a> of file <a class="el" href="colorutils_8cpp_source.html">colorutils.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac1e25878d16efa6112d907738f525773"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void fadeLightBy </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td>
+ <td class="paramname"><em>leds</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>num_leds</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>fadeBy</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>fadeLightBy and fade_video - reduce the brightness of an array of pixels all at once. </p>
+<p>Guaranteed to never fade all the way to black. (The two names are synonyms.) </p>
+
+<p>Definition at line <a class="el" href="colorutils_8cpp_source.html#l00183">183</a> of file <a class="el" href="colorutils_8cpp_source.html">colorutils.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga404d163d8a422cee2df2baac4151ca98"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void fadeToBlackBy </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td>
+ <td class="paramname"><em>leds</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>num_leds</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>fadeBy</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>fadeToBlackBy and fade_raw - reduce the brightness of an array of pixels all at once. </p>
+<p>These functions will eventually fade all the way to black. (The two names are synonyms.) </p>
+
+<p>Definition at line <a class="el" href="colorutils_8cpp_source.html#l00189">189</a> of file <a class="el" href="colorutils_8cpp_source.html">colorutils.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae8c0a05b75034b4a2cae20ddc70ec15f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void fadeUsingColor </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td>
+ <td class="paramname"><em>leds</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>numLeds</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td>
+ <td class="paramname"><em>colormask</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>fadeUsingColor - scale down the brightness of an array of pixels, as though it were seen through a transparent filter with the specified color. </p>
+<p>For example, if the colormask is <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB( 200, 100, 50)</a> then the pixels' red will be faded to 200/256ths, their green to 100/256ths, and their blue to 50/256ths. This particular example give a 'hot fade' look, with white fading to yellow, then red, then black. You can also use colormasks like CRGB::Blue to zero out the red and green elements, leaving blue (largely) the same. </p>
+
+<p>Definition at line <a class="el" href="colorutils_8cpp_source.html#l00211">211</a> of file <a class="el" href="colorutils_8cpp_source.html">colorutils.cpp</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="ga3144bb2bb66aeed33e20f4fdd6cc1a98"></a>
<div class="memitem">
<div class="memproto">
@@ -422,12 +671,156 @@ LONGEST_HUES: hue goes whichever way is longest
</div>
</div>
+<a class="anchor" id="ga6afaa1f712186a4b67445f69871cad88"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void fill_gradient_RGB </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td>
+ <td class="paramname"><em>leds</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>startpos</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>startcolor</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>endpos</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>endcolor</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>fill_gradient_RGB - fill a range of LEDs with a smooth RGB gradient between two specified RGB colors. </p>
+<p>Unlike HSV, there is no 'color wheel' in RGB space, and therefore there's only one 'direction' for the gradient to go, and no 'direction code' is needed. </p>
+
+<p>Definition at line <a class="el" href="colorutils_8cpp_source.html#l00064">64</a> of file <a class="el" href="colorutils_8cpp_source.html">colorutils.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac5c6b83ec07d310385a430f9f0336530"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_c_r_g_b.html">CRGB</a> HeatColor </td>
+ <td>(</td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>temperature</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p><a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> <a class="el" href="group___colorutils.html#gac5c6b83ec07d310385a430f9f0336530" title="CRGB HeatColor( uint8_t temperature) ">HeatColor( uint8_t temperature)</a> </p>
+<p>Approximates a 'black body radiation' spectrum for a given 'heat' level. This is useful for animations of 'fire'. Heat is specified as an arbitrary scale from 0 (cool) to 255 (hot). This is NOT a chromatically correct 'black body radiation' spectrum, but it's surprisingly close, and it's fast and small. </p>
+
+<p>Definition at line <a class="el" href="colorutils_8cpp_source.html#l00440">440</a> of file <a class="el" href="colorutils_8cpp_source.html">colorutils.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad0356fc313196732e7cd4e64f506f82b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void nscale8 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td>
+ <td class="paramname"><em>leds</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>num_leds</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>scale</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>nscale8 - scale down the brightness of an array of pixels all at once. </p>
+<p>This function can scale pixels all the way down to black even if 'scale' is not zero. </p>
+
+<p>Definition at line <a class="el" href="colorutils_8cpp_source.html#l00204">204</a> of file <a class="el" href="colorutils_8cpp_source.html">colorutils.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga956be37436f2b9c06c99d24263ef8e83"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void nscale8_video </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td>
+ <td class="paramname"><em>leds</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>num_leds</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>scale</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>nscale8_video - scale down the brightness of an array of pixels all at once. </p>
+<p>Guaranteed to never scale a pixel all the way down to black, unless 'scale' is zero. </p>
+
+<p>Definition at line <a class="el" href="colorutils_8cpp_source.html#l00171">171</a> of file <a class="el" href="colorutils_8cpp_source.html">colorutils.cpp</a>.</p>
+
+</div>
+</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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 688f63bd..93427483 100644
--- a/docs/3.1/group___colorutils.js
+++ b/docs/3.1/group___colorutils.js
@@ -175,9 +175,26 @@ var group___colorutils =
[ "operator[]", "class_c_r_g_b_palette256.html#aed56d2958abee33002ef25cb00e3044c", null ],
[ "entries", "class_c_r_g_b_palette256.html#a3279636490301d45a05adfcbc8a7b4da", null ]
] ],
+ [ "blend", "group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c", null ],
+ [ "blend", "group___colorutils.html#gabea64e23b31132c325ea0c1fef0d3f13", null ],
+ [ "blur1d", "group___colorutils.html#gaacf0416f9e0438f23f92d0df6c338ea3", null ],
+ [ "blurColumns", "group___colorutils.html#gacb40363ff285a5d816a1cf3096e27c14", null ],
+ [ "blurRows", "group___colorutils.html#ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b", null ],
+ [ "fadeLightBy", "group___colorutils.html#gac1e25878d16efa6112d907738f525773", null ],
+ [ "fadeToBlackBy", "group___colorutils.html#ga404d163d8a422cee2df2baac4151ca98", null ],
+ [ "fadeUsingColor", "group___colorutils.html#gae8c0a05b75034b4a2cae20ddc70ec15f", null ],
[ "fill_gradient", "group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98", null ],
+ [ "fill_gradient", "group___colorutils.html#gace693b077794f9b6aa80875fdd550a68", null ],
+ [ "fill_gradient", "group___colorutils.html#ga3a46ed6b7043382df172d7501785033c", null ],
+ [ "fill_gradient", "group___colorutils.html#ga396996c5e505e459b418330f4386f779", null ],
+ [ "fill_gradient_RGB", "group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88", null ],
[ "fill_rainbow", "group___colorutils.html#gafcc7dac88e25736ebc49a9faf2a1c2e2", null ],
[ "fill_rainbow", "group___colorutils.html#gac3052a230febda0693517ce9d12aa452", null ],
[ "fill_solid", "group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b", null ],
- [ "fill_solid", "group___colorutils.html#gad1abf13328e8dd1c483a270af77b17ed", null ]
+ [ "fill_solid", "group___colorutils.html#gad1abf13328e8dd1c483a270af77b17ed", null ],
+ [ "HeatColor", "group___colorutils.html#gac5c6b83ec07d310385a430f9f0336530", null ],
+ [ "nblend", "group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335", null ],
+ [ "nblend", "group___colorutils.html#ga63e89e8505c65e973218d1638dda3b04", null ],
+ [ "nscale8", "group___colorutils.html#gad0356fc313196732e7cd4e64f506f82b", null ],
+ [ "nscale8_video", "group___colorutils.html#ga956be37436f2b9c06c99d24263ef8e83", null ]
]; \ No newline at end of file
diff --git a/docs/3.1/group___dimming.html b/docs/3.1/group___dimming.html
index d59eacec..e74aa601 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 004b0390..e21c610a 100644
--- a/docs/3.1/group___math.html
+++ b/docs/3.1/group___math.html
@@ -121,52 +121,52 @@ $(document).ready(function(){initNavTree('group___math.html','');});
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga38e9f9a8830353f9cbfecad7c8758b1f"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a> (uint8_t i, uint8_t j)</td></tr>
-<tr class="memdesc:ga38e9f9a8830353f9cbfecad7c8758b1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">add one byte to another, saturating at 0xFF <a href="#ga38e9f9a8830353f9cbfecad7c8758b1f">More...</a><br /></td></tr>
-<tr class="separator:ga38e9f9a8830353f9cbfecad7c8758b1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadf60ccff727f52078aecdd5873b6f0bc"><td class="memItemLeft" align="right" valign="top">LIB8STATIC int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#gadf60ccff727f52078aecdd5873b6f0bc">qadd7</a> (int8_t i, int8_t j)</td></tr>
-<tr class="memdesc:gadf60ccff727f52078aecdd5873b6f0bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add one byte to another, saturating at 0x7F. <a href="#gadf60ccff727f52078aecdd5873b6f0bc">More...</a><br /></td></tr>
-<tr class="separator:gadf60ccff727f52078aecdd5873b6f0bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaaa16f47aca46653d51793b1af177587"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a> (uint8_t i, uint8_t j)</td></tr>
-<tr class="memdesc:gaaaa16f47aca46653d51793b1af177587"><td class="mdescLeft">&#160;</td><td class="mdescRight">subtract one byte from another, saturating at 0x00 <a href="#gaaaa16f47aca46653d51793b1af177587">More...</a><br /></td></tr>
-<tr class="separator:gaaaa16f47aca46653d51793b1af177587"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9f1f93145ca1955562b7f50f5db96ac1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9f1f93145ca1955562b7f50f5db96ac1"></a>
-LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#ga9f1f93145ca1955562b7f50f5db96ac1">add8</a> (uint8_t i, uint8_t j)</td></tr>
-<tr class="memdesc:ga9f1f93145ca1955562b7f50f5db96ac1"><td class="mdescLeft">&#160;</td><td class="mdescRight">add one byte to another, with one byte result <br /></td></tr>
-<tr class="separator:ga9f1f93145ca1955562b7f50f5db96ac1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0c40c15ab5af36ddabded161941f2091"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0c40c15ab5af36ddabded161941f2091"></a>
-LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#ga0c40c15ab5af36ddabded161941f2091">sub8</a> (uint8_t i, uint8_t j)</td></tr>
-<tr class="memdesc:ga0c40c15ab5af36ddabded161941f2091"><td class="mdescLeft">&#160;</td><td class="mdescRight">subtract one byte from another, 8-bit result <br /></td></tr>
-<tr class="separator:ga0c40c15ab5af36ddabded161941f2091"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<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>
+<tr class="memitem:ga07133b3085824d0fcd4f5086d286c4b5"><td class="memItemLeft" align="right" valign="top">LIB8STATIC_ALWAYS_INLINE uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#ga07133b3085824d0fcd4f5086d286c4b5">qadd8</a> (uint8_t i, uint8_t j)</td></tr>
+<tr class="memdesc:ga07133b3085824d0fcd4f5086d286c4b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">add one byte to another, saturating at 0xFF <a href="#ga07133b3085824d0fcd4f5086d286c4b5">More...</a><br /></td></tr>
+<tr class="separator:ga07133b3085824d0fcd4f5086d286c4b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga622205a211419db7dd1f582923aec68d"><td class="memItemLeft" align="right" valign="top">LIB8STATIC_ALWAYS_INLINE int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#ga622205a211419db7dd1f582923aec68d">qadd7</a> (int8_t i, int8_t j)</td></tr>
+<tr class="memdesc:ga622205a211419db7dd1f582923aec68d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add one byte to another, saturating at 0x7F. <a href="#ga622205a211419db7dd1f582923aec68d">More...</a><br /></td></tr>
+<tr class="separator:ga622205a211419db7dd1f582923aec68d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae261576a4c8155d6c0ba8615b2d2ecb3"><td class="memItemLeft" align="right" valign="top">LIB8STATIC_ALWAYS_INLINE uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3">qsub8</a> (uint8_t i, uint8_t j)</td></tr>
+<tr class="memdesc:gae261576a4c8155d6c0ba8615b2d2ecb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">subtract one byte from another, saturating at 0x00 <a href="#gae261576a4c8155d6c0ba8615b2d2ecb3">More...</a><br /></td></tr>
+<tr class="separator:gae261576a4c8155d6c0ba8615b2d2ecb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga703ea9255d0701cc154e110ae00dea04"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga703ea9255d0701cc154e110ae00dea04"></a>
+LIB8STATIC_ALWAYS_INLINE uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#ga703ea9255d0701cc154e110ae00dea04">add8</a> (uint8_t i, uint8_t j)</td></tr>
+<tr class="memdesc:ga703ea9255d0701cc154e110ae00dea04"><td class="mdescLeft">&#160;</td><td class="mdescRight">add one byte to another, with one byte result <br /></td></tr>
+<tr class="separator:ga703ea9255d0701cc154e110ae00dea04"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad2d87829a6327876eed4482aa515dfa9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad2d87829a6327876eed4482aa515dfa9"></a>
+LIB8STATIC_ALWAYS_INLINE uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#gad2d87829a6327876eed4482aa515dfa9">sub8</a> (uint8_t i, uint8_t j)</td></tr>
+<tr class="memdesc:gad2d87829a6327876eed4482aa515dfa9"><td class="mdescLeft">&#160;</td><td class="mdescRight">subtract one byte from another, 8-bit result <br /></td></tr>
+<tr class="separator:gad2d87829a6327876eed4482aa515dfa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga624651f796f4cf0755c8cbdb794e41d9"><td class="memItemLeft" align="right" valign="top">LIB8STATIC_ALWAYS_INLINE uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#ga624651f796f4cf0755c8cbdb794e41d9">avg8</a> (uint8_t i, uint8_t j)</td></tr>
+<tr class="memdesc:ga624651f796f4cf0755c8cbdb794e41d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate an integer average of two unsigned 8-bit integer values (uint8_t). <a href="#ga624651f796f4cf0755c8cbdb794e41d9">More...</a><br /></td></tr>
+<tr class="separator:ga624651f796f4cf0755c8cbdb794e41d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1f46842559931ff842c8f9a310174a3a"><td class="memItemLeft" align="right" valign="top">LIB8STATIC_ALWAYS_INLINE uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#ga1f46842559931ff842c8f9a310174a3a">avg16</a> (uint16_t i, uint16_t j)</td></tr>
+<tr class="memdesc:ga1f46842559931ff842c8f9a310174a3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate an integer average of two unsigned 16-bit integer values (uint16_t). <a href="#ga1f46842559931ff842c8f9a310174a3a">More...</a><br /></td></tr>
+<tr class="separator:ga1f46842559931ff842c8f9a310174a3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad7af6a5b49aef34ab79e850ddb7d7911"><td class="memItemLeft" align="right" valign="top">LIB8STATIC_ALWAYS_INLINE int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#gad7af6a5b49aef34ab79e850ddb7d7911">avg7</a> (int8_t i, int8_t j)</td></tr>
+<tr class="memdesc:gad7af6a5b49aef34ab79e850ddb7d7911"><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="#gad7af6a5b49aef34ab79e850ddb7d7911">More...</a><br /></td></tr>
+<tr class="separator:gad7af6a5b49aef34ab79e850ddb7d7911"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2ad60cb8a09e6aab6d63f1a0930bee09"><td class="memItemLeft" align="right" valign="top">LIB8STATIC_ALWAYS_INLINE int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#ga2ad60cb8a09e6aab6d63f1a0930bee09">avg15</a> (int16_t i, int16_t j)</td></tr>
+<tr class="memdesc:ga2ad60cb8a09e6aab6d63f1a0930bee09"><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="#ga2ad60cb8a09e6aab6d63f1a0930bee09">More...</a><br /></td></tr>
+<tr class="separator:ga2ad60cb8a09e6aab6d63f1a0930bee09"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa3beb6c31141a13c1a047b926d065ca2"><td class="memItemLeft" align="right" valign="top">LIB8STATIC_ALWAYS_INLINE uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#gaa3beb6c31141a13c1a047b926d065ca2">mod8</a> (uint8_t a, uint8_t m)</td></tr>
+<tr class="memdesc:gaa3beb6c31141a13c1a047b926d065ca2"><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="#gaa3beb6c31141a13c1a047b926d065ca2">More...</a><br /></td></tr>
+<tr class="separator:gaa3beb6c31141a13c1a047b926d065ca2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2bcd51c47538dbc933999382e272a7a7"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#ga2bcd51c47538dbc933999382e272a7a7">addmod8</a> (uint8_t a, uint8_t b, uint8_t m)</td></tr>
<tr class="memdesc:ga2bcd51c47538dbc933999382e272a7a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add two numbers, and calculate the modulo of the sum and a third number, M. <a href="#ga2bcd51c47538dbc933999382e272a7a7">More...</a><br /></td></tr>
<tr class="separator:ga2bcd51c47538dbc933999382e272a7a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga10181a03cf8b8428fc524aa78e7fbf7f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga10181a03cf8b8428fc524aa78e7fbf7f"></a>
-LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#ga10181a03cf8b8428fc524aa78e7fbf7f">mul8</a> (uint8_t i, uint8_t j)</td></tr>
-<tr class="memdesc:ga10181a03cf8b8428fc524aa78e7fbf7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">8x8 bit multiplication, with 8 bit result <br /></td></tr>
-<tr class="separator:ga10181a03cf8b8428fc524aa78e7fbf7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9d113e85065df7c9006704ea6b6dcda4"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a> (uint8_t i, uint8_t j)</td></tr>
-<tr class="memdesc:ga9d113e85065df7c9006704ea6b6dcda4"><td class="mdescLeft">&#160;</td><td class="mdescRight">saturating 8x8 bit multiplication, with 8 bit result <a href="#ga9d113e85065df7c9006704ea6b6dcda4">More...</a><br /></td></tr>
-<tr class="separator:ga9d113e85065df7c9006704ea6b6dcda4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4bf8996c4a130e96521495d4a1395a01"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4bf8996c4a130e96521495d4a1395a01"></a>
-LIB8STATIC int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#ga4bf8996c4a130e96521495d4a1395a01">abs8</a> (int8_t i)</td></tr>
-<tr class="memdesc:ga4bf8996c4a130e96521495d4a1395a01"><td class="mdescLeft">&#160;</td><td class="mdescRight">take abs() of a signed 8-bit uint8_t <br /></td></tr>
-<tr class="separator:ga4bf8996c4a130e96521495d4a1395a01"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf170916b55c493ea038c1d96b338e059"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf170916b55c493ea038c1d96b338e059"></a>
+LIB8STATIC_ALWAYS_INLINE uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#gaf170916b55c493ea038c1d96b338e059">mul8</a> (uint8_t i, uint8_t j)</td></tr>
+<tr class="memdesc:gaf170916b55c493ea038c1d96b338e059"><td class="mdescLeft">&#160;</td><td class="mdescRight">8x8 bit multiplication, with 8 bit result <br /></td></tr>
+<tr class="separator:gaf170916b55c493ea038c1d96b338e059"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga17d0d692de142f4d4379b8cc899eaefb"><td class="memItemLeft" align="right" valign="top">LIB8STATIC_ALWAYS_INLINE uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#ga17d0d692de142f4d4379b8cc899eaefb">qmul8</a> (uint8_t i, uint8_t j)</td></tr>
+<tr class="memdesc:ga17d0d692de142f4d4379b8cc899eaefb"><td class="mdescLeft">&#160;</td><td class="mdescRight">saturating 8x8 bit multiplication, with 8 bit result <a href="#ga17d0d692de142f4d4379b8cc899eaefb">More...</a><br /></td></tr>
+<tr class="separator:ga17d0d692de142f4d4379b8cc899eaefb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga162169ac0c2d1f3d01eaff8f32e1b415"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga162169ac0c2d1f3d01eaff8f32e1b415"></a>
+LIB8STATIC_ALWAYS_INLINE int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#ga162169ac0c2d1f3d01eaff8f32e1b415">abs8</a> (int8_t i)</td></tr>
+<tr class="memdesc:ga162169ac0c2d1f3d01eaff8f32e1b415"><td class="mdescLeft">&#160;</td><td class="mdescRight">take abs() of a signed 8-bit uint8_t <br /></td></tr>
+<tr class="separator:ga162169ac0c2d1f3d01eaff8f32e1b415"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga66ecef97faa5f9b92c49766651c5afe9"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#ga66ecef97faa5f9b92c49766651c5afe9">sqrt16</a> (uint16_t x)</td></tr>
<tr class="memdesc:ga66ecef97faa5f9b92c49766651c5afe9"><td class="mdescLeft">&#160;</td><td class="mdescRight">square root for 16-bit integers About three times faster and five times smaller than Arduino's general sqrt on AVR. <a href="#ga66ecef97faa5f9b92c49766651c5afe9">More...</a><br /></td></tr>
<tr class="separator:ga66ecef97faa5f9b92c49766651c5afe9"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -206,18 +206,18 @@ LIB8STATIC int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="e
</div><div class="memdoc">
<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>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); LIB8STATIC_ALWAYS_INLINESee 'mod8' for notes on performance. </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>
+<a class="anchor" id="ga2ad60cb8a09e6aab6d63f1a0930bee09"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">LIB8STATIC int16_t avg15 </td>
+ <td class="memname">LIB8STATIC_ALWAYS_INLINE int16_t avg15 </td>
<td>(</td>
<td class="paramtype">int16_t&#160;</td>
<td class="paramname"><em>i</em>, </td>
@@ -243,12 +243,12 @@ LIB8STATIC int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="e
</div>
</div>
-<a class="anchor" id="gac09b1bbea319b879bded54d129eb5358"></a>
+<a class="anchor" id="ga1f46842559931ff842c8f9a310174a3a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">LIB8STATIC uint16_t avg16 </td>
+ <td class="memname">LIB8STATIC_ALWAYS_INLINE uint16_t avg16 </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>i</em>, </td>
@@ -274,12 +274,12 @@ LIB8STATIC int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="e
</div>
</div>
-<a class="anchor" id="ga30558a835c484b418165909118e702b1"></a>
+<a class="anchor" id="gad7af6a5b49aef34ab79e850ddb7d7911"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">LIB8STATIC int8_t avg7 </td>
+ <td class="memname">LIB8STATIC_ALWAYS_INLINE int8_t avg7 </td>
<td>(</td>
<td class="paramtype">int8_t&#160;</td>
<td class="paramname"><em>i</em>, </td>
@@ -305,12 +305,12 @@ LIB8STATIC int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="e
</div>
</div>
-<a class="anchor" id="ga6bfedf0473d4c3705e8feeb6a25b9ea5"></a>
+<a class="anchor" id="ga624651f796f4cf0755c8cbdb794e41d9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">LIB8STATIC uint8_t avg8 </td>
+ <td class="memname">LIB8STATIC_ALWAYS_INLINE uint8_t avg8 </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>i</em>, </td>
@@ -336,12 +336,12 @@ LIB8STATIC int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="e
</div>
</div>
-<a class="anchor" id="gaa5e80daec10cc13bf1eca8b125ee0e88"></a>
+<a class="anchor" id="gaa3beb6c31141a13c1a047b926d065ca2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">LIB8STATIC uint8_t mod8 </td>
+ <td class="memname">LIB8STATIC_ALWAYS_INLINE uint8_t mod8 </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>a</em>, </td>
@@ -367,12 +367,12 @@ LIB8STATIC int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="e
</div>
</div>
-<a class="anchor" id="gadf60ccff727f52078aecdd5873b6f0bc"></a>
+<a class="anchor" id="ga622205a211419db7dd1f582923aec68d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">LIB8STATIC int8_t qadd7 </td>
+ <td class="memname">LIB8STATIC_ALWAYS_INLINE int8_t qadd7 </td>
<td>(</td>
<td class="paramtype">int8_t&#160;</td>
<td class="paramname"><em>i</em>, </td>
@@ -405,12 +405,12 @@ LIB8STATIC int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="e
</div>
</div>
-<a class="anchor" id="ga38e9f9a8830353f9cbfecad7c8758b1f"></a>
+<a class="anchor" id="ga07133b3085824d0fcd4f5086d286c4b5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">LIB8STATIC uint8_t qadd8 </td>
+ <td class="memname">LIB8STATIC_ALWAYS_INLINE uint8_t qadd8 </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>i</em>, </td>
@@ -443,12 +443,12 @@ LIB8STATIC int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="e
</div>
</div>
-<a class="anchor" id="ga9d113e85065df7c9006704ea6b6dcda4"></a>
+<a class="anchor" id="ga17d0d692de142f4d4379b8cc899eaefb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">LIB8STATIC uint8_t qmul8 </td>
+ <td class="memname">LIB8STATIC_ALWAYS_INLINE uint8_t qmul8 </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>i</em>, </td>
@@ -474,12 +474,12 @@ LIB8STATIC int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="e
</div>
</div>
-<a class="anchor" id="gaaaa16f47aca46653d51793b1af177587"></a>
+<a class="anchor" id="gae261576a4c8155d6c0ba8615b2d2ecb3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">LIB8STATIC uint8_t qsub8 </td>
+ <td class="memname">LIB8STATIC_ALWAYS_INLINE uint8_t qsub8 </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>i</em>, </td>
@@ -530,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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 64f685a0..b0c1b970 100644
--- a/docs/3.1/group___math.js
+++ b/docs/3.1/group___math.js
@@ -1,18 +1,18 @@
var group___math =
[
- [ "abs8", "group___math.html#ga4bf8996c4a130e96521495d4a1395a01", null ],
- [ "add8", "group___math.html#ga9f1f93145ca1955562b7f50f5db96ac1", null ],
+ [ "abs8", "group___math.html#ga162169ac0c2d1f3d01eaff8f32e1b415", null ],
+ [ "add8", "group___math.html#ga703ea9255d0701cc154e110ae00dea04", 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 ],
- [ "mul8", "group___math.html#ga10181a03cf8b8428fc524aa78e7fbf7f", null ],
- [ "qadd7", "group___math.html#gadf60ccff727f52078aecdd5873b6f0bc", null ],
- [ "qadd8", "group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f", null ],
- [ "qmul8", "group___math.html#ga9d113e85065df7c9006704ea6b6dcda4", null ],
- [ "qsub8", "group___math.html#gaaaa16f47aca46653d51793b1af177587", null ],
+ [ "avg15", "group___math.html#ga2ad60cb8a09e6aab6d63f1a0930bee09", null ],
+ [ "avg16", "group___math.html#ga1f46842559931ff842c8f9a310174a3a", null ],
+ [ "avg7", "group___math.html#gad7af6a5b49aef34ab79e850ddb7d7911", null ],
+ [ "avg8", "group___math.html#ga624651f796f4cf0755c8cbdb794e41d9", null ],
+ [ "mod8", "group___math.html#gaa3beb6c31141a13c1a047b926d065ca2", null ],
+ [ "mul8", "group___math.html#gaf170916b55c493ea038c1d96b338e059", null ],
+ [ "qadd7", "group___math.html#ga622205a211419db7dd1f582923aec68d", null ],
+ [ "qadd8", "group___math.html#ga07133b3085824d0fcd4f5086d286c4b5", null ],
+ [ "qmul8", "group___math.html#ga17d0d692de142f4d4379b8cc899eaefb", null ],
+ [ "qsub8", "group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3", null ],
[ "sqrt16", "group___math.html#ga66ecef97faa5f9b92c49766651c5afe9", null ],
- [ "sub8", "group___math.html#ga0c40c15ab5af36ddabded161941f2091", null ]
+ [ "sub8", "group___math.html#gad2d87829a6327876eed4482aa515dfa9", null ]
]; \ No newline at end of file
diff --git a/docs/3.1/group___noise.html b/docs/3.1/group___noise.html
index a4fa951d..f2de4df2 100644
--- a/docs/3.1/group___noise.html
+++ b/docs/3.1/group___noise.html
@@ -212,10 +212,10 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_noise8</b> (<a c
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>
+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 <a class="el" href="group___colorutils.html#gabea64e23b31132c325ea0c1fef0d3f13">blend</a>)</td></tr>
<tr class="separator:ga6fcc17e60eac4b9dbb620f7e354177f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga714a0f305e385a60d81a40d1f98b53fc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga714a0f305e385a60d81a40d1f98b53fc"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_2dnoise16</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, int width, int height, bool serpentine, uint8_t octaves, uint32_t x, int xscale, uint32_t y, int yscale, uint32_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, uint16_t hue_shift=0)</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_2dnoise16</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, int width, int height, bool serpentine, uint8_t octaves, uint32_t x, int xscale, uint32_t y, int yscale, uint32_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 <a class="el" href="group___colorutils.html#gabea64e23b31132c325ea0c1fef0d3f13">blend</a>, uint16_t hue_shift=0)</td></tr>
<tr class="separator:ga714a0f305e385a60d81a40d1f98b53fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 8cb40228..5a1767e1 100644
--- a/docs/3.1/group___pixeltypes.html
+++ b/docs/3.1/group___pixeltypes.html
@@ -364,7 +364,7 @@ Functions</h2></td></tr>
<p>Forward declaration of hsv2rgb_rainbow here, to avoid circular dependencies. </p>
-<p>Definition at line <a class="el" href="hsv2rgb_8cpp_source.html#l00277">277</a> of file <a class="el" href="hsv2rgb_8cpp_source.html">hsv2rgb.cpp</a>.</p>
+<p>Definition at line <a class="el" href="hsv2rgb_8cpp_source.html#l00278">278</a> of file <a class="el" href="hsv2rgb_8cpp_source.html">hsv2rgb.cpp</a>.</p>
</div>
</div>
@@ -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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 bff5486f..a45b42fe 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 decd050c..e197db30 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 e5006729..32e42120 100644
--- a/docs/3.1/group___scaling.html
+++ b/docs/3.1/group___scaling.html
@@ -121,29 +121,29 @@ $(document).ready(function(){initNavTree('group___scaling.html','');});
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga6c160f8c36ce9b3c5eda68e4992010af"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6c160f8c36ce9b3c5eda68e4992010af"></a>
-LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a> (uint8_t i, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</td></tr>
-<tr class="memdesc:ga6c160f8c36ce9b3c5eda68e4992010af"><td class="mdescLeft">&#160;</td><td class="mdescRight">scale one byte by a second one, which is treated as the numerator of a fraction whose denominator is 256 In other words, it computes i * (scale / 256) 4 clocks AVR with MUL, 2 clocks ARM <br /></td></tr>
-<tr class="separator:ga6c160f8c36ce9b3c5eda68e4992010af"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga333095ffa436c94d3e77ee9dc39da1c1"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___scaling.html#ga333095ffa436c94d3e77ee9dc39da1c1">scale8_video</a> (uint8_t i, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</td></tr>
-<tr class="memdesc:ga333095ffa436c94d3e77ee9dc39da1c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">The "video" version of scale8 guarantees that the output will be only be zero if one or both of the inputs are zero. <a href="#ga333095ffa436c94d3e77ee9dc39da1c1">More...</a><br /></td></tr>
-<tr class="separator:ga333095ffa436c94d3e77ee9dc39da1c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga39579fcf09743f15545fe0b831ca313c"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a> (uint8_t i, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</td></tr>
-<tr class="memdesc:ga39579fcf09743f15545fe0b831ca313c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This version of scale8 does not clean up the R1 register on AVR If you are doing several 'scale8's in a row, use this, and then explicitly call cleanup_R1. <a href="#ga39579fcf09743f15545fe0b831ca313c">More...</a><br /></td></tr>
-<tr class="separator:ga39579fcf09743f15545fe0b831ca313c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5f6dde3d9398f4b389c96e759a3f7b80"><td class="memItemLeft" align="right" valign="top">LIB8STATIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___scaling.html#ga5f6dde3d9398f4b389c96e759a3f7b80">nscale8_LEAVING_R1_DIRTY</a> (uint8_t &amp;i, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</td></tr>
-<tr class="memdesc:ga5f6dde3d9398f4b389c96e759a3f7b80"><td class="mdescLeft">&#160;</td><td class="mdescRight">In place modifying version of scale8, also this version of nscale8 does not clean up the R1 register on AVR If you are doing several 'scale8's in a row, use this, and then explicitly call cleanup_R1. <a href="#ga5f6dde3d9398f4b389c96e759a3f7b80">More...</a><br /></td></tr>
-<tr class="separator:ga5f6dde3d9398f4b389c96e759a3f7b80"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab341cef8d46232269bb70092fed9eb75"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___scaling.html#gab341cef8d46232269bb70092fed9eb75">scale8_video_LEAVING_R1_DIRTY</a> (uint8_t i, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</td></tr>
-<tr class="memdesc:gab341cef8d46232269bb70092fed9eb75"><td class="mdescLeft">&#160;</td><td class="mdescRight">This version of scale8_video does not clean up the R1 register on AVR If you are doing several 'scale8_video's in a row, use this, and then explicitly call cleanup_R1. <a href="#gab341cef8d46232269bb70092fed9eb75">More...</a><br /></td></tr>
-<tr class="separator:gab341cef8d46232269bb70092fed9eb75"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2a580fcaa010558218faae95d1936635"><td class="memItemLeft" align="right" valign="top">LIB8STATIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___scaling.html#ga2a580fcaa010558218faae95d1936635">nscale8_video_LEAVING_R1_DIRTY</a> (uint8_t &amp;i, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</td></tr>
-<tr class="memdesc:ga2a580fcaa010558218faae95d1936635"><td class="mdescLeft">&#160;</td><td class="mdescRight">In place modifying version of scale8_video, also this version of nscale8_video does not clean up the R1 register on AVR If you are doing several 'scale8_video's in a row, use this, and then explicitly call cleanup_R1. <a href="#ga2a580fcaa010558218faae95d1936635">More...</a><br /></td></tr>
-<tr class="separator:ga2a580fcaa010558218faae95d1936635"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga572d0b441676c9d8ceb071fe8284b7e9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga572d0b441676c9d8ceb071fe8284b7e9"></a>
-LIB8STATIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a> ()</td></tr>
-<tr class="memdesc:ga572d0b441676c9d8ceb071fe8284b7e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clean up the r1 register after a series of *LEAVING_R1_DIRTY calls. <br /></td></tr>
-<tr class="separator:ga572d0b441676c9d8ceb071fe8284b7e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad7535ccda9c92470c4e6ee0265585555"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad7535ccda9c92470c4e6ee0265585555"></a>
+LIB8STATIC_ALWAYS_INLINE uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a> (uint8_t i, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</td></tr>
+<tr class="memdesc:gad7535ccda9c92470c4e6ee0265585555"><td class="mdescLeft">&#160;</td><td class="mdescRight">scale one byte by a second one, which is treated as the numerator of a fraction whose denominator is 256 In other words, it computes i * (scale / 256) 4 clocks AVR with MUL, 2 clocks ARM <br /></td></tr>
+<tr class="separator:gad7535ccda9c92470c4e6ee0265585555"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga628b417ea1507e3447cdf5f308d9b6d5"><td class="memItemLeft" align="right" valign="top">LIB8STATIC_ALWAYS_INLINE uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___scaling.html#ga628b417ea1507e3447cdf5f308d9b6d5">scale8_video</a> (uint8_t i, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</td></tr>
+<tr class="memdesc:ga628b417ea1507e3447cdf5f308d9b6d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">The "video" version of scale8 guarantees that the output will be only be zero if one or both of the inputs are zero. <a href="#ga628b417ea1507e3447cdf5f308d9b6d5">More...</a><br /></td></tr>
+<tr class="separator:ga628b417ea1507e3447cdf5f308d9b6d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7386235cada3aca429b189681d2ec56d"><td class="memItemLeft" align="right" valign="top">LIB8STATIC_ALWAYS_INLINE uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a> (uint8_t i, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</td></tr>
+<tr class="memdesc:ga7386235cada3aca429b189681d2ec56d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This version of scale8 does not clean up the R1 register on AVR If you are doing several 'scale8's in a row, use this, and then explicitly call cleanup_R1. <a href="#ga7386235cada3aca429b189681d2ec56d">More...</a><br /></td></tr>
+<tr class="separator:ga7386235cada3aca429b189681d2ec56d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga025b1e8d81032d15fe1ab500f804f3f2"><td class="memItemLeft" align="right" valign="top">LIB8STATIC_ALWAYS_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___scaling.html#ga025b1e8d81032d15fe1ab500f804f3f2">nscale8_LEAVING_R1_DIRTY</a> (uint8_t &amp;i, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</td></tr>
+<tr class="memdesc:ga025b1e8d81032d15fe1ab500f804f3f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">In place modifying version of scale8, also this version of nscale8 does not clean up the R1 register on AVR If you are doing several 'scale8's in a row, use this, and then explicitly call cleanup_R1. <a href="#ga025b1e8d81032d15fe1ab500f804f3f2">More...</a><br /></td></tr>
+<tr class="separator:ga025b1e8d81032d15fe1ab500f804f3f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf8e0821f34434cd6bfed4a16a895da23"><td class="memItemLeft" align="right" valign="top">LIB8STATIC_ALWAYS_INLINE uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___scaling.html#gaf8e0821f34434cd6bfed4a16a895da23">scale8_video_LEAVING_R1_DIRTY</a> (uint8_t i, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</td></tr>
+<tr class="memdesc:gaf8e0821f34434cd6bfed4a16a895da23"><td class="mdescLeft">&#160;</td><td class="mdescRight">This version of scale8_video does not clean up the R1 register on AVR If you are doing several 'scale8_video's in a row, use this, and then explicitly call cleanup_R1. <a href="#gaf8e0821f34434cd6bfed4a16a895da23">More...</a><br /></td></tr>
+<tr class="separator:gaf8e0821f34434cd6bfed4a16a895da23"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadfd26d9b154f5ec79dbffe612dafd146"><td class="memItemLeft" align="right" valign="top">LIB8STATIC_ALWAYS_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___scaling.html#gadfd26d9b154f5ec79dbffe612dafd146">nscale8_video_LEAVING_R1_DIRTY</a> (uint8_t &amp;i, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</td></tr>
+<tr class="memdesc:gadfd26d9b154f5ec79dbffe612dafd146"><td class="mdescLeft">&#160;</td><td class="mdescRight">In place modifying version of scale8_video, also this version of nscale8_video does not clean up the R1 register on AVR If you are doing several 'scale8_video's in a row, use this, and then explicitly call cleanup_R1. <a href="#gadfd26d9b154f5ec79dbffe612dafd146">More...</a><br /></td></tr>
+<tr class="separator:gadfd26d9b154f5ec79dbffe612dafd146"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3fade00fb4cf5b937b973128198a7a79"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3fade00fb4cf5b937b973128198a7a79"></a>
+LIB8STATIC_ALWAYS_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a> ()</td></tr>
+<tr class="memdesc:ga3fade00fb4cf5b937b973128198a7a79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clean up the r1 register after a series of *LEAVING_R1_DIRTY calls. <br /></td></tr>
+<tr class="separator:ga3fade00fb4cf5b937b973128198a7a79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga39bf87e5526120889086cab19ac749b1"><td class="memItemLeft" align="right" valign="top">LIB8STATIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___scaling.html#ga39bf87e5526120889086cab19ac749b1">nscale8x3</a> (uint8_t &amp;r, uint8_t &amp;g, uint8_t &amp;b, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</td></tr>
<tr class="memdesc:ga39bf87e5526120889086cab19ac749b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">scale three one byte values by a fourth one, which is treated as the numerator of a fraction whose demominator is 256 In other words, it computes r,g,b * (scale / 256) <a href="#ga39bf87e5526120889086cab19ac749b1">More...</a><br /></td></tr>
<tr class="separator:ga39bf87e5526120889086cab19ac749b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -156,9 +156,9 @@ LIB8STATIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el"
<tr class="memitem:ga4204edd4a3f8aac7124a10f1f5cfccfe"><td class="memItemLeft" align="right" valign="top">LIB8STATIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___scaling.html#ga4204edd4a3f8aac7124a10f1f5cfccfe">nscale8x2_video</a> (uint8_t &amp;i, uint8_t &amp;j, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</td></tr>
<tr class="memdesc:ga4204edd4a3f8aac7124a10f1f5cfccfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">scale two one byte values by a third one, which is treated as the numerator of a fraction whose demominator is 256 In other words, it computes i,j * (scale / 256), ensuring that non-zero values passed in remain non zero, no matter how low the scale argument. <a href="#ga4204edd4a3f8aac7124a10f1f5cfccfe">More...</a><br /></td></tr>
<tr class="separator:ga4204edd4a3f8aac7124a10f1f5cfccfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf34fde0746c9c2e5ed44f9c437a2267e"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e">scale16by8</a> (uint16_t i, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</td></tr>
-<tr class="memdesc:gaf34fde0746c9c2e5ed44f9c437a2267e"><td class="mdescLeft">&#160;</td><td class="mdescRight">scale a 16-bit unsigned value by an 8-bit value, considered as numerator of a fraction whose denominator is 256. <a href="#gaf34fde0746c9c2e5ed44f9c437a2267e">More...</a><br /></td></tr>
-<tr class="separator:gaf34fde0746c9c2e5ed44f9c437a2267e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa51d5b048c2a4a20a00bddcdc257daaf"><td class="memItemLeft" align="right" valign="top">LIB8STATIC_ALWAYS_INLINE uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___scaling.html#gaa51d5b048c2a4a20a00bddcdc257daaf">scale16by8</a> (uint16_t i, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</td></tr>
+<tr class="memdesc:gaa51d5b048c2a4a20a00bddcdc257daaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">scale a 16-bit unsigned value by an 8-bit value, considered as numerator of a fraction whose denominator is 256. <a href="#gaa51d5b048c2a4a20a00bddcdc257daaf">More...</a><br /></td></tr>
+<tr class="separator:gaa51d5b048c2a4a20a00bddcdc257daaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1ff8ac00ad78e22acc7bb7445bfdb145"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a> (uint16_t i, <a class="el" href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a> scale)</td></tr>
<tr class="memdesc:ga1ff8ac00ad78e22acc7bb7445bfdb145"><td class="mdescLeft">&#160;</td><td class="mdescRight">scale a 16-bit unsigned value by a 16-bit value, considered as numerator of a fraction whose denominator is 65536. <a href="#ga1ff8ac00ad78e22acc7bb7445bfdb145">More...</a><br /></td></tr>
<tr class="separator:ga1ff8ac00ad78e22acc7bb7445bfdb145"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -167,12 +167,12 @@ LIB8STATIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el"
<p>Fast, efficient 8-bit scaling functions specifically designed for high-performance LED programming. </p>
<p>Because of the AVR(Arduino) and ARM assembly language implementations provided, using these functions often results in smaller and faster code than the equivalent program using plain "C" arithmetic and logic. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga5f6dde3d9398f4b389c96e759a3f7b80"></a>
+<a class="anchor" id="ga025b1e8d81032d15fe1ab500f804f3f2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">LIB8STATIC void nscale8_LEAVING_R1_DIRTY </td>
+ <td class="memname">LIB8STATIC_ALWAYS_INLINE void nscale8_LEAVING_R1_DIRTY </td>
<td>(</td>
<td class="paramtype">uint8_t &amp;&#160;</td>
<td class="paramname"><em>i</em>, </td>
@@ -193,16 +193,16 @@ LIB8STATIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el"
<p>In place modifying version of scale8, also this version of nscale8 does not clean up the R1 register on AVR If you are doing several 'scale8's in a row, use this, and then explicitly call cleanup_R1. </p>
-<p>Definition at line <a class="el" href="scale8_8h_source.html#l00150">150</a> of file <a class="el" href="scale8_8h_source.html">scale8.h</a>.</p>
+<p>Definition at line <a class="el" href="scale8_8h_source.html#l00190">190</a> of file <a class="el" href="scale8_8h_source.html">scale8.h</a>.</p>
</div>
</div>
-<a class="anchor" id="ga2a580fcaa010558218faae95d1936635"></a>
+<a class="anchor" id="gadfd26d9b154f5ec79dbffe612dafd146"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">LIB8STATIC void nscale8_video_LEAVING_R1_DIRTY </td>
+ <td class="memname">LIB8STATIC_ALWAYS_INLINE void nscale8_video_LEAVING_R1_DIRTY </td>
<td>(</td>
<td class="paramtype">uint8_t &amp;&#160;</td>
<td class="paramname"><em>i</em>, </td>
@@ -223,7 +223,7 @@ LIB8STATIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el"
<p>In place modifying version of scale8_video, also this version of nscale8_video does not clean up the R1 register on AVR If you are doing several 'scale8_video's in a row, use this, and then explicitly call cleanup_R1. </p>
-<p>Definition at line <a class="el" href="scale8_8h_source.html#l00222">222</a> of file <a class="el" href="scale8_8h_source.html">scale8.h</a>.</p>
+<p>Definition at line <a class="el" href="scale8_8h_source.html#l00277">277</a> of file <a class="el" href="scale8_8h_source.html">scale8.h</a>.</p>
</div>
</div>
@@ -260,7 +260,7 @@ LIB8STATIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el"
<p>scale two one byte values by a third one, which is treated as the numerator of a fraction whose demominator is 256 In other words, it computes i,j * (scale / 256) </p>
<p>THIS FUNCTION ALWAYS MODIFIES ITS ARGUMENTS IN PLACE </p>
-<p>Definition at line <a class="el" href="scale8_8h_source.html#l00305">305</a> of file <a class="el" href="scale8_8h_source.html">scale8.h</a>.</p>
+<p>Definition at line <a class="el" href="scale8_8h_source.html#l00367">367</a> of file <a class="el" href="scale8_8h_source.html">scale8.h</a>.</p>
</div>
</div>
@@ -297,7 +297,7 @@ LIB8STATIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el"
<p>scale two one byte values by a third one, which is treated as the numerator of a fraction whose demominator is 256 In other words, it computes i,j * (scale / 256), ensuring that non-zero values passed in remain non zero, no matter how low the scale argument. </p>
<p>THIS FUNCTION ALWAYS MODIFIES ITS ARGUMENTS IN PLACE </p>
-<p>Definition at line <a class="el" href="scale8_8h_source.html#l00328">328</a> of file <a class="el" href="scale8_8h_source.html">scale8.h</a>.</p>
+<p>Definition at line <a class="el" href="scale8_8h_source.html#l00396">396</a> of file <a class="el" href="scale8_8h_source.html">scale8.h</a>.</p>
</div>
</div>
@@ -340,7 +340,7 @@ LIB8STATIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el"
<p>scale three one byte values by a fourth one, which is treated as the numerator of a fraction whose demominator is 256 In other words, it computes r,g,b * (scale / 256) </p>
<p>THIS FUNCTION ALWAYS MODIFIES ITS ARGUMENTS IN PLACE </p>
-<p>Definition at line <a class="el" href="scale8_8h_source.html#l00259">259</a> of file <a class="el" href="scale8_8h_source.html">scale8.h</a>.</p>
+<p>Definition at line <a class="el" href="scale8_8h_source.html#l00314">314</a> of file <a class="el" href="scale8_8h_source.html">scale8.h</a>.</p>
</div>
</div>
@@ -383,7 +383,7 @@ LIB8STATIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el"
<p>scale three one byte values by a fourth one, which is treated as the numerator of a fraction whose demominator is 256 In other words, it computes r,g,b * (scale / 256), ensuring that non-zero values passed in remain non zero, no matter how low the scale argument. </p>
<p>THIS FUNCTION ALWAYS MODIFIES ITS ARGUMENTS IN PLACE </p>
-<p>Definition at line <a class="el" href="scale8_8h_source.html#l00282">282</a> of file <a class="el" href="scale8_8h_source.html">scale8.h</a>.</p>
+<p>Definition at line <a class="el" href="scale8_8h_source.html#l00344">344</a> of file <a class="el" href="scale8_8h_source.html">scale8.h</a>.</p>
</div>
</div>
@@ -414,16 +414,16 @@ LIB8STATIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el"
<p>scale a 16-bit unsigned value by a 16-bit value, considered as numerator of a fraction whose denominator is 65536. </p>
<p>In other words, it computes i * (scale / 65536) </p>
-<p>Definition at line <a class="el" href="scale8_8h_source.html#l00384">384</a> of file <a class="el" href="scale8_8h_source.html">scale8.h</a>.</p>
+<p>Definition at line <a class="el" href="scale8_8h_source.html#l00456">456</a> of file <a class="el" href="scale8_8h_source.html">scale8.h</a>.</p>
</div>
</div>
-<a class="anchor" id="gaf34fde0746c9c2e5ed44f9c437a2267e"></a>
+<a class="anchor" id="gaa51d5b048c2a4a20a00bddcdc257daaf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">LIB8STATIC uint16_t scale16by8 </td>
+ <td class="memname">LIB8STATIC_ALWAYS_INLINE uint16_t scale16by8 </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>i</em>, </td>
@@ -445,16 +445,16 @@ LIB8STATIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el"
<p>scale a 16-bit unsigned value by an 8-bit value, considered as numerator of a fraction whose denominator is 256. </p>
<p>In other words, it computes i * (scale / 256) </p>
-<p>Definition at line <a class="el" href="scale8_8h_source.html#l00348">348</a> of file <a class="el" href="scale8_8h_source.html">scale8.h</a>.</p>
+<p>Definition at line <a class="el" href="scale8_8h_source.html#l00416">416</a> of file <a class="el" href="scale8_8h_source.html">scale8.h</a>.</p>
</div>
</div>
-<a class="anchor" id="ga39579fcf09743f15545fe0b831ca313c"></a>
+<a class="anchor" id="ga7386235cada3aca429b189681d2ec56d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">LIB8STATIC uint8_t scale8_LEAVING_R1_DIRTY </td>
+ <td class="memname">LIB8STATIC_ALWAYS_INLINE uint8_t scale8_LEAVING_R1_DIRTY </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>i</em>, </td>
@@ -475,16 +475,16 @@ LIB8STATIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el"
<p>This version of scale8 does not clean up the R1 register on AVR If you are doing several 'scale8's in a row, use this, and then explicitly call cleanup_R1. </p>
-<p>Definition at line <a class="el" href="scale8_8h_source.html#l00121">121</a> of file <a class="el" href="scale8_8h_source.html">scale8.h</a>.</p>
+<p>Definition at line <a class="el" href="scale8_8h_source.html#l00146">146</a> of file <a class="el" href="scale8_8h_source.html">scale8.h</a>.</p>
</div>
</div>
-<a class="anchor" id="ga333095ffa436c94d3e77ee9dc39da1c1"></a>
+<a class="anchor" id="ga628b417ea1507e3447cdf5f308d9b6d5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">LIB8STATIC uint8_t scale8_video </td>
+ <td class="memname">LIB8STATIC_ALWAYS_INLINE uint8_t scale8_video </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>i</em>, </td>
@@ -506,16 +506,16 @@ LIB8STATIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el"
<p>The "video" version of scale8 guarantees that the output will be only be zero if one or both of the inputs are zero. </p>
<p>If both inputs are non-zero, the output is guaranteed to be non-zero. This makes for better 'video'/LED dimming, at the cost of several additional cycles. </p>
-<p>Definition at line <a class="el" href="scale8_8h_source.html#l00073">73</a> of file <a class="el" href="scale8_8h_source.html">scale8.h</a>.</p>
+<p>Definition at line <a class="el" href="scale8_8h_source.html#l00098">98</a> of file <a class="el" href="scale8_8h_source.html">scale8.h</a>.</p>
</div>
</div>
-<a class="anchor" id="gab341cef8d46232269bb70092fed9eb75"></a>
+<a class="anchor" id="gaf8e0821f34434cd6bfed4a16a895da23"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">LIB8STATIC uint8_t scale8_video_LEAVING_R1_DIRTY </td>
+ <td class="memname">LIB8STATIC_ALWAYS_INLINE uint8_t scale8_video_LEAVING_R1_DIRTY </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>i</em>, </td>
@@ -536,7 +536,7 @@ LIB8STATIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el"
<p>This version of scale8_video does not clean up the R1 register on AVR If you are doing several 'scale8_video's in a row, use this, and then explicitly call cleanup_R1. </p>
-<p>Definition at line <a class="el" href="scale8_8h_source.html#l00175">175</a> of file <a class="el" href="scale8_8h_source.html">scale8.h</a>.</p>
+<p>Definition at line <a class="el" href="scale8_8h_source.html#l00230">230</a> of file <a class="el" href="scale8_8h_source.html">scale8.h</a>.</p>
</div>
</div>
@@ -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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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.js b/docs/3.1/group___scaling.js
index 5199714e..375db8b0 100644
--- a/docs/3.1/group___scaling.js
+++ b/docs/3.1/group___scaling.js
@@ -1,16 +1,16 @@
var group___scaling =
[
- [ "cleanup_R1", "group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9", null ],
- [ "nscale8_LEAVING_R1_DIRTY", "group___scaling.html#ga5f6dde3d9398f4b389c96e759a3f7b80", null ],
- [ "nscale8_video_LEAVING_R1_DIRTY", "group___scaling.html#ga2a580fcaa010558218faae95d1936635", null ],
+ [ "cleanup_R1", "group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79", null ],
+ [ "nscale8_LEAVING_R1_DIRTY", "group___scaling.html#ga025b1e8d81032d15fe1ab500f804f3f2", null ],
+ [ "nscale8_video_LEAVING_R1_DIRTY", "group___scaling.html#gadfd26d9b154f5ec79dbffe612dafd146", null ],
[ "nscale8x2", "group___scaling.html#ga6f419761a744efed4bae8875ac07aef0", null ],
[ "nscale8x2_video", "group___scaling.html#ga4204edd4a3f8aac7124a10f1f5cfccfe", null ],
[ "nscale8x3", "group___scaling.html#ga39bf87e5526120889086cab19ac749b1", null ],
[ "nscale8x3_video", "group___scaling.html#ga700b7f510f32e8c91385093c436c27d9", null ],
[ "scale16", "group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145", null ],
- [ "scale16by8", "group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e", null ],
- [ "scale8", "group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af", null ],
- [ "scale8_LEAVING_R1_DIRTY", "group___scaling.html#ga39579fcf09743f15545fe0b831ca313c", null ],
- [ "scale8_video", "group___scaling.html#ga333095ffa436c94d3e77ee9dc39da1c1", null ],
- [ "scale8_video_LEAVING_R1_DIRTY", "group___scaling.html#gab341cef8d46232269bb70092fed9eb75", null ]
+ [ "scale16by8", "group___scaling.html#gaa51d5b048c2a4a20a00bddcdc257daaf", null ],
+ [ "scale8", "group___scaling.html#gad7535ccda9c92470c4e6ee0265585555", null ],
+ [ "scale8_LEAVING_R1_DIRTY", "group___scaling.html#ga7386235cada3aca429b189681d2ec56d", null ],
+ [ "scale8_video", "group___scaling.html#ga628b417ea1507e3447cdf5f308d9b6d5", null ],
+ [ "scale8_video_LEAVING_R1_DIRTY", "group___scaling.html#gaf8e0821f34434cd6bfed4a16a895da23", null ]
]; \ No newline at end of file
diff --git a/docs/3.1/group___trig.html b/docs/3.1/group___trig.html
index 30a31988..7a4e85b3 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 f076d0a4..890fa768 100644
--- a/docs/3.1/group__chipsets.html
+++ b/docs/3.1/group__chipsets.html
@@ -175,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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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__lib8tion.html b/docs/3.1/group__lib8tion.html
index a4c7b4b8..0a32e14e 100644
--- a/docs/3.1/group__lib8tion.html
+++ b/docs/3.1/group__lib8tion.html
@@ -351,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#l00342">342</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#l00343">343</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -368,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#l00334">334</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#l00335">335</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -385,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#l00346">346</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#l00347">347</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -402,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#l00338">338</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#l00339">339</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -434,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#l00854">854</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#l00855">855</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -482,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#l00900">900</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#l00901">901</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -530,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#l00913">913</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#l00914">914</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -579,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#l00887">887</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#l00888">888</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -598,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#l00991">991</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#l00992">992</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -619,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#l00711">711</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#l00712">712</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -640,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#l00966">966</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#l00967">967</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -661,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#l00618">618</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#l00619">619</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -682,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#l00413">413</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#l00414">414</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -702,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#l00947">947</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#l00948">948</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -742,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#l00556">556</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#l00557">557</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -762,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#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#l00938">938</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -783,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#l00704">704</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#l00705">705</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -803,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#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#l00928">928</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -823,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#l00404">404</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#l00405">405</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -870,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#l00740">740</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#l00741">741</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -893,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#l00683">683</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#l00684">684</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -902,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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 5f5338f9..5f77eb59 100644
--- a/docs/3.1/hierarchy.html
+++ b/docs/3.1/hierarchy.html
@@ -253,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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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_8cpp_source.html b/docs/3.1/hsv2rgb_8cpp_source.html
index 608df6b9..c319cfb4 100644
--- a/docs/3.1/hsv2rgb_8cpp_source.html
+++ b/docs/3.1/hsv2rgb_8cpp_source.html
@@ -358,7 +358,7 @@ $(document).ready(function(){initNavTree('hsv2rgb_8cpp_source.html','');});
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; }</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a>();</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">// End of AVR asm implementation</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div>
@@ -367,7 +367,7 @@ $(document).ready(function(){initNavTree('hsv2rgb_8cpp_source.html','');});
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="keywordtype">void</span> hsv2rgb_spectrum( <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="l00257"></a><span class="lineno"> 257</span>&#160;{</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <a class="code" href="struct_c_h_s_v.html">CHSV</a> hsv2(hsv);</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; hsv2.hue = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( hsv2.hue, 192);</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; hsv2.hue = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( hsv2.hue, 192);</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; hsv2rgb_raw(hsv2, rgb);</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>
@@ -383,451 +383,464 @@ $(document).ready(function(){initNavTree('hsv2rgb_8cpp_source.html','');});
<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="preprocessor">#define K255 255</span></div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="preprocessor">#define K171 171</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor">#define K85 85</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div>
-<div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8"> 277</a></span>&#160;<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="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">// Yellow has a higher inherent brightness than</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="comment">// any other color; &#39;pure&#39; yellow is perceived to</span></div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="comment">// be 93% as bright as white. In order to make</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="comment">// yellow appear the correct relative brightness,</span></div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="comment">// it has to be rendered brighter than all other</span></div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="comment">// colors.</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="comment">// Level Y1 is a moderate boost, the default.</span></div>
-<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="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="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="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor">#define K170 170</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="preprocessor">#define K85 85</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"><a class="line" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8"> 278</a></span>&#160;<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="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">// Yellow has a higher inherent brightness than</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="comment">// any other color; &#39;pure&#39; yellow is perceived to</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="comment">// be 93% as bright as white. In order to make</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="comment">// yellow appear the correct relative brightness,</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="comment">// it has to be rendered brighter than all other</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="comment">// colors.</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="comment">// Level Y1 is a moderate boost, the default.</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="comment">// Level Y2 is a strong boost.</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">const</span> uint8_t Y1 = 1;</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">const</span> uint8_t Y2 = 0;</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; </div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="comment">// G2: Whether to divide all greens by two.</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="comment">// Depends GREATLY on your particular LEDs</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">const</span> uint8_t G2 = 0;</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; </div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="comment">// Gscale: what to scale green down by.</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="comment">// Depends GREATLY on your particular LEDs</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keyword">const</span> uint8_t Gscale = 0;</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="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="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>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="preprocessor">#if defined(__AVR__)</span></div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="comment">// Left to its own devices, gcc turns &quot;x &lt;&lt;= 3&quot; into a loop</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="comment">// It&#39;s much faster and smaller to just do three single-bit shifts</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="comment">// So this business is to force that.</span></div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; offset8 &lt;&lt;= 1;</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(<span class="stringliteral">&quot;&quot;</span>);</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; offset8 &lt;&lt;= 1;</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(<span class="stringliteral">&quot;&quot;</span>);</div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; offset8 &lt;&lt;= 1;</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="comment">// On ARM and other non-AVR platforms, we just shift 3.</span></div>
-<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="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="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="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>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="comment">// 00X</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="comment">//section 0-1</span></div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">if</span>( ! (hue &amp; 0x20) ) {</div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="comment">// 000</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="comment">//case 0: // R -&gt; O</span></div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; r = K255 - third;</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; g = third;</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; b = 0;</div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; FORCE_REFERENCE(b);</div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="comment">// 001</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="comment">//case 1: // O -&gt; Y</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">if</span>( Y1 ) {</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; r = K171;</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; g = K85 + third ;</div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; b = 0;</div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; FORCE_REFERENCE(b);</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="keywordflow">if</span>( Y2 ) {</div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; r = K171 + third;</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="comment">//uint8_t twothirds = (third &lt;&lt; 1);</span></div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</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="l00352"></a><span class="lineno"> 352</span>&#160; g = K85 + twothirds;</div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; b = 0;</div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; FORCE_REFERENCE(b);</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; }</div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="comment">//01X</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="comment">// section 2-3</span></div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">if</span>( ! (hue &amp; 0x20) ) {</div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="comment">// 010</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="comment">//case 2: // Y -&gt; G</span></div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">if</span>( Y1 ) {</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="comment">//uint8_t twothirds = (third &lt;&lt; 1);</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</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="l00366"></a><span class="lineno"> 366</span>&#160; r = K171 - twothirds;</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; g = K171 + third;</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; b = 0;</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; FORCE_REFERENCE(b);</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="keywordflow">if</span>( Y2 ) {</div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; r = K255 - offset8;</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; g = K255;</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; b = 0;</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; FORCE_REFERENCE(b);</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="keywordflow">else</span> {</div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="comment">// 011</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="comment">// case 3: // G -&gt; A</span></div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; r = 0;</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; FORCE_REFERENCE(r);</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; g = K255 - third;</div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; b = third;</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; }</div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; }</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="comment">// section 4-7</span></div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="comment">// 1XX</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">if</span>( ! (hue &amp; 0x40) ) {</div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="comment">// 10X</span></div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">if</span>( ! ( hue &amp; 0x20) ) {</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="comment">// 100</span></div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="comment">//case 4: // A -&gt; B</span></div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; r = 0;</div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; FORCE_REFERENCE(r);</div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="comment">//uint8_t twothirds = (third &lt;&lt; 1);</span></div>
-<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="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>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; r = third;</div>
-<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="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>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="comment">// 110</span></div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="comment">//case 6: // P -- K</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; r = K85 + third;</div>
-<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="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>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; r = K171 + third;</div>
-<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="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="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="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; <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">// 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="l00299"></a><span class="lineno"> 299</span>&#160; </div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; uint8_t hue = hsv.hue;</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; uint8_t sat = hsv.sat;</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; uint8_t val = hsv.val;</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; uint8_t offset = hue &amp; 0x1F; <span class="comment">// 0..31</span></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">// offset8 = offset * 8</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; uint8_t offset8 = offset;</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="preprocessor">#if defined(__AVR__)</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="comment">// Left to its own devices, gcc turns &quot;x &lt;&lt;= 3&quot; into a loop</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="comment">// It&#39;s much faster and smaller to just do three single-bit shifts</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="comment">// So this business is to force that.</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; offset8 &lt;&lt;= 1;</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(<span class="stringliteral">&quot;&quot;</span>);</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; offset8 &lt;&lt;= 1;</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(<span class="stringliteral">&quot;&quot;</span>);</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; offset8 &lt;&lt;= 1;</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="comment">// On ARM and other non-AVR platforms, we just shift 3.</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; offset8 &lt;&lt;= 3;</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; }</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; </div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; uint8_t third = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( offset8, (256 / 3)); <span class="comment">// max = 85</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; </div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; uint8_t r, g, b;</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>( ! (hue &amp; 0x80) ) {</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="comment">// 0XX</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">if</span>( ! (hue &amp; 0x40) ) {</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="comment">// 00X</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="comment">//section 0-1</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">if</span>( ! (hue &amp; 0x20) ) {</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="comment">// 000</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="comment">//case 0: // R -&gt; O</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; r = K255 - third;</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; g = third;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; b = 0;</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; FORCE_REFERENCE(b);</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="comment">// 001</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="comment">//case 1: // O -&gt; Y</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">if</span>( Y1 ) {</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; r = K171;</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; g = K85 + third ;</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; b = 0;</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; FORCE_REFERENCE(b);</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="keywordflow">if</span>( Y2 ) {</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; r = K170 + third;</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="comment">//uint8_t twothirds = (third &lt;&lt; 1);</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; uint8_t twothirds = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( offset8, ((256 * 2) / 3)); <span class="comment">// max=170</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; g = K85 + twothirds;</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; b = 0;</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; FORCE_REFERENCE(b);</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; }</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; }</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="comment">//01X</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="comment">// section 2-3</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">if</span>( ! (hue &amp; 0x20) ) {</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="comment">// 010</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="comment">//case 2: // Y -&gt; G</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">if</span>( Y1 ) {</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="comment">//uint8_t twothirds = (third &lt;&lt; 1);</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; uint8_t twothirds = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( offset8, ((256 * 2) / 3)); <span class="comment">// max=170</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; r = K171 - twothirds;</div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; g = K170 + third;</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; b = 0;</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; FORCE_REFERENCE(b);</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="keywordflow">if</span>( Y2 ) {</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; r = K255 - offset8;</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; g = K255;</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; b = 0;</div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; FORCE_REFERENCE(b);</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; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="comment">// 011</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="comment">// case 3: // G -&gt; A</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; r = 0;</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; FORCE_REFERENCE(r);</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; g = K255 - third;</div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; b = third;</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; }</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; }</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="comment">// section 4-7</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="comment">// 1XX</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">if</span>( ! (hue &amp; 0x40) ) {</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="comment">// 10X</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">if</span>( ! ( hue &amp; 0x20) ) {</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="comment">// 100</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="comment">//case 4: // A -&gt; B</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; r = 0;</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; FORCE_REFERENCE(r);</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="comment">//uint8_t twothirds = (third &lt;&lt; 1);</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; uint8_t twothirds = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( offset8, ((256 * 2) / 3)); <span class="comment">// max=170</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; g = K171 - twothirds; <span class="comment">//K170?</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; b = K85 + twothirds;</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; </div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="comment">// 101</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="comment">//case 5: // B -&gt; P</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; r = third;</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; g = 0;</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; FORCE_REFERENCE(g);</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; b = K255 - third;</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; </div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; }</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">if</span>( ! (hue &amp; 0x20) ) {</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="comment">// 110</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="comment">//case 6: // P -- K</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; r = K85 + third;</div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; g = 0;</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; FORCE_REFERENCE(g);</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; b = K171 - third;</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="keywordflow">else</span> {</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="comment">// 111</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="comment">//case 7: // K -&gt; R</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; r = K170 + third;</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; g = 0;</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; FORCE_REFERENCE(g);</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; b = K85 - third;</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="l00431"></a><span class="lineno"> 431</span>&#160; </div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="comment">// This is one of the good places to scale the green down,</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="comment">// although the client can scale green down as well.</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">if</span>( G2 ) g = g &gt;&gt; 1;</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">if</span>( Gscale ) g = <a class="code" href="group___scaling.html#gaf8e0821f34434cd6bfed4a16a895da23">scale8_video_LEAVING_R1_DIRTY</a>( g, Gscale);</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; <span class="comment">// Scale down colors if we&#39;re desaturated at all</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="comment">// and add the brightness_floor to r, g, and b.</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">if</span>( sat != 255 ) {</div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">if</span>( sat == 0) {</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; r = 255; b = 255; g = 255;</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="comment">//nscale8x3_video( r, g, b, sat);</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="preprocessor">#if (FASTLED_SCALE8_FIXED==1)</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">if</span>( r ) r = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( r, sat);</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">if</span>( g ) g = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( g, sat);</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordflow">if</span>( b ) b = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( b, sat);</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">if</span>( r ) r = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( r, sat) + 1;</div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">if</span>( g ) g = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( g, sat) + 1;</div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordflow">if</span>( b ) b = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( b, sat) + 1;</div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <a class="code" href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a>();</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; uint8_t desat = 255 - sat;</div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; desat = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( desat, desat);</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 brightness_floor = desat;</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; r += brightness_floor;</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; g += brightness_floor;</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; b += brightness_floor;</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; }</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">// Now scale everything down if we&#39;re at value &lt; 255.</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">if</span>( val != 255 ) {</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; val = <a class="code" href="group___scaling.html#gaf8e0821f34434cd6bfed4a16a895da23">scale8_video_LEAVING_R1_DIRTY</a>( val, val);</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">if</span>( val == 0 ) {</div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; r=0; g=0; b=0;</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="comment">// nscale8x3_video( r, g, b, val);</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<span class="preprocessor">#if (FASTLED_SCALE8_FIXED==1)</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordflow">if</span>( r ) r = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( r, val);</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">if</span>( g ) g = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( g, val);</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">if</span>( b ) b = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( b, val);</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordflow">if</span>( r ) r = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( r, val) + 1;</div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">if</span>( g ) g = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( g, val) + 1;</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">if</span>( b ) b = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( b, val) + 1;</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <a class="code" href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a>();</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; </div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</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="l00487"></a><span class="lineno"> 487</span>&#160; <span class="comment">// It turns out that fixing it winds up costing more than</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="comment">// not fixing it.</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="comment">// To paraphrase Dr Bronner, profile! profile! profile!</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="comment">//asm volatile( &quot;&quot; : : : &quot;r26&quot;, &quot;r27&quot; );</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</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="l00492"></a><span class="lineno"> 492</span>&#160; rgb.r = r;</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; rgb.g = g;</div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; rgb.b = b;</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="l00497"></a><span class="lineno"> 497</span>&#160;</div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</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="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numLeds; i++) {</div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; hsv2rgb_raw(phsv[i], prgb[i]);</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="l00504"></a><span class="lineno"> 504</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="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numLeds; i++) {</div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>(phsv[i], prgb[i]);</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;</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</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="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numLeds; i++) {</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; hsv2rgb_spectrum(phsv[i], prgb[i]);</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;}</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;</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">#define FIXFRAC8(N,D) (((N)*256)/(D))</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="comment">// This function is only an approximation, and it is not</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="comment">// nearly as fast as the normal HSV-to-RGB conversion.</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;<span class="comment">// See extended notes in the .h file.</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</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="l00524"></a><span class="lineno"> 524</span>&#160;{</div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; uint8_t r = rgb.r;</div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; uint8_t g = rgb.g;</div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; uint8_t b = rgb.b;</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; uint8_t h, s, v;</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="l00530"></a><span class="lineno"> 530</span>&#160; <span class="comment">// find desaturation</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; uint8_t desat = 255;</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordflow">if</span>( r &lt; desat) desat = r;</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keywordflow">if</span>( g &lt; desat) desat = g;</div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keywordflow">if</span>( b &lt; desat) desat = b;</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; </div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="comment">// remove saturation from all channels</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; r -= desat;</div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; g -= desat;</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; b -= desat;</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">//Serial.print(&quot;desat=&quot;); Serial.print(desat); Serial.println(&quot;&quot;);</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; </div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="comment">//uint8_t orig_desat = sqrt16( desat * 256);</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</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="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="l00546"></a><span class="lineno"> 546</span>&#160; <span class="comment">// saturation is opposite of desaturation</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; s = 255 - desat;</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</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="l00549"></a><span class="lineno"> 549</span>&#160; </div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keywordflow">if</span>( s != 255 ) {</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="comment">// undo &#39;dimming&#39; of saturation</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; s = 255 - <a class="code" href="group___math.html#ga66ecef97faa5f9b92c49766651c5afe9">sqrt16</a>( (255-s) * 256);</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">// without lib8tion: float ... ew ... sqrt... double ew, or rather, ew ^ 0.5</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</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="l00556"></a><span class="lineno"> 556</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="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="comment">// at least one channel is now zero</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="comment">// if all three channels are zero, we had a</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="comment">// shade of gray.</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">if</span>( (r + g + b) == 0) {</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="comment">// we pick hue zero for no special reason</span></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_h_s_v.html">CHSV</a>( 0, 0, 255 - s);</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">// scale all channels up to compensate for desaturation</span></div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keywordflow">if</span>( s &lt; 255) {</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordflow">if</span>( s == 0) s = 1;</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; uint32_t scaleup = 65535 / (s);</div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; r = ((uint32_t)(r) * scaleup) / 256;</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; g = ((uint32_t)(g) * scaleup) / 256;</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; b = ((uint32_t)(b) * scaleup) / 256;</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; <span class="comment">//Serial.print(&quot;r.2=&quot;); Serial.print(r); Serial.println(&quot;&quot;);</span></div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</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="l00577"></a><span class="lineno"> 577</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="l00578"></a><span class="lineno"> 578</span>&#160; </div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; uint16_t total = r + g + b;</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; <span class="comment">//Serial.print(&quot;total=&quot;); Serial.print(total); Serial.println(&quot;&quot;);</span></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="comment">// scale all channels up to compensate for low values</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">if</span>( total &lt; 255) {</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">if</span>( total == 0) total = 1;</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; uint32_t scaleup = 65535 / (total);</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; r = ((uint32_t)(r) * scaleup) / 256;</div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; g = ((uint32_t)(g) * scaleup) / 256;</div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; b = ((uint32_t)(b) * scaleup) / 256;</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; <span class="comment">//Serial.print(&quot;r.3=&quot;); Serial.print(r); Serial.println(&quot;&quot;);</span></div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</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="l00593"></a><span class="lineno"> 593</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="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="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keywordflow">if</span>( total &gt; 255 ) {</div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; v = 255;</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; v = <a class="code" href="group___math.html#ga07133b3085824d0fcd4f5086d286c4b5">qadd8</a>(desat,total);</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="comment">// undo &#39;dimming&#39; of brightness</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</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="l00601"></a><span class="lineno"> 601</span>&#160; <span class="comment">// without lib8tion: float ... ew ... sqrt... double ew, or rather, ew ^ 0.5</span></div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="comment">// if( v != 255) v = (256.0 * sqrt( (float)(v) / 256.0));</span></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; </div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="comment">//Serial.print(&quot;v=&quot;); Serial.print(v); Serial.println(&quot;&quot;);</span></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="preprocessor">#if 0</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; <span class="comment">//#else</span></div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordflow">if</span>( v != 255) {</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <span class="comment">// this part could probably use refinement/rethinking,</span></div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="comment">// (but it doesn&#39;t overflow &amp; wrap anymore)</span></div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; uint16_t s16;</div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; s16 = (s * 256);</div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; s16 /= v;</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <span class="comment">//Serial.print(&quot;s16=&quot;); Serial.print(s16); Serial.println(&quot;&quot;);</span></div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="keywordflow">if</span>( s16 &lt; 256) {</div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; s = s16;</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; s = 255; <span class="comment">// clamp to prevent overflow</span></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="preprocessor">#endif</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; </div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="comment">//Serial.print(&quot;s.3=&quot;); Serial.print(s); Serial.println(&quot;&quot;);</span></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; <span class="comment">// since this wasn&#39;t a pure shade of gray,</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="comment">// the interesting question is what hue is it</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; </div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; </div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; </div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="comment">// start with which channel is highest</span></div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; <span class="comment">// (ties don&#39;t matter)</span></div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; uint8_t highest = r;</div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; <span class="keywordflow">if</span>( g &gt; highest) highest = g;</div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="keywordflow">if</span>( b &gt; highest) highest = b;</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="keywordflow">if</span>( highest == r ) {</div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="comment">// Red is highest.</span></div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="comment">// Hue could be Purple/Pink-Red,Red-Orange,Orange-Yellow</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keywordflow">if</span>( g == 0 ) {</div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="comment">// if green is zero, we&#39;re in Purple/Pink-Red</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; h = (HUE_PURPLE + HUE_PINK) / 2;</div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; h += <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( <a class="code" href="group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3">qsub8</a>(r, 128), FIXFRAC8(48,128));</div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( (r - g) &gt; g) {</div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="comment">// if R-G &gt; G then we&#39;re in Red-Orange</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; h = HUE_RED;</div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; h += <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( g, FIXFRAC8(32,85));</div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <span class="comment">// R-G &lt; G, we&#39;re in Orange-Yellow</span></div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; h = HUE_ORANGE;</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; h += <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( <a class="code" href="group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3">qsub8</a>((g - 85) + (171 - r), 4), FIXFRAC8(32,85)); <span class="comment">//221</span></div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; }</div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; </div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( highest == g) {</div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <span class="comment">// Green is highest</span></div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="comment">// Hue could be Yellow-Green, Green-Aqua</span></div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <span class="keywordflow">if</span>( b == 0) {</div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="comment">// if Blue is zero, we&#39;re in Yellow-Green</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="comment">// G = 171..255</span></div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="comment">// R = 171.. 0</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; h = HUE_YELLOW;</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; uint8_t radj = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( <a class="code" href="group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3">qsub8</a>(171,r), 47); <span class="comment">//171..0 -&gt; 0..171 -&gt; 0..31</span></div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; uint8_t gadj = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( <a class="code" href="group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3">qsub8</a>(g,171), 96); <span class="comment">//171..255 -&gt; 0..84 -&gt; 0..31;</span></div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; uint8_t rgadj = radj + gadj;</div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; uint8_t hueadv = rgadj / 2;</div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; h += hueadv;</div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <span class="comment">//h += scale8( qadd8( 4, qadd8((g - 128), (128 - r))),</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <span class="comment">// FIXFRAC8(32,255)); //</span></div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <span class="comment">// if Blue is nonzero we&#39;re in Green-Aqua</span></div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <span class="keywordflow">if</span>( (g-b) &gt; b) {</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; h = HUE_GREEN;</div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; h += <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( b, FIXFRAC8(32,85));</div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; h = HUE_AQUA;</div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; h += <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( <a class="code" href="group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3">qsub8</a>(b, 85), FIXFRAC8(8,42));</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; </div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; } <span class="keywordflow">else</span> <span class="comment">/* highest == b */</span> {</div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="comment">// Blue is highest</span></div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="comment">// Hue could be Aqua/Blue-Blue, Blue-Purple, Purple-Pink</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; <span class="keywordflow">if</span>( r == 0) {</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="comment">// if red is zero, we&#39;re in Aqua/Blue-Blue</span></div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; h = HUE_AQUA + ((HUE_BLUE - HUE_AQUA) / 4);</div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; h += <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( <a class="code" href="group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3">qsub8</a>(b, 128), FIXFRAC8(24,128));</div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( (b-r) &gt; r) {</div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <span class="comment">// B-R &gt; R, we&#39;re in Blue-Purple</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; h = HUE_BLUE;</div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; h += <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( r, FIXFRAC8(32,85));</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <span class="comment">// B-R &lt; R, we&#39;re in Purple-Pink</span></div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; h = HUE_PURPLE;</div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; h += <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( <a class="code" href="group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3">qsub8</a>(r, 85), FIXFRAC8(32,85));</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; </div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; h += 1;</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_h_s_v.html">CHSV</a>( h, s, v);</div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;}</div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;</div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;<span class="comment">// Examples that need work:</span></div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;<span class="comment">// 0,192,192</span></div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;<span class="comment">// 192,64,64</span></div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;<span class="comment">// 224,32,32</span></div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;<span class="comment">// 252,0,126</span></div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;<span class="comment">// 252,252,0</span></div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;<span class="comment">// 252,252,126</span></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;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_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_ga3fade00fb4cf5b937b973128198a7a79"><div class="ttname"><a href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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#l00299">scale8.h:299</a></div></div>
+<div class="ttc" id="group___math_html_gae261576a4c8155d6c0ba8615b2d2ecb3"><div class="ttname"><a href="group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3">qsub8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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___scaling_html_gaf8e0821f34434cd6bfed4a16a895da23"><div class="ttname"><a href="group___scaling.html#gaf8e0821f34434cd6bfed4a16a895da23">scale8_video_LEAVING_R1_DIRTY</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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#l00230">scale8.h:230</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_ga07133b3085824d0fcd4f5086d286c4b5"><div class="ttname"><a href="group___math.html#ga07133b3085824d0fcd4f5086d286c4b5">qadd8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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___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#l00278">hsv2rgb.cpp:278</a></div></div>
+<div class="ttc" id="group___scaling_html_gad7535ccda9c92470c4e6ee0265585555"><div class="ttname"><a href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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_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 class="ttc" id="group___scaling_html_ga7386235cada3aca429b189681d2ec56d"><div class="ttname"><a href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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#l00146">scale8.h:146</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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 e7d68b54..175968c2 100644
--- a/docs/3.1/hsv2rgb_8h_source.html
+++ b/docs/3.1/hsv2rgb_8h_source.html
@@ -202,7 +202,7 @@ $(document).ready(function(){initNavTree('hsv2rgb_8h_source.html','');});
<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="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#l00278">hsv2rgb.cpp:278</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 -->
@@ -210,7 +210,7 @@ $(document).ready(function(){initNavTree('hsv2rgb_8h_source.html','');});
<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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 058fa283..6e432670 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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/inherits.html b/docs/3.1/inherits.html
index dcec04f9..7e1a9103 100644
--- a/docs/3.1/inherits.html
+++ b/docs/3.1/inherits.html
@@ -268,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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 060092b7..337ca81a 100644
--- a/docs/3.1/led__sysdefs_8h_source.html
+++ b/docs/3.1/led__sysdefs_8h_source.html
@@ -160,7 +160,7 @@ $(document).ready(function(){initNavTree('led__sysdefs_8h_source.html','');});
<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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 03025e9a..bbec5589 100644
--- a/docs/3.1/lib8tion_8cpp_source.html
+++ b/docs/3.1/lib8tion_8cpp_source.html
@@ -246,7 +246,7 @@ $(document).ready(function(){initNavTree('lib8tion_8cpp_source.html','');});
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="keywordtype">void</span> test1abs( int8_t i)</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; Serial.print(<span class="stringliteral">&quot;abs(&quot;</span>); Serial.print(i); Serial.print(<span class="stringliteral">&quot;) = &quot;</span>);</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; int8_t j = <a class="code" href="group___math.html#ga4bf8996c4a130e96521495d4a1395a01">abs8</a>(i);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; int8_t j = <a class="code" href="group___math.html#ga162169ac0c2d1f3d01eaff8f32e1b415">abs8</a>(i);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; Serial.print(j); Serial.println(<span class="stringliteral">&quot; &quot;</span>);</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>
@@ -270,7 +270,7 @@ $(document).ready(function(){initNavTree('lib8tion_8cpp_source.html','');});
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; Serial.print(r); Serial.print(<span class="stringliteral">&quot; : &quot;</span>);</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">for</span>( c = 0; c &lt;= 20; c += 1) {</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; byte t;</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; t = <a class="code" href="group___math.html#ga10181a03cf8b8428fc524aa78e7fbf7f">mul8</a>( r, c);</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; t = <a class="code" href="group___math.html#gaf170916b55c493ea038c1d96b338e059">mul8</a>( r, c);</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; Serial.print(t); Serial.print(<span class="charliteral">&#39; &#39;</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; Serial.println(<span class="charliteral">&#39; &#39;</span>);</div>
@@ -290,7 +290,7 @@ $(document).ready(function(){initNavTree('lib8tion_8cpp_source.html','');});
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; Serial.print(r); Serial.print(<span class="stringliteral">&quot; : &quot;</span>);</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">for</span>( c = 0; c &lt;= 240; c += 10) {</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; byte t;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; t = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( r, c);</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; t = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( r, c);</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; Serial.print(t); Serial.print(<span class="charliteral">&#39; &#39;</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; Serial.println(<span class="charliteral">&#39; &#39;</span>);</div>
@@ -303,7 +303,7 @@ $(document).ready(function(){initNavTree('lib8tion_8cpp_source.html','');});
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; Serial.print(r); Serial.print(<span class="stringliteral">&quot; : &quot;</span>);</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">for</span>( c = 0; c &lt;= 100; c += 4) {</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; byte t;</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; t = <a class="code" href="group___scaling.html#ga333095ffa436c94d3e77ee9dc39da1c1">scale8_video</a>( r, c);</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; t = <a class="code" href="group___scaling.html#ga628b417ea1507e3447cdf5f308d9b6d5">scale8_video</a>( r, c);</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; Serial.print(t); Serial.print(<span class="charliteral">&#39; &#39;</span>);</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; Serial.println(<span class="charliteral">&#39; &#39;</span>);</div>
@@ -323,7 +323,7 @@ $(document).ready(function(){initNavTree('lib8tion_8cpp_source.html','');});
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; Serial.print(r); Serial.print(<span class="stringliteral">&quot; : &quot;</span>);</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">for</span>( c = 0; c &lt;= 240; c += 10) {</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; byte t;</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; t = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( r, c);</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; t = <a class="code" href="group___math.html#ga07133b3085824d0fcd4f5086d286c4b5">qadd8</a>( r, c);</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; Serial.print(t); Serial.print(<span class="charliteral">&#39; &#39;</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; Serial.println(<span class="charliteral">&#39; &#39;</span>);</div>
@@ -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#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___math_html_gaf170916b55c493ea038c1d96b338e059"><div class="ttname"><a href="group___math.html#gaf170916b55c493ea038c1d96b338e059">mul8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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_ga162169ac0c2d1f3d01eaff8f32e1b415"><div class="ttname"><a href="group___math.html#ga162169ac0c2d1f3d01eaff8f32e1b415">abs8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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_ga628b417ea1507e3447cdf5f308d9b6d5"><div class="ttname"><a href="group___scaling.html#ga628b417ea1507e3447cdf5f308d9b6d5">scale8_video</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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#l00098">scale8.h:98</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#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="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#l00344">scale8.h:344</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#l00753">lib8tion.h:753</a></div></div>
+<div class="ttc" id="group___math_html_ga07133b3085824d0fcd4f5086d286c4b5"><div class="ttname"><a href="group___math.html#ga07133b3085824d0fcd4f5086d286c4b5">qadd8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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_gad7535ccda9c92470c4e6ee0265585555"><div class="ttname"><a href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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="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#l00754">lib8tion.h:754</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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 ffd56ade..56866b26 100644
--- a/docs/3.1/lib8tion_8h_source.html
+++ b/docs/3.1/lib8tion_8h_source.html
@@ -287,836 +287,837 @@ $(document).ready(function(){initNavTree('lib8tion_8h_source.html','');});
<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">#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="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor">#define LIB8STATIC_ALWAYS_INLINE __attribute__ ((always_inline)) static inline</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;<span class="preprocessor">#if !defined(__AVR__)</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment">// for memmove, memcpy, and memset if not defined here</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor">#endif</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="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="l00187"></a><span class="lineno"> 187</span>&#160;<span class="preprocessor">#define LIB8_ATTINY 1</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;<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="l00190"></a><span class="lineno"> 190</span>&#160;</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="preprocessor">#if defined(__arm__)</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="preprocessor">#if defined(FASTLED_TEENSY3)</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment">// Can use Cortex M4 DSP instructions</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor">#define QADD8_C 0</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor">#define QADD7_C 0</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor">#define QADD8_ARM_DSP_ASM 1</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor">#define QADD7_ARM_DSP_ASM 1</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="comment">// Generic ARM</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor">#define QADD8_C 1</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="preprocessor">#define QADD7_C 1</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor">#endif</span></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="preprocessor">#define QSUB8_C 1</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor">#define SCALE8_C 1</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor">#define SCALE16BY8_C 1</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor">#define SCALE16_C 1</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor">#define ABS8_C 1</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#define MUL8_C 1</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor">#define QMUL8_C 1</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor">#define ADD8_C 1</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor">#define SUB8_C 1</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor">#define EASE8_C 1</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor">#define AVG8_C 1</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor">#define AVG7_C 1</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor">#define AVG16_C 1</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor">#define AVG15_C 1</span></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">#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="l00220"></a><span class="lineno"> 220</span>&#160;</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor">#elif defined(__AVR__)</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">// AVR ATmega and friends Arduino</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="preprocessor">#define QADD8_C 0</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor">#define QADD7_C 0</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="preprocessor">#define QSUB8_C 0</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor">#define ABS8_C 0</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor">#define ADD8_C 0</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="preprocessor">#define SUB8_C 0</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor">#define AVG8_C 0</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="preprocessor">#define AVG7_C 0</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor">#define AVG16_C 0</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="preprocessor">#define AVG15_C 0</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor">#define QADD8_AVRASM 1</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor">#define QADD7_AVRASM 1</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="preprocessor">#define QSUB8_AVRASM 1</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="preprocessor">#define ABS8_AVRASM 1</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor">#define ADD8_AVRASM 1</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="preprocessor">#define SUB8_AVRASM 1</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="preprocessor">#define AVG8_AVRASM 1</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor">#define AVG7_AVRASM 1</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="preprocessor">#define AVG16_AVRASM 1</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="preprocessor">#define AVG15_AVRASM 1</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="comment">// Note: these require hardware MUL instruction</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="comment">// -- sorry, ATtiny!</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor">#if !defined(LIB8_ATTINY)</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor">#define SCALE8_C 0</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor">#define SCALE16BY8_C 0</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor">#define SCALE16_C 0</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor">#define MUL8_C 0</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor">#define QMUL8_C 0</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="preprocessor">#define EASE8_C 0</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor">#define SCALE8_AVRASM 1</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor">#define SCALE16BY8_AVRASM 1</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor">#define SCALE16_AVRASM 1</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor">#define MUL8_AVRASM 1</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor">#define QMUL8_AVRASM 1</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor">#define EASE8_AVRASM 1</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor">#define CLEANUP_R1_AVRASM 1</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="comment">// On ATtiny, we just use C implementations</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor">#define SCALE8_C 1</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor">#define SCALE16BY8_C 1</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor">#define SCALE16_C 1</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor">#define MUL8_C 1</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor">#define QMUL8_C 1</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor">#define EASE8_C 1</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor">#define SCALE8_AVRASM 0</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="preprocessor">#define SCALE16BY8_AVRASM 0</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="preprocessor">#define SCALE16_AVRASM 0</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="preprocessor">#define MUL8_AVRASM 0</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor">#define QMUL8_AVRASM 0</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="preprocessor">#define EASE8_AVRASM 0</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="comment">// unspecified architecture, so</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="comment">// no ASM, everything in C</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor">#define QADD8_C 1</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor">#define QADD7_C 1</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor">#define QSUB8_C 1</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor">#define SCALE8_C 1</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor">#define SCALE16BY8_C 1</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor">#define SCALE16_C 1</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor">#define ABS8_C 1</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor">#define MUL8_C 1</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor">#define QMUL8_C 1</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="preprocessor">#define ADD8_C 1</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="preprocessor">#define SUB8_C 1</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="preprocessor">#define EASE8_C 1</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="preprocessor">#define AVG8_C 1</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor">#define AVG7_C 1</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor">#define AVG16_C 1</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor">#define AVG15_C 1</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;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</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">// 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">// 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="l00306"></a><span class="lineno"> 306</span>&#160;</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">// typdefs for fixed-point fractional types.</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="comment">// sfract7 should be interpreted as signed 128ths.</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="comment">// fract8 should be interpreted as unsigned 256ths.</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="comment">// sfract15 should be interpreted as signed 32768ths.</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="comment">// fract16 should be interpreted as unsigned 65536ths.</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</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="l00317"></a><span class="lineno"> 317</span>&#160;<span class="comment">// as 64/256ths, or one-quarter.</span></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="l00319"></a><span class="lineno"> 319</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="comment">// fract8 range is 0 to 0.99609375</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="comment">// in steps of 0.00390625</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="comment">// sfract7 range is -0.9921875 to 0.9921875</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="comment">// in steps of 0.0078125</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="comment">// fract16 range is 0 to 0.99998474121</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="comment">// in steps of 0.00001525878</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">// sfract15 range is -0.99996948242 to 0.99996948242</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="comment">// in steps of 0.00003051757</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div>
+<div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644"> 335</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="l00336"></a><span class="lineno"> 336</span>&#160;</div>
+<div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga7d6219a7247ab1923ed623e7ae0f34ae"> 339</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="l00340"></a><span class="lineno"> 340</span>&#160;</div>
+<div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5"> 343</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="l00344"></a><span class="lineno"> 344</span>&#160;</div>
+<div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga00cb5dc9e5b477a58669a3e40bc473c2"> 347</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="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="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">// accumXY types should be interpreted as X bits of integer,</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="comment">// and Y bits of fraction.</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="comment">// E.g., accum88 has 8 bits of int, 8 bits of fraction</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"><a class="line" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a"> 354</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="l00355"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga9585be88f27cab4c367399d8e91c8467"> 355</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="l00356"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gae3ac7def25ef5ddea2da1a3bc0c00f44"> 356</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="l00357"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gad2dad84f67c8a4cc6d4c92e2c7d3e89f"> 357</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="l00358"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga7bcc9ebf20b0dd74d9999d5a630d443f"> 358</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="l00359"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga95e7a40d98aa0371e9adce9220d3a67c"> 359</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="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;<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="l00361"></a><span class="lineno"> 361</span>&#160;</div>
+<div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="union_i_e_e_e754binary32__t.html"> 363</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; uint32_t i;</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordtype">float</span> f;</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 mantissa: 23;</div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; uint32_t exponent: 8;</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; uint32_t signbit: 1;</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="keyword">struct </span>{</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; uint32_t mant7 : 7;</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; uint32_t mant16: 16;</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; uint32_t exp_ : 8;</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; uint32_t sb_ : 1;</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="keyword">struct </span>{</div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; uint32_t mant_lo8 : 8;</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; uint32_t mant_hi16_exp_lo1 : 16;</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; uint32_t sb_exphi7 : 8;</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;} <a class="code" href="union_i_e_e_e754binary32__t.html">IEEE754binary32_t</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;<span class="preprocessor">#include &quot;lib8tion/math8.h&quot;</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor">#include &quot;lib8tion/scale8.h&quot;</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor">#include &quot;lib8tion/random8.h&quot;</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="preprocessor">#include &quot;lib8tion/trig8.h&quot;</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</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="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="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="l00396"></a><span class="lineno"> 396</span>&#160;</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="comment">// float-to-fixed and fixed-to-float conversions</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</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="l00402"></a><span class="lineno"> 402</span>&#160;</div>
+<div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gab947c1150e3b9056cb91685a14270173"> 405</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="l00406"></a><span class="lineno"> 406</span>&#160;{</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordflow">return</span> y / 32768.0;</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="l00414"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaa2facbc0ec935e34c629aef43d6262c0"> 414</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="l00415"></a><span class="lineno"> 415</span>&#160;{</div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">return</span> f * 32768.0;</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="l00420"></a><span class="lineno"> 420</span>&#160;</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="comment">// memmove8, memcpy8, and memset8:</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="comment">// alternatives to memmove, memcpy, and memset that are</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="comment">// faster on AVR than standard avr-libc 1.8</span></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;<span class="preprocessor">#if defined(__AVR__)</span></div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</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="l00430"></a><span class="lineno"> 430</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="l00431"></a><span class="lineno"> 431</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="l00432"></a><span class="lineno"> 432</span>&#160;}</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="comment">// on non-AVR platforms, these names just call standard libc.</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="preprocessor">#define memmove8 memmove</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<span class="preprocessor">#define memcpy8 memcpy</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="preprocessor">#define memset8 memset</span></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="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="l00440"></a><span class="lineno"> 440</span>&#160;</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;<span class="comment">// linear interpolation, such as could be used for Perlin noise, etc.</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;<span class="comment">// A note on the structure of the lerp functions:</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</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="l00448"></a><span class="lineno"> 448</span>&#160;<span class="comment">// speed: without knowing the relative order of a and b,</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</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="l00450"></a><span class="lineno"> 450</span>&#160;<span class="comment">// and have to be promoted to a wider, slower type.</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<span class="comment">// To avoid that, we separate the two cases, and are able</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;<span class="comment">// to do all the math in the same width as the arguments,</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<span class="comment">// which is much faster and smaller on AVR.</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;</div>
+<div class="line"><a name="l00457"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72"> 457</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="l00458"></a><span class="lineno"> 458</span>&#160;{</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; uint8_t result;</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">if</span>( b &gt; a) {</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; uint8_t delta = b - a;</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; uint8_t scaled = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( delta, frac);</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; result = a + scaled;</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; uint8_t delta = a - b;</div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; uint8_t scaled = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( delta, frac);</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; result = a - scaled;</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="keywordflow">return</span> result;</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="l00474"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3"> 474</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="l00475"></a><span class="lineno"> 475</span>&#160;{</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; uint16_t result;</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordflow">if</span>( b &gt; a ) {</div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; uint16_t delta = b - a;</div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; uint32_t scaled = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>(delta, frac);</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; result = a + scaled;</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; uint16_t delta = a - b;</div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( delta, frac);</div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; result = a - scaled;</div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; }</div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">return</span> result;</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="l00491"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga8c8f06da86c5d7cf13f55c3a5bfdf251"> 491</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="l00492"></a><span class="lineno"> 492</span>&#160;{</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; uint16_t result;</div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordflow">if</span>( b &gt; a) {</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; uint16_t delta = b - a;</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#gaa51d5b048c2a4a20a00bddcdc257daaf">scale16by8</a>( delta, frac);</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; result = a + scaled;</div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; uint16_t delta = a - b;</div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#gaa51d5b048c2a4a20a00bddcdc257daaf">scale16by8</a>( delta, frac);</div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; result = a - scaled;</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> result;</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="l00508"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaacea0eaea98a065dfa08bb1c147c52a1"> 508</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="l00509"></a><span class="lineno"> 509</span>&#160;{</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; int16_t result;</div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordflow">if</span>( b &gt; a) {</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; uint16_t delta = b - a;</div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#gaa51d5b048c2a4a20a00bddcdc257daaf">scale16by8</a>( delta, frac);</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; result = a + scaled;</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; uint16_t delta = a - b;</div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#gaa51d5b048c2a4a20a00bddcdc257daaf">scale16by8</a>( delta, frac);</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; result = a - scaled;</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> result;</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="l00525"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gad4b09aba4e188e14d3e71d1c9f77f1a5"> 525</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="l00526"></a><span class="lineno"> 526</span>&#160;{</div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; int16_t result;</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keywordflow">if</span>( b &gt; a) {</div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; uint16_t delta = b - a;</div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( delta, frac);</div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; result = a + scaled;</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; uint16_t delta = a - b;</div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( delta, frac);</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; result = a - scaled;</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">return</span> result;</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="l00557"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaf65357c7aeca9778e5a2f80a6bac2b5d"> 557</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="l00558"></a><span class="lineno"> 558</span>&#160;{</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; uint8_t rangeWidth = rangeEnd - rangeStart;</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; uint8_t out = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( in, rangeWidth);</div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; out += rangeStart;</div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">return</span> out;</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="l00565"></a><span class="lineno"> 565</span>&#160;</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="comment">// easing functions; see http://easings.net</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;</div>
+<div class="line"><a name="l00573"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga381449070b2d6bfba356f87881ab28c0"> 573</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="l00574"></a><span class="lineno"> 574</span>&#160;{</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; uint8_t j = i;</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="keywordflow">if</span>( j &amp; 0x80 ) {</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; j = 255 - j;</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; uint8_t jj = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( j, (j+1));</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; uint8_t jj2 = jj &lt;&lt; 1;</div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keywordflow">if</span>( i &amp; 0x80 ) {</div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; jj2 = 255 - jj2;</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">return</span> jj2;</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;</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; : [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="l00587"></a><span class="lineno"> 587</span>&#160;</div>
+<div class="line"><a name="l00590"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga3fa6d71702477e71d7c0dd864eb1d568"> 590</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="l00591"></a><span class="lineno"> 591</span>&#160;{</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; uint8_t ii = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( i, i);</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; uint8_t iii = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( ii, i);</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; uint16_t r1 = (3 * (uint16_t)(ii)) - ( 2 * (uint16_t)(iii));</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="comment">/* the code generated for the above *&#39;s automatically</span></div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;<span class="comment"> cleans up R1, so there&#39;s no need to explicitily call</span></div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;<span class="comment"> cleanup_R1(); */</span></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; uint8_t result = r1;</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="comment">// if we got &quot;256&quot;, return 255:</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="keywordflow">if</span>( r1 &amp; 0x100 ) {</div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; result = 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; <span class="keywordflow">return</span> result;</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="l00617"></a><span class="lineno"> 617</span>&#160;</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="preprocessor">#if EASE8_C == 1</span></div>
+<div class="line"><a name="l00619"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaa041cdbb17f073dbd352fcae6962dc23"> 619</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="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">if</span>( i &lt; 64) {</div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="comment">// start with slope 0.5</span></div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; i /= 2;</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>( i &gt; (255 - 64)) {</div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="comment">// end with slope 0.5</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; i = 255 - i;</div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; i /= 2;</div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; i = 255 - i;</div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="comment">// in the middle, use slope 192/128 = 1.5</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; i -= 64;</div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; i += (i / 2);</div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; i += 32;</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; <span class="keywordflow">return</span> i;</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;<span class="preprocessor">#elif EASE8_AVRASM == 1</span></div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</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="l00641"></a><span class="lineno"> 641</span>&#160;{</div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="comment">// takes around 7 cycles on AVR</span></div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span> (</div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="stringliteral">&quot; subi %[i], 64 \n\t&quot;</span></div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="stringliteral">&quot; cpi %[i], 128 \n\t&quot;</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="stringliteral">&quot; brcc Lshift_%= \n\t&quot;</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">// middle case</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="stringliteral">&quot; mov __tmp_reg__, %[i] \n\t&quot;</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="stringliteral">&quot; lsr __tmp_reg__ \n\t&quot;</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="stringliteral">&quot; add %[i], __tmp_reg__ \n\t&quot;</span></div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="stringliteral">&quot; subi %[i], 224 \n\t&quot;</span></div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <span class="stringliteral">&quot; rjmp Ldone_%= \n\t&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="comment">// start or end case</span></div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <span class="stringliteral">&quot;Lshift_%=: \n\t&quot;</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="stringliteral">&quot; lsr %[i] \n\t&quot;</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="stringliteral">&quot; subi %[i], 96 \n\t&quot;</span></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; <span class="stringliteral">&quot;Ldone_%=: \n\t&quot;</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; : [i] <span class="stringliteral">&quot;+a&quot;</span> (i)</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; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; );</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="keywordflow">return</span> i;</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="preprocessor">#else</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<span class="preprocessor">#error &quot;No implementation for ease8 available.&quot;</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;<span class="preprocessor">#endif</span></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="l00673"></a><span class="lineno"> 673</span>&#160;</div>
+<div class="line"><a name="l00684"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gae9e011ff745ade1164ae77b0ef62bfac"> 684</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="l00685"></a><span class="lineno"> 685</span>&#160;{</div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keywordflow">if</span>( in &amp; 0x80) {</div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; in = 255 - in;</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; uint8_t out = in &lt;&lt; 1;</div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <span class="keywordflow">return</span> out;</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">// 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="l00693"></a><span class="lineno"> 693</span>&#160;</div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;<span class="comment">// quadwave8 and cubicwave8: S-shaped wave generators (like &#39;sine&#39;).</span></div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;<span class="comment">// Useful for turning a one-byte &#39;counter&#39; value into a</span></div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;<span class="comment">// one-byte oscillating value that moves smoothly up and down,</span></div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;<span class="comment">// with an &#39;acceleration&#39; and &#39;deceleration&#39; curve.</span></div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;<span class="comment">// These are even faster than &#39;sin8&#39;, and have</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;<span class="comment">// slightly different curve shapes.</span></div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;</div>
+<div class="line"><a name="l00705"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga209d6cbdb109cc3139e7bb1e46c6228f"> 705</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="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">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="l00708"></a><span class="lineno"> 708</span>&#160;}</div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;</div>
+<div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga06b04a0cf955ec107d49b76e0cb35225"> 712</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="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">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="l00715"></a><span class="lineno"> 715</span>&#160;}</div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;</div>
+<div class="line"><a name="l00741"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga17ae8fcfd9c485bb1120d908f836637a"> 741</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="l00742"></a><span class="lineno"> 742</span>&#160;{</div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keywordflow">if</span>( in &lt; pulsewidth || (pulsewidth == 255)) {</div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keywordflow">return</span> 255;</div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <span class="keywordflow">return</span> 0;</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="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="l00752"></a><span class="lineno"> 752</span>&#160;</div>
+<div class="line"><a name="l00754"></a><span class="lineno"><a class="line" href="classq.html"> 754</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="l00755"></a><span class="lineno"> 755</span>&#160; T i:I;</div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; T f:F;</div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</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="l00759"></a><span class="lineno"> 759</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="l00760"></a><span class="lineno"> 760</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="l00761"></a><span class="lineno"> 761</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="l00762"></a><span class="lineno"> 762</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="l00763"></a><span class="lineno"> 763</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="l00764"></a><span class="lineno"> 764</span>&#160;<span class="preprocessor">#ifdef FASTLED_ARM</span></div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</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="l00766"></a><span class="lineno"> 766</span>&#160;<span class="preprocessor">#endif</span></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;</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> 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="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> 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="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> 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="l00772"></a><span class="lineno"> 772</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="l00773"></a><span class="lineno"> 773</span>&#160;<span class="preprocessor">#ifdef FASTLED_ARM</span></div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</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="l00775"></a><span class="lineno"> 775</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;</div>
+<div class="line"><a name="l00778"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga85082c3ed8843d32076222e82d72f80d"> 778</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="l00780"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gafea4166e233d92817eada7203021089a"> 780</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="l00782"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gad5dca0e1248b916799dde6dc44ef369b"> 782</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="l00784"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga0f02a1da674754f48c5f89c1610e118c"> 784</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="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="l00787"></a><span class="lineno"> 787</span>&#160;</div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;<span class="comment">// Beat generators - These functions produce waves at a given</span></div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;<span class="comment">// number of &#39;beats per minute&#39;. Internally, they use</span></div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;<span class="comment">// the Arduino function &#39;millis&#39; to track elapsed time.</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160;<span class="comment">// Accuracy is a bit better than one part in a thousand.</span></div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</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="l00794"></a><span class="lineno"> 794</span>&#160;<span class="comment">// per minute, rising from 0 to 255, resetting to zero,</span></div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;<span class="comment">// rising up again, etc.. The output of this function</span></div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;<span class="comment">// is suitable for feeding directly into sin8, and cos8,</span></div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;<span class="comment">// triwave8, quadwave8, and cubicwave8.</span></div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</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="l00799"></a><span class="lineno"> 799</span>&#160;<span class="comment">// per minute, rising from 0 to 65535, resetting to zero,</span></div>
+<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;<span class="comment">// rising up again, etc. The output of this function is</span></div>
+<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;<span class="comment">// suitable for feeding directly into sin16 and cos16.</span></div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;<span class="comment">// beat88( BPM88) is the same as beat16, except that the BPM88 argument</span></div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;<span class="comment">// MUST be in Q8.8 fixed point format, e.g. 120BPM must</span></div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;<span class="comment">// be specified as 120*256 = 30720.</span></div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</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="l00806"></a><span class="lineno"> 806</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="l00807"></a><span class="lineno"> 807</span>&#160;<span class="comment">// between the values of &#39;low&#39; and &#39;high&#39;.</span></div>
+<div class="line"><a name="l00808"></a><span class="lineno"> 808</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="l00809"></a><span class="lineno"> 809</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="l00810"></a><span class="lineno"> 810</span>&#160;<span class="comment">// minute, between the values of &#39;low&#39; and &#39;high&#39;.</span></div>
+<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;<span class="comment">// beatsin88( BPM88, ...) is the same as beatsin16, except that the</span></div>
+<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;<span class="comment">// BPM88 argument MUST be in Q8.8 fixed point format,</span></div>
+<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160;<span class="comment">// e.g. 120BPM must be specified as 120*256 = 30720.</span></div>
+<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00815"></a><span class="lineno"> 815</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="l00816"></a><span class="lineno"> 816</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="l00817"></a><span class="lineno"> 817</span>&#160;<span class="comment">// The more sophisticated way of specifying BPM allows for fractional</span></div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</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="l00819"></a><span class="lineno"> 819</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="l00820"></a><span class="lineno"> 820</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="l00821"></a><span class="lineno"> 821</span>&#160;<span class="comment">// in this case), and pass that as the 16-bit BPM argument.</span></div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;<span class="comment">// &quot;BPM88&quot; MUST always be specified in Q8.8 format.</span></div>
+<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;<span class="comment">// Originally designed to make an entire animation project pulse with brightness.</span></div>
+<div class="line"><a name="l00825"></a><span class="lineno"> 825</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="l00826"></a><span class="lineno"> 826</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;<span class="comment">// uint8_t bright = beatsin8( 60 /*BPM*/, 192 /*dimmest*/, 255 /*brightest*/ ));</span></div>
+<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;<span class="comment">// FastLED.setBrightness( bright );</span></div>
+<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;<span class="comment">// FastLED.show();</span></div>
+<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00831"></a><span class="lineno"> 831</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="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="l00833"></a><span class="lineno"> 833</span>&#160;</div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;<span class="comment">// The beat generators need access to a millisecond counter.</span></div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</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="l00836"></a><span class="lineno"> 836</span>&#160;<span class="comment">// need to provide a function with this signature:</span></div>
+<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;<span class="comment">// uint32_t get_millisecond_timer();</span></div>
+<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160;<span class="comment">// that provides similar functionality.</span></div>
+<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160;<span class="comment">// You can also force use of the get_millisecond_timer function</span></div>
+<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160;<span class="comment">// by #defining USE_GET_MILLISECOND_TIMER.</span></div>
+<div class="line"><a name="l00841"></a><span class="lineno"> 841</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="l00842"></a><span class="lineno"> 842</span>&#160;<span class="comment">// Forward declaration of Arduino function &#39;millis&#39;.</span></div>
+<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160;<span class="comment">//uint32_t millis();</span></div>
+<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;<span class="preprocessor">#define GET_MILLIS millis</span></div>
+<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;uint32_t get_millisecond_timer();</div>
+<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;<span class="preprocessor">#define GET_MILLIS get_millisecond_timer</span></div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160;</div>
+<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160;<span class="comment">// beat16 generates a 16-bit &#39;sawtooth&#39; wave at a given BPM,</span></div>
+<div class="line"><a name="l00855"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga1b48fc520db5f40910caf79974992395"> 855</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="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">// BPM is &#39;beats per minute&#39;, or &#39;beats per 60000ms&#39;.</span></div>
+<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <span class="comment">// To avoid using the (slower) division operator, we</span></div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</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="l00860"></a><span class="lineno"> 860</span>&#160; <span class="comment">// and then use a simple, fast bit-shift to divide by 65536.</span></div>
+<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l00862"></a><span class="lineno"> 862</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="l00863"></a><span class="lineno"> 863</span>&#160; <span class="comment">// The conversion is accurate to about 0.05%, more or less,</span></div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</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="l00865"></a><span class="lineno"> 865</span>&#160; <span class="keywordflow">return</span> (((GET_MILLIS()) - timebase) * beats_per_minute_88 * 280) &gt;&gt; 16;</div>
+<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160;}</div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160;</div>
+<div class="line"><a name="l00869"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gade6acbf6fd3c9d346148bccfcafb2fe2"> 869</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="l00870"></a><span class="lineno"> 870</span>&#160;{</div>
+<div class="line"><a name="l00871"></a><span class="lineno"> 871</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="l00872"></a><span class="lineno"> 872</span>&#160; <span class="keywordflow">if</span>( beats_per_minute &lt; 256) beats_per_minute &lt;&lt;= 8;</div>
+<div class="line"><a name="l00873"></a><span class="lineno"> 873</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="l00874"></a><span class="lineno"> 874</span>&#160;}</div>
+<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160;</div>
+<div class="line"><a name="l00877"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga12014943214a72eec31433d9682d4ebe"> 877</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="l00878"></a><span class="lineno"> 878</span>&#160;{</div>
+<div class="line"><a name="l00879"></a><span class="lineno"> 879</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="l00880"></a><span class="lineno"> 880</span>&#160;}</div>
+<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160;</div>
+<div class="line"><a name="l00888"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaf917825ff26c8e1174c5b674a2f3c631"> 888</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="l00889"></a><span class="lineno"> 889</span>&#160; uint32_t timebase = 0, uint16_t phase_offset = 0)</div>
+<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160;{</div>
+<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; uint16_t beat = <a class="code" href="group__lib8tion.html#ga1b48fc520db5f40910caf79974992395">beat88</a>( beats_per_minute_88, timebase);</div>
+<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; uint16_t beatsin = (sin16( beat + phase_offset) + 32768);</div>
+<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; uint16_t rangewidth = highest - lowest;</div>
+<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; uint16_t scaledbeat = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( beatsin, rangewidth);</div>
+<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; uint16_t result = lowest + scaledbeat;</div>
+<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; <span class="keywordflow">return</span> result;</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="l00901"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaa46e5de1c4c27833359e7a97a18c839b"> 901</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="l00902"></a><span class="lineno"> 902</span>&#160; uint32_t timebase = 0, uint16_t phase_offset = 0)</div>
+<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160;{</div>
+<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; uint16_t beat = <a class="code" href="group__lib8tion.html#gade6acbf6fd3c9d346148bccfcafb2fe2">beat16</a>( beats_per_minute, timebase);</div>
+<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; uint16_t beatsin = (sin16( beat + phase_offset) + 32768);</div>
+<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; uint16_t rangewidth = highest - lowest;</div>
+<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; uint16_t scaledbeat = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( beatsin, rangewidth);</div>
+<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; uint16_t result = lowest + scaledbeat;</div>
+<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <span class="keywordflow">return</span> result;</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="l00914"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaecd7cbfc2640407cabf75afcc7d9ddf4"> 914</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="l00915"></a><span class="lineno"> 915</span>&#160; uint32_t timebase = 0, uint8_t phase_offset = 0)</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; uint8_t beat = <a class="code" href="group__lib8tion.html#ga12014943214a72eec31433d9682d4ebe">beat8</a>( beats_per_minute, timebase);</div>
+<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; uint8_t beatsin = sin8( beat + phase_offset);</div>
+<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; uint8_t rangewidth = highest - lowest;</div>
+<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; uint8_t scaledbeat = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( beatsin, rangewidth);</div>
+<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; uint8_t result = lowest + scaledbeat;</div>
+<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <span class="keywordflow">return</span> result;</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#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 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#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; 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="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="l00925"></a><span class="lineno"> 925</span>&#160;</div>
+<div class="line"><a name="l00928"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaa2abcee2fe76fafd7f3a2aeab03e3b69"> 928</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#gaa2abcee2fe76fafd7f3a2aeab03e3b69">seconds16</a>()</div>
+<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160;{</div>
+<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; uint32_t ms = GET_MILLIS();</div>
+<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; uint16_t s16;</div>
+<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; s16 = ms / 1000;</div>
+<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; <span class="keywordflow">return</span> s16;</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;</div>
+<div class="line"><a name="l00938"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga223820399921e32ddf018a90223ff336"> 938</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#ga223820399921e32ddf018a90223ff336">minutes16</a>()</div>
+<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160;{</div>
+<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; uint32_t ms = GET_MILLIS();</div>
+<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; uint16_t m16;</div>
+<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; m16 = (ms / (60000L)) &amp; 0xFFFF;</div>
+<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; <span class="keywordflow">return</span> m16;</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="l00948"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga837f5a688998f3340994613944e47d41"> 948</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#ga837f5a688998f3340994613944e47d41">hours8</a>()</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; uint32_t ms = GET_MILLIS();</div>
+<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; uint8_t h8;</div>
+<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; h8 = (ms / (3600000L)) &amp; 0xFF;</div>
+<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <span class="keywordflow">return</span> h8;</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="l00956"></a><span class="lineno"> 956</span>&#160;</div>
+<div class="line"><a name="l00967"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga5f95d6e55b4986bd88f662528cef717e"> 967</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="l00968"></a><span class="lineno"> 968</span>&#160;{</div>
+<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; uint16_t out16;</div>
+<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160;<span class="preprocessor">#if defined(__AVR__)</span></div>
+<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span> (</div>
+<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; <span class="stringliteral">&quot; lsr %D[in] \n\t&quot;</span></div>
+<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; <span class="stringliteral">&quot; ror %C[in] \n\t&quot;</span></div>
+<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; <span class="stringliteral">&quot; ror %B[in] \n\t&quot;</span></div>
+<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; <span class="stringliteral">&quot; lsr %D[in] \n\t&quot;</span></div>
+<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; <span class="stringliteral">&quot; ror %C[in] \n\t&quot;</span></div>
+<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; <span class="stringliteral">&quot; ror %B[in] \n\t&quot;</span></div>
+<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; <span class="stringliteral">&quot; mov %B[out],%C[in] \n\t&quot;</span></div>
+<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; <span class="stringliteral">&quot; mov %A[out],%B[in] \n\t&quot;</span></div>
+<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; : [in] <span class="stringliteral">&quot;+r&quot;</span> (in32),</div>
+<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; [out] <span class="stringliteral">&quot;=r&quot;</span> (out16)</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;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; out16 = (in32 &gt;&gt; 10) &amp; 0xFFFF;</div>
+<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; <span class="keywordflow">return</span> out16;</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="l00992"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga52659d1994f2f21eb05080c97417e93b"> 992</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#ga52659d1994f2f21eb05080c97417e93b">bseconds16</a>()</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; uint32_t ms = GET_MILLIS();</div>
+<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; uint16_t s16;</div>
+<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; s16 = <a class="code" href="group__lib8tion.html#ga5f95d6e55b4986bd88f662528cef717e">div1024_32_16</a>( ms);</div>
+<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; <span class="keywordflow">return</span> s16;</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="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="l01000"></a><span class="lineno"> 1000</span>&#160;</div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</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="l01002"></a><span class="lineno"> 1002</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="l01003"></a><span class="lineno"> 1003</span>&#160;<span class="preprocessor">#if 1</span></div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;<span class="preprocessor">#define INSTANTIATE_EVERY_N_TIME_PERIODS(NAME,TIMETYPE,TIMEGETTER) \</span></div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;<span class="preprocessor">class NAME { \</span></div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;<span class="preprocessor">public: \</span></div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;<span class="preprocessor"> TIMETYPE mPrevTrigger; \</span></div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;<span class="preprocessor"> TIMETYPE mPeriod; \</span></div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;<span class="preprocessor"> \</span></div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;<span class="preprocessor"> NAME() { reset(); mPeriod = 1; }; \</span></div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;<span class="preprocessor"> NAME(TIMETYPE period) { reset(); setPeriod(period); }; \</span></div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;<span class="preprocessor"> void setPeriod( TIMETYPE period) { mPeriod = period; }; \</span></div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;<span class="preprocessor"> TIMETYPE getTime() { return (TIMETYPE)(TIMEGETTER()); }; \</span></div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;<span class="preprocessor"> TIMETYPE getPeriod() { return mPeriod; }; \</span></div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;<span class="preprocessor"> TIMETYPE getElapsed() { return getTime() - mPrevTrigger; } \</span></div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;<span class="preprocessor"> TIMETYPE getRemaining() { return mPeriod - getElapsed(); } \</span></div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;<span class="preprocessor"> TIMETYPE getLastTriggerTime() { return mPrevTrigger; } \</span></div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;<span class="preprocessor"> bool ready() { \</span></div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;<span class="preprocessor"> bool isReady = (getElapsed() &gt;= mPeriod); \</span></div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;<span class="preprocessor"> if( isReady ) { reset(); } \</span></div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;<span class="preprocessor"> return isReady; \</span></div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;<span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;<span class="preprocessor"> void reset() { mPrevTrigger = getTime(); }; \</span></div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;<span class="preprocessor"> void trigger() { mPrevTrigger = getTime() - mPeriod; }; \</span></div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;<span class="preprocessor"> \</span></div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;<span class="preprocessor"> operator bool() { return ready(); } \</span></div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;<span class="preprocessor">};</span></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">CEveryNMillis</a>,uint32_t,GET_MILLIS);</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">CEveryNSeconds</a>,uint16_t,<a class="code" href="group__lib8tion.html#gaa2abcee2fe76fafd7f3a2aeab03e3b69">seconds16</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">CEveryNBSeconds</a>,uint16_t,<a class="code" href="group__lib8tion.html#ga52659d1994f2f21eb05080c97417e93b">bseconds16</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">CEveryNMinutes</a>,uint16_t,<a class="code" href="group__lib8tion.html#ga223820399921e32ddf018a90223ff336">minutes16</a>);</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</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="l01033"></a><span class="lineno"> 1033</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;</div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;<span class="comment">// Under C++11 rules, we would be allowed to use not-external</span></div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;<span class="comment">// -linkage-type symbols as template arguments,</span></div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</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="l01038"></a><span class="lineno"> 1038</span>&#160;<span class="comment">// templates as shown below.</span></div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;<span class="comment">// However, under C++03 rules, we cannot do that, and thus we</span></div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</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="l01041"></a><span class="lineno"> 1041</span>&#160;<span class="comment">// as handled above.</span></div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> timeType,timeType (*timeGetter)()&gt;</div>
+<div class="line"><a name="l01043"></a><span class="lineno"><a class="line" href="class_c_every_n_time_periods.html"> 1043</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="l01044"></a><span class="lineno"> 1044</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; timeType mPrevTrigger;</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; timeType mPeriod;</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_every_n_time_periods.html">CEveryNTimePeriods</a>() { reset(); mPeriod = 1; };</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</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="l01050"></a><span class="lineno"> 1050</span>&#160; <span class="keywordtype">void</span> setPeriod( timeType period) { mPeriod = period; };</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; timeType getTime() { <span class="keywordflow">return</span> (timeType)(timeGetter()); };</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; timeType getPeriod() { <span class="keywordflow">return</span> mPeriod; };</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; timeType getElapsed() { <span class="keywordflow">return</span> getTime() - mPrevTrigger; }</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; timeType getRemaining() { <span class="keywordflow">return</span> mPeriod - getElapsed(); }</div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; timeType getLastTriggerTime() { <span class="keywordflow">return</span> mPrevTrigger; }</div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; <span class="keywordtype">bool</span> ready() {</div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; <span class="keywordtype">bool</span> isReady = (getElapsed() &gt;= mPeriod);</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; <span class="keywordflow">if</span>( isReady ) { reset(); }</div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; <span class="keywordflow">return</span> isReady;</div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; }</div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; <span class="keywordtype">void</span> reset() { mPrevTrigger = getTime(); };</div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; <span class="keywordtype">void</span> trigger() { mPrevTrigger = getTime() - mPeriod; };</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; <span class="keyword">operator</span> bool() { <span class="keywordflow">return</span> ready(); }</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;<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="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;uint16_t,bseconds16&gt;</a> <a class="code" href="class_c_every_n_time_periods.html">CEveryNBSeconds</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;uint32_t,millis&gt;</a> <a class="code" href="class_c_every_n_time_periods.html">CEveryNMillis</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;uint16_t,minutes16&gt;</a> <a class="code" href="class_c_every_n_time_periods.html">CEveryNMinutes</a>;</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</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="l01071"></a><span class="lineno"> 1071</span>&#160;<span class="preprocessor">#endif</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;<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#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#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#l00711">lib8tion.h:711</a></div></div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;<span class="preprocessor">#define CONCAT_HELPER( x, y ) x##y</span></div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;<span class="preprocessor">#define CONCAT_MACRO( x, y ) CONCAT_HELPER( x, y )</span></div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</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="l01077"></a><span class="lineno"> 1077</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="l01078"></a><span class="lineno"> 1078</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="l01079"></a><span class="lineno"> 1079</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="l01080"></a><span class="lineno"> 1080</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="l01081"></a><span class="lineno"> 1081</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="l01082"></a><span class="lineno"> 1082</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="l01083"></a><span class="lineno"> 1083</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="l01084"></a><span class="lineno"> 1084</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="l01085"></a><span class="lineno"> 1085</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="l01086"></a><span class="lineno"> 1086</span>&#160;</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;<span class="preprocessor">#define CEveryNMilliseconds CEveryNMillis</span></div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;<span class="preprocessor">#define EVERY_N_MILLISECONDS(N) EVERY_N_MILLIS(N)</span></div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</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="l01090"></a><span class="lineno"> 1090</span>&#160;</div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;FASTLED_NAMESPACE_END</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;<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#l00948">lib8tion.h:948</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#l00491">lib8tion.h:491</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#l00869">lib8tion.h:869</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#l00355">lib8tion.h:355</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#l00573">lib8tion.h:573</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#l00356">lib8tion.h:356</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#l00938">lib8tion.h:938</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#l00457">lib8tion.h:457</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#l00343">lib8tion.h:343</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#l00474">lib8tion.h:474</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#l00354">lib8tion.h:354</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#l00363">lib8tion.h:363</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#l00347">lib8tion.h:347</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#l00901">lib8tion.h:901</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#l00782">lib8tion.h:782</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#l00525">lib8tion.h:525</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#l00359">lib8tion.h:359</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#l00456">scale8.h:456</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#l00414">lib8tion.h:414</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#l00928">lib8tion.h:928</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#l00358">lib8tion.h:358</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#l00992">lib8tion.h:992</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#l00784">lib8tion.h:784</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#l00705">lib8tion.h:705</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#l01043">lib8tion.h:1043</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#l00335">lib8tion.h:335</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#l00778">lib8tion.h:778</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#l00888">lib8tion.h:888</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#l00712">lib8tion.h:712</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__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#l00855">lib8tion.h:855</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#l00619">lib8tion.h:619</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#l00339">lib8tion.h:339</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#l00590">lib8tion.h:590</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#l00877">lib8tion.h:877</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 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#l00684">lib8tion.h:684</a></div></div>
+<div class="ttc" id="group___scaling_html_gaa51d5b048c2a4a20a00bddcdc257daaf"><div class="ttname"><a href="group___scaling.html#gaa51d5b048c2a4a20a00bddcdc257daaf">scale16by8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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#l00416">scale8.h:416</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#l00914">lib8tion.h:914</a></div></div>
+<div class="ttc" id="group___scaling_html_gad7535ccda9c92470c4e6ee0265585555"><div class="ttname"><a href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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__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#l00741">lib8tion.h:741</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#l00508">lib8tion.h:508</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#l00780">lib8tion.h:780</a></div></div>
+<div class="ttc" id="group___scaling_html_ga7386235cada3aca429b189681d2ec56d"><div class="ttname"><a href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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#l00146">scale8.h:146</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#l00754">lib8tion.h:754</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#l00557">lib8tion.h:557</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#l00357">lib8tion.h:357</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#l00967">lib8tion.h:967</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#l00405">lib8tion.h:405</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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 d382434a..a46e4576 100644
--- a/docs/3.1/math8_8h_source.html
+++ b/docs/3.1/math8_8h_source.html
@@ -115,7 +115,7 @@ $(document).ready(function(){initNavTree('math8_8h_source.html','');});
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</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;</div>
-<div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f"> 21</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( uint8_t i, uint8_t j)</div>
+<div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="group___math.html#ga07133b3085824d0fcd4f5086d286c4b5"> 21</a></span>&#160;LIB8STATIC_ALWAYS_INLINE uint8_t <a class="code" href="group___math.html#ga07133b3085824d0fcd4f5086d286c4b5">qadd8</a>( uint8_t i, uint8_t j)</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">#if QADD8_C == 1</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> t = i + j;</div>
@@ -144,7 +144,7 @@ $(document).ready(function(){initNavTree('math8_8h_source.html','');});
<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;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="group___math.html#gadf60ccff727f52078aecdd5873b6f0bc"> 54</a></span>&#160;LIB8STATIC int8_t <a class="code" href="group___math.html#gadf60ccff727f52078aecdd5873b6f0bc">qadd7</a>( int8_t i, int8_t j)</div>
+<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="group___math.html#ga622205a211419db7dd1f582923aec68d"> 54</a></span>&#160;LIB8STATIC_ALWAYS_INLINE int8_t <a class="code" href="group___math.html#ga622205a211419db7dd1f582923aec68d">qadd7</a>( int8_t i, int8_t j)</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#if QADD7_C == 1</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; int16_t t = i + j;</div>
@@ -174,7 +174,7 @@ $(document).ready(function(){initNavTree('math8_8h_source.html','');});
<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;}</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="group___math.html#gaaaa16f47aca46653d51793b1af177587"> 86</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( uint8_t i, uint8_t j)</div>
+<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3"> 86</a></span>&#160;LIB8STATIC_ALWAYS_INLINE uint8_t <a class="code" href="group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3">qsub8</a>( uint8_t i, uint8_t j)</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;{</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#if QSUB8_C == 1</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordtype">int</span> t = i - j;</div>
@@ -202,7 +202,7 @@ $(document).ready(function(){initNavTree('math8_8h_source.html','');});
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor">#endif</span></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="l00115"></a><span class="lineno"><a class="line" href="group___math.html#ga9f1f93145ca1955562b7f50f5db96ac1"> 115</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___math.html#ga9f1f93145ca1955562b7f50f5db96ac1">add8</a>( uint8_t i, uint8_t j)</div>
+<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="group___math.html#ga703ea9255d0701cc154e110ae00dea04"> 115</a></span>&#160;LIB8STATIC_ALWAYS_INLINE uint8_t <a class="code" href="group___math.html#ga703ea9255d0701cc154e110ae00dea04">add8</a>( uint8_t i, uint8_t j)</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">#if ADD8_C == 1</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordtype">int</span> t = i + j;</div>
@@ -217,7 +217,7 @@ $(document).ready(function(){initNavTree('math8_8h_source.html','');});
<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="l00131"></a><span class="lineno"><a class="line" href="group___math.html#ga0c40c15ab5af36ddabded161941f2091"> 131</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___math.html#ga0c40c15ab5af36ddabded161941f2091">sub8</a>( uint8_t i, uint8_t j)</div>
+<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="group___math.html#gad2d87829a6327876eed4482aa515dfa9"> 131</a></span>&#160;LIB8STATIC_ALWAYS_INLINE uint8_t <a class="code" href="group___math.html#gad2d87829a6327876eed4482aa515dfa9">sub8</a>( uint8_t i, uint8_t j)</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 SUB8_C == 1</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordtype">int</span> t = i - j;</div>
@@ -231,7 +231,7 @@ $(document).ready(function(){initNavTree('math8_8h_source.html','');});
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="preprocessor">#endif</span></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="l00148"></a><span class="lineno"><a class="line" href="group___math.html#ga6bfedf0473d4c3705e8feeb6a25b9ea5"> 148</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___math.html#ga6bfedf0473d4c3705e8feeb6a25b9ea5">avg8</a>( uint8_t i, uint8_t j)</div>
+<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="group___math.html#ga624651f796f4cf0755c8cbdb794e41d9"> 148</a></span>&#160;LIB8STATIC_ALWAYS_INLINE uint8_t <a class="code" href="group___math.html#ga624651f796f4cf0755c8cbdb794e41d9">avg8</a>( uint8_t i, uint8_t j)</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="preprocessor">#if AVG8_C == 1</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> (i + j) &gt;&gt; 1;</div>
@@ -249,7 +249,7 @@ $(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="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="l00169"></a><span class="lineno"><a class="line" href="group___math.html#ga1f46842559931ff842c8f9a310174a3a"> 169</a></span>&#160;LIB8STATIC_ALWAYS_INLINE uint16_t <a class="code" href="group___math.html#ga1f46842559931ff842c8f9a310174a3a">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>
@@ -272,7 +272,7 @@ $(document).ready(function(){initNavTree('math8_8h_source.html','');});
<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="l00196"></a><span class="lineno"><a class="line" href="group___math.html#gad7af6a5b49aef34ab79e850ddb7d7911"> 196</a></span>&#160;LIB8STATIC_ALWAYS_INLINE int8_t <a class="code" href="group___math.html#gad7af6a5b49aef34ab79e850ddb7d7911">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 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>
@@ -289,7 +289,7 @@ $(document).ready(function(){initNavTree('math8_8h_source.html','');});
<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="l00217"></a><span class="lineno"><a class="line" href="group___math.html#ga2ad60cb8a09e6aab6d63f1a0930bee09"> 217</a></span>&#160;LIB8STATIC_ALWAYS_INLINE int16_t <a class="code" href="group___math.html#ga2ad60cb8a09e6aab6d63f1a0930bee09">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>
@@ -313,7 +313,7 @@ $(document).ready(function(){initNavTree('math8_8h_source.html','');});
<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="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="l00249"></a><span class="lineno"><a class="line" href="group___math.html#gaa3beb6c31141a13c1a047b926d065ca2"> 249</a></span>&#160;LIB8STATIC_ALWAYS_INLINE uint8_t <a class="code" href="group___math.html#gaa3beb6c31141a13c1a047b926d065ca2">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>
@@ -347,7 +347,7 @@ $(document).ready(function(){initNavTree('math8_8h_source.html','');});
<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="l00295"></a><span class="lineno"><a class="line" href="group___math.html#gaf170916b55c493ea038c1d96b338e059"> 295</a></span>&#160;LIB8STATIC_ALWAYS_INLINE uint8_t <a class="code" href="group___math.html#gaf170916b55c493ea038c1d96b338e059">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>
@@ -370,7 +370,7 @@ $(document).ready(function(){initNavTree('math8_8h_source.html','');});
<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="l00320"></a><span class="lineno"><a class="line" href="group___math.html#ga17d0d692de142f4d4379b8cc899eaefb"> 320</a></span>&#160;LIB8STATIC_ALWAYS_INLINE uint8_t <a class="code" href="group___math.html#ga17d0d692de142f4d4379b8cc899eaefb">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>
@@ -403,7 +403,7 @@ $(document).ready(function(){initNavTree('math8_8h_source.html','');});
<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="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="l00354"></a><span class="lineno"><a class="line" href="group___math.html#ga162169ac0c2d1f3d01eaff8f32e1b415"> 354</a></span>&#160;LIB8STATIC_ALWAYS_INLINE int8_t <a class="code" href="group___math.html#ga162169ac0c2d1f3d01eaff8f32e1b415">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>
@@ -456,28 +456,28 @@ $(document).ready(function(){initNavTree('math8_8h_source.html','');});
<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_gaf170916b55c493ea038c1d96b338e059"><div class="ttname"><a href="group___math.html#gaf170916b55c493ea038c1d96b338e059">mul8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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_gad2d87829a6327876eed4482aa515dfa9"><div class="ttname"><a href="group___math.html#gad2d87829a6327876eed4482aa515dfa9">sub8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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_gae261576a4c8155d6c0ba8615b2d2ecb3"><div class="ttname"><a href="group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3">qsub8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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_ga624651f796f4cf0755c8cbdb794e41d9"><div class="ttname"><a href="group___math.html#ga624651f796f4cf0755c8cbdb794e41d9">avg8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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_ga17d0d692de142f4d4379b8cc899eaefb"><div class="ttname"><a href="group___math.html#ga17d0d692de142f4d4379b8cc899eaefb">qmul8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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_ga2ad60cb8a09e6aab6d63f1a0930bee09"><div class="ttname"><a href="group___math.html#ga2ad60cb8a09e6aab6d63f1a0930bee09">avg15</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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_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#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#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#l00295">math8.h:295</a></div></div>
+<div class="ttc" id="group___math_html_ga622205a211419db7dd1f582923aec68d"><div class="ttname"><a href="group___math.html#ga622205a211419db7dd1f582923aec68d">qadd7</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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 class="ttc" id="group___math_html_ga162169ac0c2d1f3d01eaff8f32e1b415"><div class="ttname"><a href="group___math.html#ga162169ac0c2d1f3d01eaff8f32e1b415">abs8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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_gad7af6a5b49aef34ab79e850ddb7d7911"><div class="ttname"><a href="group___math.html#gad7af6a5b49aef34ab79e850ddb7d7911">avg7</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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_gaa3beb6c31141a13c1a047b926d065ca2"><div class="ttname"><a href="group___math.html#gaa3beb6c31141a13c1a047b926d065ca2">mod8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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_ga1f46842559931ff842c8f9a310174a3a"><div class="ttname"><a href="group___math.html#ga1f46842559931ff842c8f9a310174a3a">avg16</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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_ga07133b3085824d0fcd4f5086d286c4b5"><div class="ttname"><a href="group___math.html#ga07133b3085824d0fcd4f5086d286c4b5">qadd8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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_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 class="ttc" id="group___math_html_ga703ea9255d0701cc154e110ae00dea04"><div class="ttname"><a href="group___math.html#ga703ea9255d0701cc154e110ae00dea04">add8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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><!-- 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>math8.h</b></li>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 bcd53054..f20029ee 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 c93409fd..293fa33e 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
@@ -168,7 +168,7 @@ void loop() {
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 0d8bd0e0..ab2270ed 100644
--- a/docs/3.1/md_release_notes.html
+++ b/docs/3.1/md_release_notes.html
@@ -110,6 +110,7 @@ $(document).ready(function(){initNavTree('md_release_notes.html','');});
<li>Improvements to rgb2hsv accuracy</li>
<li>Fixed noise discontinuity</li>
<li>Add wino board support</li>
+<li>Fix scale8 (so now, scale8(255,255) == 255, not 254!)</li>
</ul>
<h1>FastLED3.1.1 </h1>
<ul>
@@ -270,7 +271,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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 f6b44758..b6301b57 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 6bff6eb4..ee30c764 100644
--- a/docs/3.1/navtreedata.js
+++ b/docs/3.1/navtreedata.js
@@ -32,10 +32,10 @@ var NAVTREE =
var NAVTREEINDEX =
[
"_fast_l_e_d_8cpp_source.html",
-"class_c_pixel_view.html#afe3500651fc4eb5770aeb01728aa0a1e",
-"class_t_m1829_controller800_khz.html",
-"group___noise.html#gaa521ccca6038d7b5e881fe2e8f35d3bc",
-"md_release_notes.html"
+"class_c_pixel_view.html#af98febdccd4f7f18afbfbb0abfb4413d",
+"class_t_m1809.html",
+"group___math.html#gaa3beb6c31141a13c1a047b926d065ca2",
+"group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5"
];
var SYNCONMSG = 'click to disable panel synchronisation';
diff --git a/docs/3.1/navtreeindex0.js b/docs/3.1/navtreeindex0.js
index f297930e..74241aae 100644
--- a/docs/3.1/navtreeindex0.js
+++ b/docs/3.1/navtreeindex0.js
@@ -18,15 +18,20 @@ var NAVTREEINDEX0 =
"_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#adcf22542128a12d8c3c304777422c7cca133d6dc3225ca299a492d7017e723927":[6,0,12,26,9],
+"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca1d2ab9b2bb2985fb877371be83773f7b":[6,0,12,26,12],
+"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca2c5f26c9459dd07fa1694cd23bc2963f":[6,0,12,26,7],
+"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca343e7d7baa263ab8cc0de7c628b3952a":[6,0,12,26,8],
"_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#adcf22542128a12d8c3c304777422c7cca4c08d6e7c60ed66ee9f91d5eb9692ac7":[6,0,12,26,2],
+"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca63e38749845ba1f5ca0ac78eba46e768":[6,0,12,26,6],
+"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca7340313aebbca22bd20a85a4255cb521":[6,0,12,26,10],
+"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca761693d3688d51ca70f4d03180c707bd":[6,0,12,26,4],
+"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca943fb4be631f1432c13e09b7e41e72c6":[6,0,12,26,11],
+"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7ccaac7596c20850a4fca6ef5f2d77f6b2b4":[6,0,12,26,14],
+"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7ccabd56ee06e4f5bb956bedee08d951f5b0":[6,0,12,26,3],
+"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7ccad006a676a09197f25abb18f0dd3980b2":[6,0,12,26,5],
+"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7ccad5e8729d5e8682741a2b4d806501d7c3":[6,0,12,26,13],
"_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],
@@ -244,10 +249,5 @@ var NAVTREEINDEX0 =
"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]
+"class_c_pixel_view.html#af3254e14aaccb1e8b38272ddeb6d8013":[5,0,13,7]
};
diff --git a/docs/3.1/navtreeindex1.js b/docs/3.1/navtreeindex1.js
index 6be74ace..158b230b 100644
--- a/docs/3.1/navtreeindex1.js
+++ b/docs/3.1/navtreeindex1.js
@@ -1,5 +1,10 @@
var NAVTREEINDEX1 =
{
+"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],
"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],
@@ -184,24 +189,24 @@ var NAVTREEINDEX1 =
"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#a8453327e641cbdc1413d0f5acf9d5195":[5,0,40,17],
"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#a92a7f23de99162c63611556e346b1fcc":[5,0,40,14],
"class_pin.html#aa0565bfc99cf3df826420f89304a7937":[5,0,40,3],
-"class_pin.html#aafa819baff64cf2a594a53fbff947f3e":[5,0,40,37],
+"class_pin.html#aa0565bfc99cf3df826420f89304a7937":[5,0,40,2],
"class_pin.html#aafa819baff64cf2a594a53fbff947f3e":[5,0,40,38],
+"class_pin.html#aafa819baff64cf2a594a53fbff947f3e":[5,0,40,37],
"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#abf184984e35f57f6f7f722736095f658":[5,0,40,22],
"class_pin.html#abf67a98d2bca9b9d27a3c24b8cc1a58b":[5,0,40,31],
+"class_pin.html#abf67a98d2bca9b9d27a3c24b8cc1a58b":[5,0,40,30],
"class_pin.html#acd4ade93d8a5831ea021e0fff857aad5":[5,0,40,4],
"class_pin.html#acd4ade93d8a5831ea021e0fff857aad5":[5,0,40,5],
"class_pin.html#ad3b2ecbaab2e22b18da807c7c5aa147a":[5,0,40,8],
@@ -244,10 +249,5 @@ var NAVTREEINDEX1 =
"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]
+"class_t_m1804.html":[5,0,66]
};
diff --git a/docs/3.1/navtreeindex2.js b/docs/3.1/navtreeindex2.js
index 72e8d8a4..c80fcfbf 100644
--- a/docs/3.1/navtreeindex2.js
+++ b/docs/3.1/navtreeindex2.js
@@ -1,5 +1,10 @@
var NAVTREEINDEX2 =
{
+"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],
"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],
@@ -76,29 +81,29 @@ var NAVTREEINDEX2 =
"group___bitswap.html#ga01396a2e40133293c3badab349ac99f0":[4,0,3],
"group___bitswap.html#ga01396a2e40133293c3badab349ac99f0":[6,0,1,0],
"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#ga251e9e8dc2c7b981786b71706522b2a9":[4,3,0],
"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":[6,0,3,0,2],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a631a1e96b10db9220ab27d70a320ac48":[4,3,0,1],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a631a1e96b10db9220ab27d70a320ac48":[4,3,8],
-"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a631a1e96b10db9220ab27d70a320ac48":[6,0,3,0,2],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a677f1d00c77b396f7a90e87166fc239a":[6,0,3,0,18],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a690a5050fdfa17da8d74b903c4098f72":[6,0,3,0,12],
+"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a890e0555ad95071fa4391a5775a38621":[6,0,3,0,6],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a890e0555ad95071fa4391a5775a38621":[4,3,0,5],
"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":[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],
+"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9aa9dab8ea30eb2a41c48956480b7014d1":[6,0,3,0,4],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9aa9dab8ea30eb2a41c48956480b7014d1":[4,3,0,3],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9aa9dab8ea30eb2a41c48956480b7014d1":[4,3,2],
-"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9aa9dab8ea30eb2a41c48956480b7014d1":[6,0,3,0,4],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9abfb2193168a3c15178665eb6b91568ef":[6,0,3,0,10],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ac9a2b02351fcc9ad08ef4e2748530e76":[4,3,0,4],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ac9a2b02351fcc9ad08ef4e2748530e76":[4,3,6],
@@ -110,26 +115,26 @@ var NAVTREEINDEX2 =
"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":[6,0,3,0,19],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae3d35275ab8c374612bcfbcce732b39f":[4,3,0,8],
+"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae3d35275ab8c374612bcfbcce732b39f":[6,0,3,0,19],
+"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae5ec76aa869b51e645e9f226dfee4b79":[6,0,3,0,3],
"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],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9af701ac952fdfe6554127017a38af791b":[6,0,3,0,13],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9afd80de5fdb01de99f8844addb6bf70a0":[6,0,3,0,15],
"group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8a42a6cb156c43caf5b256bc931a5d05ca":[6,0,3,1,3],
"group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8abb6d30d01c054f65ed9c5a52c2855534":[6,0,3,1,1],
-"group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8ac52fe8e181ff3c39128664fba835eae3":[4,3,1,0],
"group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8ac52fe8e181ff3c39128664fba835eae3":[6,0,3,1,0],
-"group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8af617057397c2a4f89b4bf2783cdac24b":[4,3,1,1],
+"group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8ac52fe8e181ff3c39128664fba835eae3":[4,3,1,0],
"group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8af617057397c2a4f89b4bf2783cdac24b":[6,0,3,1,2],
+"group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8af617057397c2a4f89b4bf2783cdac24b":[4,3,1,1],
"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":[6,0,5,1],
"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#ga0402dc727d6a118cf426da017ff42152":[6,0,7,9],
"group___colorutils.html#ga097bfc6a8459d95e8afa8a16b9e6476a":[6,0,7,11],
@@ -138,53 +143,69 @@ var NAVTREEINDEX2 =
"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":[4,4,15],
"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#ga396996c5e505e459b418330f4386f779":[4,4,18],
"group___colorutils.html#ga39c1068518d7697230930504e57c4d91":[6,0,7,13],
+"group___colorutils.html#ga3a46ed6b7043382df172d7501785033c":[4,4,17],
"group___colorutils.html#ga3a46ed6b7043382df172d7501785033c":[6,0,7,38],
"group___colorutils.html#ga3ce4f8424098c820a739f95cf86d7663":[6,0,7,8],
+"group___colorutils.html#ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b":[4,4,11],
"group___colorutils.html#ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b":[6,0,7,22],
"group___colorutils.html#ga404d163d8a422cee2df2baac4151ca98":[6,0,7,34],
+"group___colorutils.html#ga404d163d8a422cee2df2baac4151ca98":[4,4,13],
"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#ga4f06b4423f71f77346aaf5dabe7dd05c":[4,4,7],
"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":[4,4,26],
"group___colorutils.html#ga63e89e8505c65e973218d1638dda3b04":[6,0,7,57],
"group___colorutils.html#ga68d7c7a5522fb7aa113e50351bd620d4":[6,0,7,3],
"group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88":[6,0,7,40],
+"group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88":[4,4,19],
"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":[4,4,28],
"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":[4,4,25],
"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#gaacf0416f9e0438f23f92d0df6c338ea3":[4,4,9],
"group___colorutils.html#gab247fdb68a0ed37779c7bc11b83f6f8a":[6,0,7,65],
"group___colorutils.html#gabea64e23b31132c325ea0c1fef0d3f13":[6,0,7,17],
+"group___colorutils.html#gabea64e23b31132c325ea0c1fef0d3f13":[4,4,8],
"group___colorutils.html#gac020b03041306ed9c859bbdfebe943cf":[6,0,7,31],
+"group___colorutils.html#gac1e25878d16efa6112d907738f525773":[4,4,12],
"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#gac3052a230febda0693517ce9d12aa452":[4,4,21],
"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#gac5c6b83ec07d310385a430f9f0336530":[4,4,24],
+"group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b":[4,4,22],
"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#gacb40363ff285a5d816a1cf3096e27c14":[4,4,10],
+"group___colorutils.html#gace693b077794f9b6aa80875fdd550a68":[4,4,16],
"group___colorutils.html#gace693b077794f9b6aa80875fdd550a68":[6,0,7,37],
+"group___colorutils.html#gad0356fc313196732e7cd4e64f506f82b":[4,4,27],
"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":[4,4,23],
"group___colorutils.html#gad1abf13328e8dd1c483a270af77b17ed":[6,0,7,48],
"group___colorutils.html#gad6431776a18268d286d146158e25cb36":[6,0,7,44],
"group___colorutils.html#gad6e2224119d7df0c7f6fffd6b603bb27":[6,0,7,56],
@@ -193,6 +214,7 @@ var NAVTREEINDEX2 =
"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#gae8c0a05b75034b4a2cae20ddc70ec15f":[4,4,14],
"group___colorutils.html#gae97f9574ca4fa1a7ab65782b2a804fba":[6,0,7,20],
"group___colorutils.html#gaea18108bf50282f20a0ecd4213b5ac8c":[6,0,7,62],
"group___colorutils.html#gaea6bd3ab3ec62d88e2dcc7ab2486dcd4":[6,0,7,29],
@@ -200,7 +222,7 @@ var NAVTREEINDEX2 =
"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":[4,4,20],
"group___colorutils.html#gafcc7dac88e25736ebc49a9faf2a1c2e2":[6,0,7,45],
"group___colorutils.html#gafdfc20fbf9b8e4b71e010a654ec27891":[6,0,7,26],
"group___colorutils.html#gaff656b0046fac0d40b8eb02941ce1755":[6,0,7,32],
@@ -218,36 +240,14 @@ 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,14],
-"group___math.html#ga10181a03cf8b8428fc524aa78e7fbf7f":[4,6,0,8],
+"group___math.html#ga07133b3085824d0fcd4f5086d286c4b5":[4,6,0,10],
+"group___math.html#ga162169ac0c2d1f3d01eaff8f32e1b415":[4,6,0,0],
+"group___math.html#ga17d0d692de142f4d4379b8cc899eaefb":[4,6,0,11],
+"group___math.html#ga1f46842559931ff842c8f9a310174a3a":[4,6,0,4],
+"group___math.html#ga2ad60cb8a09e6aab6d63f1a0930bee09":[4,6,0,3],
"group___math.html#ga2bcd51c47538dbc933999382e272a7a7":[4,6,0,2],
-"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#ga5873ff4e986c61d72cb291709190ed25":[4,6,0,3],
+"group___math.html#ga622205a211419db7dd1f582923aec68d":[4,6,0,9],
+"group___math.html#ga624651f796f4cf0755c8cbdb794e41d9":[4,6,0,6],
"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,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#ga6c57ed3ea69e819c29602578ecbabd71":[6,0,29,19],
-"group___noise.html#ga6fcc17e60eac4b9dbb620f7e354177f1":[6,0,29,1],
-"group___noise.html#ga714a0f305e385a60d81a40d1f98b53fc":[6,0,29,0],
-"group___noise.html#ga7731d44b05067579cf4861f0a449f257":[6,0,29,6],
-"group___noise.html#ga77c11f2f9fea19661e8eaa04cf9a4155":[6,0,29,14],
-"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___math.html#ga703ea9255d0701cc154e110ae00dea04":[4,6,0,1]
};
diff --git a/docs/3.1/navtreeindex3.js b/docs/3.1/navtreeindex3.js
index 4bbcb5be..c5766e59 100644
--- a/docs/3.1/navtreeindex3.js
+++ b/docs/3.1/navtreeindex3.js
@@ -1,5 +1,27 @@
var NAVTREEINDEX3 =
{
+"group___math.html#gaa3beb6c31141a13c1a047b926d065ca2":[4,6,0,7],
+"group___math.html#gad2d87829a6327876eed4482aa515dfa9":[4,6,0,14],
+"group___math.html#gad7af6a5b49aef34ab79e850ddb7d7911":[4,6,0,5],
+"group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3":[4,6,0,12],
+"group___math.html#gaf170916b55c493ea038c1d96b338e059":[4,6,0,8],
+"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#ga6c57ed3ea69e819c29602578ecbabd71":[6,0,29,19],
+"group___noise.html#ga6fcc17e60eac4b9dbb620f7e354177f1":[6,0,29,1],
+"group___noise.html#ga714a0f305e385a60d81a40d1f98b53fc":[6,0,29,0],
+"group___noise.html#ga7731d44b05067579cf4861f0a449f257":[6,0,29,6],
+"group___noise.html#ga77c11f2f9fea19661e8eaa04cf9a4155":[6,0,29,14],
+"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],
@@ -10,11 +32,11 @@ var NAVTREEINDEX3 =
"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#gad47d9c821aeaaa0123d125a18ff961d5":[6,0,14,2],
+"group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5":[4,1,4],
"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],
@@ -178,19 +200,19 @@ var NAVTREEINDEX3 =
"group___random.html#ga860bc64bfca4ada980e70cf1e03dedd8":[4,6,1,4],
"group___random.html#ga95e371c2438843e0ed1ed83412b28c99":[4,6,1,5],
"group___scaling.html":[4,6,3],
+"group___scaling.html#ga025b1e8d81032d15fe1ab500f804f3f2":[4,6,3,1],
"group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145":[4,6,3,7],
-"group___scaling.html#ga2a580fcaa010558218faae95d1936635":[4,6,3,2],
-"group___scaling.html#ga333095ffa436c94d3e77ee9dc39da1c1":[4,6,3,11],
-"group___scaling.html#ga39579fcf09743f15545fe0b831ca313c":[4,6,3,10],
"group___scaling.html#ga39bf87e5526120889086cab19ac749b1":[4,6,3,5],
+"group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79":[4,6,3,0],
"group___scaling.html#ga4204edd4a3f8aac7124a10f1f5cfccfe":[4,6,3,4],
-"group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9":[4,6,3,0],
-"group___scaling.html#ga5f6dde3d9398f4b389c96e759a3f7b80":[4,6,3,1],
-"group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af":[4,6,3,9],
+"group___scaling.html#ga628b417ea1507e3447cdf5f308d9b6d5":[4,6,3,11],
"group___scaling.html#ga6f419761a744efed4bae8875ac07aef0":[4,6,3,3],
"group___scaling.html#ga700b7f510f32e8c91385093c436c27d9":[4,6,3,6],
-"group___scaling.html#gab341cef8d46232269bb70092fed9eb75":[4,6,3,12],
-"group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e":[4,6,3,8],
+"group___scaling.html#ga7386235cada3aca429b189681d2ec56d":[4,6,3,10],
+"group___scaling.html#gaa51d5b048c2a4a20a00bddcdc257daaf":[4,6,3,8],
+"group___scaling.html#gad7535ccda9c92470c4e6ee0265585555":[4,6,3,9],
+"group___scaling.html#gadfd26d9b154f5ec79dbffe612dafd146":[4,6,3,2],
+"group___scaling.html#gaf8e0821f34434cd6bfed4a16a895da23":[4,6,3,12],
"group___trig.html":[4,6,2],
"group___trig.html#ga056952ebed39f55880bb353857b47075":[4,6,2,0],
"group___trig.html#ga0890962cb06b267617f4b06d7e9be5eb":[4,6,2,3],
@@ -227,27 +249,5 @@ var NAVTREEINDEX3 =
"group__lib8tion.html#gaa2abcee2fe76fafd7f3a2aeab03e3b69":[4,6,43],
"group__lib8tion.html#gaa2facbc0ec935e34c629aef43d6262c0":[4,6,33],
"group__lib8tion.html#gaa46e5de1c4c27833359e7a97a18c839b":[4,6,24],
-"group__lib8tion.html#gaacea0eaea98a065dfa08bb1c147c52a1":[4,6,36],
-"group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5":[4,6,10],
-"group__lib8tion.html#gab947c1150e3b9056cb91685a14270173":[4,6,44],
-"group__lib8tion.html#gad2dad84f67c8a4cc6d4c92e2c7d3e89f":[4,6,17],
-"group__lib8tion.html#gad4b09aba4e188e14d3e71d1c9f77f1a5":[4,6,35],
-"group__lib8tion.html#gad5dca0e1248b916799dde6dc44ef369b":[4,6,15],
-"group__lib8tion.html#gade6acbf6fd3c9d346148bccfcafb2fe2":[4,6,21],
-"group__lib8tion.html#gae3ac7def25ef5ddea2da1a3bc0c00f44":[4,6,8],
-"group__lib8tion.html#gae9e011ff745ade1164ae77b0ef62bfac":[4,6,46],
-"group__lib8tion.html#gaecd7cbfc2640407cabf75afcc7d9ddf4":[4,6,25],
-"group__lib8tion.html#gaf65357c7aeca9778e5a2f80a6bac2b5d":[4,6,40],
-"group__lib8tion.html#gaf917825ff26c8e1174c5b674a2f3c631":[4,6,26],
-"group__lib8tion.html#gafea4166e233d92817eada7203021089a":[4,6,14],
-"hierarchy.html":[5,2],
-"hsv2rgb_8cpp_source.html":[6,0,23],
-"hsv2rgb_8h_source.html":[6,0,24],
-"index.html":[],
-"led__sysdefs_8h_source.html":[6,0,25],
-"lib8tion_8cpp_source.html":[6,0,26],
-"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]
+"group__lib8tion.html#gaacea0eaea98a065dfa08bb1c147c52a1":[4,6,36]
};
diff --git a/docs/3.1/navtreeindex4.js b/docs/3.1/navtreeindex4.js
index 327b926c..adbef2b3 100644
--- a/docs/3.1/navtreeindex4.js
+++ b/docs/3.1/navtreeindex4.js
@@ -1,5 +1,27 @@
var NAVTREEINDEX4 =
{
+"group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5":[4,6,10],
+"group__lib8tion.html#gab947c1150e3b9056cb91685a14270173":[4,6,44],
+"group__lib8tion.html#gad2dad84f67c8a4cc6d4c92e2c7d3e89f":[4,6,17],
+"group__lib8tion.html#gad4b09aba4e188e14d3e71d1c9f77f1a5":[4,6,35],
+"group__lib8tion.html#gad5dca0e1248b916799dde6dc44ef369b":[4,6,15],
+"group__lib8tion.html#gade6acbf6fd3c9d346148bccfcafb2fe2":[4,6,21],
+"group__lib8tion.html#gae3ac7def25ef5ddea2da1a3bc0c00f44":[4,6,8],
+"group__lib8tion.html#gae9e011ff745ade1164ae77b0ef62bfac":[4,6,46],
+"group__lib8tion.html#gaecd7cbfc2640407cabf75afcc7d9ddf4":[4,6,25],
+"group__lib8tion.html#gaf65357c7aeca9778e5a2f80a6bac2b5d":[4,6,40],
+"group__lib8tion.html#gaf917825ff26c8e1174c5b674a2f3c631":[4,6,26],
+"group__lib8tion.html#gafea4166e233d92817eada7203021089a":[4,6,14],
+"hierarchy.html":[5,2],
+"hsv2rgb_8cpp_source.html":[6,0,23],
+"hsv2rgb_8h_source.html":[6,0,24],
+"index.html":[],
+"led__sysdefs_8h_source.html":[6,0,25],
+"lib8tion_8cpp_source.html":[6,0,26],
+"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],
@@ -85,9 +107,9 @@ var NAVTREEINDEX4 =
"struct_c_r_g_b.html#af32e6bf80075fd5b3d8195fff790a036":[4,1,1,29],
"struct_c_r_g_b.html#af5e0ce520027b5bc5b8aa106c113119c":[4,1,1,48],
"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#a0ba4ffda92340e8af5b5c14917e82e38":[5,0,41,19],
"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],
diff --git a/docs/3.1/noise_8cpp_source.html b/docs/3.1/noise_8cpp_source.html
index 10da32b7..90f2226d 100644
--- a/docs/3.1/noise_8cpp_source.html
+++ b/docs/3.1/noise_8cpp_source.html
@@ -295,7 +295,7 @@ $(document).ready(function(){initNavTree('noise_8cpp_source.html','');});
<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="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group___math.html#gad7af6a5b49aef34ab79e850ddb7d7911">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>
@@ -315,7 +315,7 @@ $(document).ready(function(){initNavTree('noise_8cpp_source.html','');});
<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="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group___math.html#gad7af6a5b49aef34ab79e850ddb7d7911">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>
@@ -338,7 +338,7 @@ $(document).ready(function(){initNavTree('noise_8cpp_source.html','');});
<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="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group___math.html#gad7af6a5b49aef34ab79e850ddb7d7911">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>
@@ -374,11 +374,11 @@ $(document).ready(function(){initNavTree('noise_8cpp_source.html','');});
<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="l00266"></a><span class="lineno"> 266</span>&#160; uint8_t scaled = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">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="l00270"></a><span class="lineno"> 270</span>&#160; uint8_t scaled = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">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>
@@ -548,7 +548,7 @@ $(document).ready(function(){initNavTree('noise_8cpp_source.html','');});
<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#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="l00440"></a><span class="lineno"> 440</span>&#160; u = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>(u,u); v = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>(v,v); w = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">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, 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>
@@ -564,7 +564,7 @@ $(document).ready(function(){initNavTree('noise_8cpp_source.html','');});
<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;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="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">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>
@@ -591,7 +591,7 @@ $(document).ready(function(){initNavTree('noise_8cpp_source.html','');});
<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="l00483"></a><span class="lineno"> 483</span>&#160; u = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>(u,u); v = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">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; 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>
@@ -603,7 +603,7 @@ $(document).ready(function(){initNavTree('noise_8cpp_source.html','');});
<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="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">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>
@@ -624,7 +624,7 @@ $(document).ready(function(){initNavTree('noise_8cpp_source.html','');});
<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="l00516"></a><span class="lineno"> 516</span>&#160; u = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">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>
@@ -633,7 +633,7 @@ $(document).ready(function(){initNavTree('noise_8cpp_source.html','');});
<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="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">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="comment">// struct q44 {</span></div>
@@ -655,7 +655,7 @@ $(document).ready(function(){initNavTree('noise_8cpp_source.html','');});
<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="l00547"></a><span class="lineno"> 547</span>&#160; pData[i] = <a class="code" href="group___math.html#ga07133b3085824d0fcd4f5086d286c4b5">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>
@@ -698,14 +698,14 @@ $(document).ready(function(){initNavTree('noise_8cpp_source.html','');});
<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="l00590"></a><span class="lineno"> 590</span>&#160; noise_base = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">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="l00592"></a><span class="lineno"> 592</span>&#160; pRow[j] = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">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="l00597"></a><span class="lineno"> 597</span>&#160; pRow[jj] = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">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>
@@ -769,14 +769,14 @@ $(document).ready(function(){initNavTree('noise_8cpp_source.html','');});
<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="l00661"></a><span class="lineno"> 661</span>&#160; noise_base = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">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="l00663"></a><span class="lineno"> 663</span>&#160; pRow[j] = <a class="code" href="group___math.html#ga07133b3085824d0fcd4f5086d286c4b5">qadd8</a>(<a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">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="l00668"></a><span class="lineno"> 668</span>&#160; pRow[jj] = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">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>
@@ -826,7 +826,7 @@ $(document).ready(function(){initNavTree('noise_8cpp_source.html','');});
<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="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> <a class="code" href="group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c">blend</a>) {</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>
@@ -897,27 +897,28 @@ $(document).ready(function(){initNavTree('noise_8cpp_source.html','');});
<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#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#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="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#l00343">lib8tion.h:343</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#l00456">scale8.h:456</a></div></div>
+<div class="ttc" id="group___math_html_gad7af6a5b49aef34ab79e850ddb7d7911"><div class="ttname"><a href="group___math.html#gad7af6a5b49aef34ab79e850ddb7d7911">avg7</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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__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#l00335">lib8tion.h:335</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#l00778">lib8tion.h:778</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___math_html_ga07133b3085824d0fcd4f5086d286c4b5"><div class="ttname"><a href="group___math.html#ga07133b3085824d0fcd4f5086d286c4b5">qadd8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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___colorutils_html_ga4f06b4423f71f77346aaf5dabe7dd05c"><div class="ttname"><a href="group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c">blend</a></div><div class="ttdeci">CRGB blend(const CRGB &amp;p1, const CRGB &amp;p2, fract8 amountOfP2)</div><div class="ttdoc">Pixel blending. </div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00262">colorutils.cpp:262</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___scaling_html_gad7535ccda9c92470c4e6ee0265585555"><div class="ttname"><a href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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___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#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 class="ttc" id="group___scaling_html_ga7386235cada3aca429b189681d2ec56d"><div class="ttname"><a href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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#l00146">scale8.h:146</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#l00754">lib8tion.h:754</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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 a30fe52a..31a85c56 100644
--- a/docs/3.1/noise_8h.html
+++ b/docs/3.1/noise_8h.html
@@ -211,10 +211,10 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_noise8</b> (<a c
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>
+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 <a class="el" href="group___colorutils.html#gabea64e23b31132c325ea0c1fef0d3f13">blend</a>)</td></tr>
<tr class="separator:ga6fcc17e60eac4b9dbb620f7e354177f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga714a0f305e385a60d81a40d1f98b53fc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga714a0f305e385a60d81a40d1f98b53fc"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_2dnoise16</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, int width, int height, bool serpentine, uint8_t octaves, uint32_t x, int xscale, uint32_t y, int yscale, uint32_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, uint16_t hue_shift=0)</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_2dnoise16</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, int width, int height, bool serpentine, uint8_t octaves, uint32_t x, int xscale, uint32_t y, int yscale, uint32_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 <a class="el" href="group___colorutils.html#gabea64e23b31132c325ea0c1fef0d3f13">blend</a>, uint16_t hue_shift=0)</td></tr>
<tr class="separator:ga714a0f305e385a60d81a40d1f98b53fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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_source.html b/docs/3.1/noise_8h_source.html
index c4c269c1..751ea253 100644
--- a/docs/3.1/noise_8h_source.html
+++ b/docs/3.1/noise_8h_source.html
@@ -153,27 +153,28 @@ $(document).ready(function(){initNavTree('noise_8h_source.html','');});
<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="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> <a class="code" href="group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c">blend</a>);</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="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> <a class="code" href="group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c">blend</a>, 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="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#l00343">lib8tion.h:343</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#l00335">lib8tion.h:335</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___colorutils_html_ga4f06b4423f71f77346aaf5dabe7dd05c"><div class="ttname"><a href="group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c">blend</a></div><div class="ttdeci">CRGB blend(const CRGB &amp;p1, const CRGB &amp;p2, fract8 amountOfP2)</div><div class="ttdoc">Pixel blending. </div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8cpp_source.html#l00262">colorutils.cpp:262</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="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="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#l00754">lib8tion.h:754</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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 721a8e4e..cc6a0a49 100644
--- a/docs/3.1/pages.html
+++ b/docs/3.1/pages.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 29cef8d9..a03f68b0 100644
--- a/docs/3.1/pixelset_8h_source.html
+++ b/docs/3.1/pixelset_8h_source.html
@@ -362,7 +362,7 @@ $(document).ready(function(){initNavTree('pixelset_8h_source.html','');});
<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="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#l00335">lib8tion.h:335</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>
@@ -394,7 +394,7 @@ $(document).ready(function(){initNavTree('pixelset_8h_source.html','');});
<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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 15766293..37e3b1b3 100644
--- a/docs/3.1/pixeltypes_8h_source.html
+++ b/docs/3.1/pixeltypes_8h_source.html
@@ -309,33 +309,33 @@ $(document).ready(function(){initNavTree('pixeltypes_8h_source.html','');});
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="struct_c_r_g_b.html#adb47a8179f4124ba90c701b467e705ce"> 225</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; <a class="code" href="struct_c_r_g_b.html#adb47a8179f4124ba90c701b467e705ce">operator+= </a>(<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="l00226"></a><span class="lineno"> 226</span>&#160; {</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; r = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( r, rhs.r);</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; g = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( g, rhs.g);</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; b = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( b, rhs.b);</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; r = <a class="code" href="group___math.html#ga07133b3085824d0fcd4f5086d286c4b5">qadd8</a>( r, rhs.r);</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; g = <a class="code" href="group___math.html#ga07133b3085824d0fcd4f5086d286c4b5">qadd8</a>( g, rhs.g);</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; b = <a class="code" href="group___math.html#ga07133b3085824d0fcd4f5086d286c4b5">qadd8</a>( b, rhs.b);</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="l00237"></a><span class="lineno"><a class="line" href="struct_c_r_g_b.html#a6855b3f3a79778436044c9786ff00b73"> 237</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; <a class="code" href="struct_c_r_g_b.html#a6855b3f3a79778436044c9786ff00b73">addToRGB</a> (uint8_t d )</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; r = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( r, d);</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; g = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( g, d);</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; b = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( b, d);</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; r = <a class="code" href="group___math.html#ga07133b3085824d0fcd4f5086d286c4b5">qadd8</a>( r, d);</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; g = <a class="code" href="group___math.html#ga07133b3085824d0fcd4f5086d286c4b5">qadd8</a>( g, d);</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; b = <a class="code" href="group___math.html#ga07133b3085824d0fcd4f5086d286c4b5">qadd8</a>( b, d);</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; }</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div>
<div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="struct_c_r_g_b.html#ac7591f8a1299a6f54963cff08d94222a"> 246</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; <a class="code" href="struct_c_r_g_b.html#ac7591f8a1299a6f54963cff08d94222a">operator-= </a>(<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="l00247"></a><span class="lineno"> 247</span>&#160; {</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; r = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( r, rhs.r);</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; g = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( g, rhs.g);</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; b = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( b, rhs.b);</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; r = <a class="code" href="group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3">qsub8</a>( r, rhs.r);</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; g = <a class="code" href="group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3">qsub8</a>( g, rhs.g);</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; b = <a class="code" href="group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3">qsub8</a>( b, rhs.b);</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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="l00258"></a><span class="lineno"><a class="line" href="struct_c_r_g_b.html#af5e0ce520027b5bc5b8aa106c113119c"> 258</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; <a class="code" href="struct_c_r_g_b.html#af5e0ce520027b5bc5b8aa106c113119c">subtractFromRGB</a>(uint8_t d )</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; r = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( r, d);</div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; g = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( g, d);</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; b = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( b, d);</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; r = <a class="code" href="group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3">qsub8</a>( r, d);</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; g = <a class="code" href="group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3">qsub8</a>( g, d);</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; b = <a class="code" href="group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3">qsub8</a>( b, d);</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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>
@@ -383,9 +383,9 @@ $(document).ready(function(){initNavTree('pixeltypes_8h_source.html','');});
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div>
<div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="struct_c_r_g_b.html#ad649a38adbfdabca5930019a8b6bc4d8"> 316</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; <a class="code" href="struct_c_r_g_b.html#ad649a38adbfdabca5930019a8b6bc4d8">operator*= </a>(uint8_t d )</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; r = <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( r, d);</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; g = <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( g, d);</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; b = <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( b, d);</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; r = <a class="code" href="group___math.html#ga17d0d692de142f4d4379b8cc899eaefb">qmul8</a>( r, d);</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; g = <a class="code" href="group___math.html#ga17d0d692de142f4d4379b8cc899eaefb">qmul8</a>( g, d);</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; b = <a class="code" href="group___math.html#ga17d0d692de142f4d4379b8cc899eaefb">qmul8</a>( b, d);</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; }</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div>
@@ -496,383 +496,386 @@ $(document).ready(function(){initNavTree('pixeltypes_8h_source.html','');});
<div class="line"><a name="l00452"></a><span class="lineno"> 452</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="l00453"></a><span class="lineno"> 453</span>&#160; <span class="comment">// 54 183 18 (!)</span></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; 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="l00456"></a><span class="lineno"> 456</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="l00457"></a><span class="lineno"> 457</span>&#160;<a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c"> scale8_LEAVING_R1_DIRTY</a>( b, 18);</div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</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; uint8_t luma = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( r, 54) + <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">\</a></div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;<a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d"> scale8_LEAVING_R1_DIRTY</a>( g, 183) + <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">\</a></div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d"> scale8_LEAVING_R1_DIRTY</a>( b, 18);</div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <a class="code" href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a>();</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">return</span> luma;</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;</div>
<div class="line"><a name="l00463"></a><span class="lineno"><a class="line" href="struct_c_r_g_b.html#a070437bde8dbf6ae34934f5f1b72ad32"> 463</a></span>&#160; <span class="keyword">inline</span> uint8_t <a class="code" href="struct_c_r_g_b.html#a070437bde8dbf6ae34934f5f1b72ad32">getAverageLight</a>( )<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keyword">const</span> uint8_t eightysix = 86;</div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</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="l00466"></a><span class="lineno"> 466</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="l00467"></a><span class="lineno"> 467</span>&#160;<a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c"> scale8_LEAVING_R1_DIRTY</a>( b, eightysix);</div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">return</span> avg;</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="l00473"></a><span class="lineno"><a class="line" href="struct_c_r_g_b.html#a6b0b8f3da2b3b2b44778e142dbae47ed"> 473</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="struct_c_r_g_b.html#a6b0b8f3da2b3b2b44778e142dbae47ed">maximizeBrightness</a>( uint8_t limit = 255 ) {</div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; uint8_t max = red;</div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">if</span>( green &gt; max) max = green;</div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">if</span>( blue &gt; max) max = blue;</div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; uint16_t factor = ((uint16_t)(limit) * 256) / max;</div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; red = (red * factor) / 256;</div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; green = (green * factor) / 256;</div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; blue = (blue * factor) / 256;</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="struct_c_r_g_b.html#ab29249e850cfb300590408edcbcf5704"> 484</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> <a class="code" href="struct_c_r_g_b.html#ab29249e850cfb300590408edcbcf5704">lerp8</a>( <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="l00485"></a><span class="lineno"> 485</span>&#160; {</div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> ret;</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; ret.r = <a class="code" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a>(r,other.r,frac);</div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; ret.g = <a class="code" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a>(g,other.g,frac);</div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; ret.b = <a class="code" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a>(b,other.b,frac);</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;<span class="preprocessor">#if FASTLED_SCALE8_FIXED == 1</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keyword">const</span> uint8_t eightyfive = 85;</div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keyword">const</span> uint8_t eightyfive = 86;</div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; uint8_t avg = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( r, eightyfive) + <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">\</a></div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d"> scale8_LEAVING_R1_DIRTY</a>( g, eightyfive) + <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">\</a></div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d"> scale8_LEAVING_R1_DIRTY</a>( b, eightyfive);</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <a class="code" href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a>();</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">return</span> avg;</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="l00477"></a><span class="lineno"><a class="line" href="struct_c_r_g_b.html#a6b0b8f3da2b3b2b44778e142dbae47ed"> 477</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="struct_c_r_g_b.html#a6b0b8f3da2b3b2b44778e142dbae47ed">maximizeBrightness</a>( uint8_t limit = 255 ) {</div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; uint8_t max = red;</div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">if</span>( green &gt; max) max = green;</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">if</span>( blue &gt; max) max = blue;</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; uint16_t factor = ((uint16_t)(limit) * 256) / max;</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; red = (red * factor) / 256;</div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; green = (green * factor) / 256;</div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; blue = (blue * factor) / 256;</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="l00488"></a><span class="lineno"><a class="line" href="struct_c_r_g_b.html#ab29249e850cfb300590408edcbcf5704"> 488</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> <a class="code" href="struct_c_r_g_b.html#ab29249e850cfb300590408edcbcf5704">lerp8</a>( <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="l00489"></a><span class="lineno"> 489</span>&#160; {</div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> ret;</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> ret;</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="l00496"></a><span class="lineno"><a class="line" href="struct_c_r_g_b.html#a77cbf242403cf6e190c6aa3598129e1c"> 496</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> <a class="code" href="struct_c_r_g_b.html#a77cbf242403cf6e190c6aa3598129e1c">lerp16</a>( <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="l00497"></a><span class="lineno"> 497</span>&#160; {</div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> ret;</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; 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="l00501"></a><span class="lineno"> 501</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="l00502"></a><span class="lineno"> 502</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="l00492"></a><span class="lineno"> 492</span>&#160; ret.r = <a class="code" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a>(r,other.r,frac);</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; ret.g = <a class="code" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a>(g,other.g,frac);</div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; ret.b = <a class="code" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a>(b,other.b,frac);</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="keywordflow">return</span> ret;</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="l00500"></a><span class="lineno"><a class="line" href="struct_c_r_g_b.html#a77cbf242403cf6e190c6aa3598129e1c"> 500</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> <a class="code" href="struct_c_r_g_b.html#a77cbf242403cf6e190c6aa3598129e1c">lerp16</a>( <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="l00501"></a><span class="lineno"> 501</span>&#160; {</div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> ret;</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="keywordflow">return</span> ret;</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="l00509"></a><span class="lineno"><a class="line" href="struct_c_r_g_b.html#af1469c62f5a3b4bdf755851606d8e71f"> 509</a></span>&#160; <span class="keyword">inline</span> uint8_t <a class="code" href="struct_c_r_g_b.html#af1469c62f5a3b4bdf755851606d8e71f">getParity</a>()</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 sum = r + g + b;</div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordflow">return</span> (sum &amp; 0x01);</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;</div>
-<div class="line"><a name="l00538"></a><span class="lineno"><a class="line" href="struct_c_r_g_b.html#acbcfc8af29d32eb9af1711ee92b60727"> 538</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="struct_c_r_g_b.html#acbcfc8af29d32eb9af1711ee92b60727">setParity</a>( uint8_t parity)</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; uint8_t curparity = <a class="code" href="struct_c_r_g_b.html#af1469c62f5a3b4bdf755851606d8e71f">getParity</a>();</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="keywordflow">if</span>( parity == curparity) <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;</div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordflow">if</span>( parity ) {</div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="comment">// going &#39;up&#39;</span></div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="keywordflow">if</span>( (b &gt; 0) &amp;&amp; (b &lt; 255)) {</div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordflow">if</span>( r == g &amp;&amp; g == b) {</div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; r++;</div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; g++;</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; b++;</div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</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="l00553"></a><span class="lineno"> 553</span>&#160; r++;</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; 0) &amp;&amp; (g &lt; 255)) {</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> {</div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keywordflow">if</span>( r == g &amp;&amp; g == b) {</div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; r ^= 0x01;</div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; g ^= 0x01;</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; b ^= 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; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="comment">// going &#39;down&#39;</span></div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordflow">if</span>( b &gt; 1) {</div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">if</span>( r == g &amp;&amp; g == b) {</div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; r--;</div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; g--;</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; b--;</div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>( g &gt; 1) {</div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; g--;</div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>( r &gt; 1) {</div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; r--;</div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="keywordflow">if</span>( r == g &amp;&amp; g == b) {</div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; r ^= 0x01;</div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; g ^= 0x01;</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; b ^= 0x01;</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; }</div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;</div>
-<div class="line"><a name="l00586"></a><span class="lineno"><a class="line" href="group___pixeltypes.html#gaeb40a08b7cb90c1e21bd408261558b99"> 586</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; AliceBlue=0xF0F8FF,</div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; Amethyst=0x9966CC,</div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; AntiqueWhite=0xFAEBD7,</div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; Aqua=0x00FFFF,</div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; Aquamarine=0x7FFFD4,</div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; Azure=0xF0FFFF,</div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; Beige=0xF5F5DC,</div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; Bisque=0xFFE4C4,</div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; Black=0x000000,</div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; BlanchedAlmond=0xFFEBCD,</div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; Blue=0x0000FF,</div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; BlueViolet=0x8A2BE2,</div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; Brown=0xA52A2A,</div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; BurlyWood=0xDEB887,</div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; CadetBlue=0x5F9EA0,</div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; Chartreuse=0x7FFF00,</div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; Chocolate=0xD2691E,</div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; Coral=0xFF7F50,</div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; CornflowerBlue=0x6495ED,</div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; Cornsilk=0xFFF8DC,</div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; Crimson=0xDC143C,</div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; Cyan=0x00FFFF,</div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; DarkBlue=0x00008B,</div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; DarkCyan=0x008B8B,</div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; DarkGoldenrod=0xB8860B,</div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; DarkGray=0xA9A9A9,</div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; DarkGrey=0xA9A9A9,</div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; DarkGreen=0x006400,</div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; DarkKhaki=0xBDB76B,</div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; DarkMagenta=0x8B008B,</div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; DarkOliveGreen=0x556B2F,</div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; DarkOrange=0xFF8C00,</div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; DarkOrchid=0x9932CC,</div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; DarkRed=0x8B0000,</div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; DarkSalmon=0xE9967A,</div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; DarkSeaGreen=0x8FBC8F,</div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; DarkSlateBlue=0x483D8B,</div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; DarkSlateGray=0x2F4F4F,</div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; DarkSlateGrey=0x2F4F4F,</div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; DarkTurquoise=0x00CED1,</div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; DarkViolet=0x9400D3,</div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; DeepPink=0xFF1493,</div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; DeepSkyBlue=0x00BFFF,</div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; DimGray=0x696969,</div>
-<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; DimGrey=0x696969,</div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; DodgerBlue=0x1E90FF,</div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; FireBrick=0xB22222,</div>
-<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; FloralWhite=0xFFFAF0,</div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; ForestGreen=0x228B22,</div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; Fuchsia=0xFF00FF,</div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; Gainsboro=0xDCDCDC,</div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; GhostWhite=0xF8F8FF,</div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; Gold=0xFFD700,</div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; Goldenrod=0xDAA520,</div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; Gray=0x808080,</div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; Grey=0x808080,</div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; Green=0x008000,</div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; GreenYellow=0xADFF2F,</div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; Honeydew=0xF0FFF0,</div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; HotPink=0xFF69B4,</div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; IndianRed=0xCD5C5C,</div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; Indigo=0x4B0082,</div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; Ivory=0xFFFFF0,</div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; Khaki=0xF0E68C,</div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; Lavender=0xE6E6FA,</div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; LavenderBlush=0xFFF0F5,</div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; LawnGreen=0x7CFC00,</div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; LemonChiffon=0xFFFACD,</div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; LightBlue=0xADD8E6,</div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; LightCoral=0xF08080,</div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; LightCyan=0xE0FFFF,</div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; LightGoldenrodYellow=0xFAFAD2,</div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; LightGreen=0x90EE90,</div>
-<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; LightGrey=0xD3D3D3,</div>
-<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; LightPink=0xFFB6C1,</div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; LightSalmon=0xFFA07A,</div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; LightSeaGreen=0x20B2AA,</div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; LightSkyBlue=0x87CEFA,</div>
-<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; LightSlateGray=0x778899,</div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; LightSlateGrey=0x778899,</div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; LightSteelBlue=0xB0C4DE,</div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; LightYellow=0xFFFFE0,</div>
-<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; Lime=0x00FF00,</div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; LimeGreen=0x32CD32,</div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; Linen=0xFAF0E6,</div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; Magenta=0xFF00FF,</div>
-<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; Maroon=0x800000,</div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; MediumAquamarine=0x66CDAA,</div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; MediumBlue=0x0000CD,</div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; MediumOrchid=0xBA55D3,</div>
-<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; MediumPurple=0x9370DB,</div>
-<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; MediumSeaGreen=0x3CB371,</div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; MediumSlateBlue=0x7B68EE,</div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; MediumSpringGreen=0x00FA9A,</div>
-<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; MediumTurquoise=0x48D1CC,</div>
-<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; MediumVioletRed=0xC71585,</div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; MidnightBlue=0x191970,</div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; MintCream=0xF5FFFA,</div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; MistyRose=0xFFE4E1,</div>
-<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; Moccasin=0xFFE4B5,</div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; NavajoWhite=0xFFDEAD,</div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; Navy=0x000080,</div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; OldLace=0xFDF5E6,</div>
-<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; Olive=0x808000,</div>
-<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; OliveDrab=0x6B8E23,</div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; Orange=0xFFA500,</div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; OrangeRed=0xFF4500,</div>
-<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; Orchid=0xDA70D6,</div>
-<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; PaleGoldenrod=0xEEE8AA,</div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; PaleGreen=0x98FB98,</div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; PaleTurquoise=0xAFEEEE,</div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; PaleVioletRed=0xDB7093,</div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; PapayaWhip=0xFFEFD5,</div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; PeachPuff=0xFFDAB9,</div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; Peru=0xCD853F,</div>
-<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; Pink=0xFFC0CB,</div>
-<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; Plaid=0xCC5533,</div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; Plum=0xDDA0DD,</div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; PowderBlue=0xB0E0E6,</div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; Purple=0x800080,</div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; Red=0xFF0000,</div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; RosyBrown=0xBC8F8F,</div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; RoyalBlue=0x4169E1,</div>
-<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; SaddleBrown=0x8B4513,</div>
-<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; Salmon=0xFA8072,</div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; SandyBrown=0xF4A460,</div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; SeaGreen=0x2E8B57,</div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; Seashell=0xFFF5EE,</div>
-<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; Sienna=0xA0522D,</div>
-<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; Silver=0xC0C0C0,</div>
-<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; SkyBlue=0x87CEEB,</div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; SlateBlue=0x6A5ACD,</div>
-<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; SlateGray=0x708090,</div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; SlateGrey=0x708090,</div>
-<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; Snow=0xFFFAFA,</div>
-<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; SpringGreen=0x00FF7F,</div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; SteelBlue=0x4682B4,</div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; Tan=0xD2B48C,</div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; Teal=0x008080,</div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; Thistle=0xD8BFD8,</div>
-<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; Tomato=0xFF6347,</div>
-<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; Turquoise=0x40E0D0,</div>
-<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; Violet=0xEE82EE,</div>
-<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; Wheat=0xF5DEB3,</div>
-<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; White=0xFFFFFF,</div>
-<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; WhiteSmoke=0xF5F5F5,</div>
-<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; Yellow=0xFFFF00,</div>
-<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; YellowGreen=0x9ACD32,</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="comment">// LED RGB color that roughly approximates</span></div>
-<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="comment">// the color of incandescent fairy lights,</span></div>
-<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="comment">// assuming that you&#39;re using FastLED</span></div>
-<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="comment">// color correction on your LEDs (recommended).</span></div>
-<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; FairyLight=0xFFE42D,</div>
-<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="comment">// If you are using no color correction, use this</span></div>
-<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; FairyLightNCC=0xFF9D2A</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___pixeltypes.html#gaeb40a08b7cb90c1e21bd408261558b99">HTMLColorCode</a>;</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="l00504"></a><span class="lineno"> 504</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="l00505"></a><span class="lineno"> 505</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="l00506"></a><span class="lineno"> 506</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="l00507"></a><span class="lineno"> 507</span>&#160;</div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordflow">return</span> ret;</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="l00513"></a><span class="lineno"><a class="line" href="struct_c_r_g_b.html#af1469c62f5a3b4bdf755851606d8e71f"> 513</a></span>&#160; <span class="keyword">inline</span> uint8_t <a class="code" href="struct_c_r_g_b.html#af1469c62f5a3b4bdf755851606d8e71f">getParity</a>()</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; uint8_t sum = r + g + b;</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordflow">return</span> (sum &amp; 0x01);</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;</div>
+<div class="line"><a name="l00542"></a><span class="lineno"><a class="line" href="struct_c_r_g_b.html#acbcfc8af29d32eb9af1711ee92b60727"> 542</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="struct_c_r_g_b.html#acbcfc8af29d32eb9af1711ee92b60727">setParity</a>( uint8_t parity)</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; uint8_t curparity = <a class="code" href="struct_c_r_g_b.html#af1469c62f5a3b4bdf755851606d8e71f">getParity</a>();</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">if</span>( parity == curparity) <span class="keywordflow">return</span>;</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>( parity ) {</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="comment">// going &#39;up&#39;</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keywordflow">if</span>( (b &gt; 0) &amp;&amp; (b &lt; 255)) {</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>( (r &gt; 0) &amp;&amp; (r &lt; 255)) {</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> <span class="keywordflow">if</span>( (g &gt; 0) &amp;&amp; (g &lt; 255)) {</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; g++;</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; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="comment">// going &#39;down&#39;</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordflow">if</span>( b &gt; 1) {</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordflow">if</span>( r == g &amp;&amp; g == b) {</div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; r--;</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; g--;</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; b--;</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>( g &gt; 1) {</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; g--;</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>( r &gt; 1) {</div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; r--;</div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordflow">if</span>( r == g &amp;&amp; g == b) {</div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; r ^= 0x01;</div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; g ^= 0x01;</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; b ^= 0x01;</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; }</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="l00590"></a><span class="lineno"><a class="line" href="group___pixeltypes.html#gaeb40a08b7cb90c1e21bd408261558b99"> 590</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; AliceBlue=0xF0F8FF,</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; Amethyst=0x9966CC,</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; AntiqueWhite=0xFAEBD7,</div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; Aqua=0x00FFFF,</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; Aquamarine=0x7FFFD4,</div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; Azure=0xF0FFFF,</div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; Beige=0xF5F5DC,</div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; Bisque=0xFFE4C4,</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; Black=0x000000,</div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; BlanchedAlmond=0xFFEBCD,</div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; Blue=0x0000FF,</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; BlueViolet=0x8A2BE2,</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; Brown=0xA52A2A,</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; BurlyWood=0xDEB887,</div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; CadetBlue=0x5F9EA0,</div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; Chartreuse=0x7FFF00,</div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; Chocolate=0xD2691E,</div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; Coral=0xFF7F50,</div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; CornflowerBlue=0x6495ED,</div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; Cornsilk=0xFFF8DC,</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; Crimson=0xDC143C,</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; Cyan=0x00FFFF,</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; DarkBlue=0x00008B,</div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; DarkCyan=0x008B8B,</div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; DarkGoldenrod=0xB8860B,</div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; DarkGray=0xA9A9A9,</div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; DarkGrey=0xA9A9A9,</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; DarkGreen=0x006400,</div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; DarkKhaki=0xBDB76B,</div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; DarkMagenta=0x8B008B,</div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; DarkOliveGreen=0x556B2F,</div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; DarkOrange=0xFF8C00,</div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; DarkOrchid=0x9932CC,</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; DarkRed=0x8B0000,</div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; DarkSalmon=0xE9967A,</div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; DarkSeaGreen=0x8FBC8F,</div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; DarkSlateBlue=0x483D8B,</div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; DarkSlateGray=0x2F4F4F,</div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; DarkSlateGrey=0x2F4F4F,</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; DarkTurquoise=0x00CED1,</div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; DarkViolet=0x9400D3,</div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; DeepPink=0xFF1493,</div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; DeepSkyBlue=0x00BFFF,</div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; DimGray=0x696969,</div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; DimGrey=0x696969,</div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; DodgerBlue=0x1E90FF,</div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; FireBrick=0xB22222,</div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; FloralWhite=0xFFFAF0,</div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; ForestGreen=0x228B22,</div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; Fuchsia=0xFF00FF,</div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; Gainsboro=0xDCDCDC,</div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; GhostWhite=0xF8F8FF,</div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; Gold=0xFFD700,</div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; Goldenrod=0xDAA520,</div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; Gray=0x808080,</div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; Grey=0x808080,</div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; Green=0x008000,</div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; GreenYellow=0xADFF2F,</div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; Honeydew=0xF0FFF0,</div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; HotPink=0xFF69B4,</div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; IndianRed=0xCD5C5C,</div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; Indigo=0x4B0082,</div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; Ivory=0xFFFFF0,</div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; Khaki=0xF0E68C,</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; Lavender=0xE6E6FA,</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; LavenderBlush=0xFFF0F5,</div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; LawnGreen=0x7CFC00,</div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; LemonChiffon=0xFFFACD,</div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; LightBlue=0xADD8E6,</div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; LightCoral=0xF08080,</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; LightCyan=0xE0FFFF,</div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; LightGoldenrodYellow=0xFAFAD2,</div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; LightGreen=0x90EE90,</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; LightGrey=0xD3D3D3,</div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; LightPink=0xFFB6C1,</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; LightSalmon=0xFFA07A,</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; LightSeaGreen=0x20B2AA,</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; LightSkyBlue=0x87CEFA,</div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; LightSlateGray=0x778899,</div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; LightSlateGrey=0x778899,</div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; LightSteelBlue=0xB0C4DE,</div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; LightYellow=0xFFFFE0,</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; Lime=0x00FF00,</div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; LimeGreen=0x32CD32,</div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; Linen=0xFAF0E6,</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; Magenta=0xFF00FF,</div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; Maroon=0x800000,</div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; MediumAquamarine=0x66CDAA,</div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; MediumBlue=0x0000CD,</div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; MediumOrchid=0xBA55D3,</div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; MediumPurple=0x9370DB,</div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; MediumSeaGreen=0x3CB371,</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; MediumSlateBlue=0x7B68EE,</div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; MediumSpringGreen=0x00FA9A,</div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; MediumTurquoise=0x48D1CC,</div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; MediumVioletRed=0xC71585,</div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; MidnightBlue=0x191970,</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; MintCream=0xF5FFFA,</div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; MistyRose=0xFFE4E1,</div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; Moccasin=0xFFE4B5,</div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; NavajoWhite=0xFFDEAD,</div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; Navy=0x000080,</div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; OldLace=0xFDF5E6,</div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; Olive=0x808000,</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; OliveDrab=0x6B8E23,</div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; Orange=0xFFA500,</div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; OrangeRed=0xFF4500,</div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; Orchid=0xDA70D6,</div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; PaleGoldenrod=0xEEE8AA,</div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; PaleGreen=0x98FB98,</div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; PaleTurquoise=0xAFEEEE,</div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; PaleVioletRed=0xDB7093,</div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; PapayaWhip=0xFFEFD5,</div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; PeachPuff=0xFFDAB9,</div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; Peru=0xCD853F,</div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; Pink=0xFFC0CB,</div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; Plaid=0xCC5533,</div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; Plum=0xDDA0DD,</div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; PowderBlue=0xB0E0E6,</div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; Purple=0x800080,</div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; Red=0xFF0000,</div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; RosyBrown=0xBC8F8F,</div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; RoyalBlue=0x4169E1,</div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; SaddleBrown=0x8B4513,</div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; Salmon=0xFA8072,</div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; SandyBrown=0xF4A460,</div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; SeaGreen=0x2E8B57,</div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; Seashell=0xFFF5EE,</div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; Sienna=0xA0522D,</div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; Silver=0xC0C0C0,</div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; SkyBlue=0x87CEEB,</div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; SlateBlue=0x6A5ACD,</div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; SlateGray=0x708090,</div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; SlateGrey=0x708090,</div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; Snow=0xFFFAFA,</div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; SpringGreen=0x00FF7F,</div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; SteelBlue=0x4682B4,</div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; Tan=0xD2B48C,</div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; Teal=0x008080,</div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; Thistle=0xD8BFD8,</div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; Tomato=0xFF6347,</div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; Turquoise=0x40E0D0,</div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; Violet=0xEE82EE,</div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; Wheat=0xF5DEB3,</div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; White=0xFFFFFF,</div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; WhiteSmoke=0xF5F5F5,</div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; Yellow=0xFFFF00,</div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; YellowGreen=0x9ACD32,</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="comment">// LED RGB color that roughly approximates</span></div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="comment">// the color of incandescent fairy lights,</span></div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="comment">// assuming that you&#39;re using FastLED</span></div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="comment">// color correction on your LEDs (recommended).</span></div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; FairyLight=0xFFE42D,</div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="comment">// If you are using no color correction, use this</span></div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; FairyLightNCC=0xFF9D2A</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;<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="l00749"></a><span class="lineno"> 749</span>&#160;{</div>
-<div class="line"><a name="l00750"></a><span class="lineno"> 750</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="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="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="l00754"></a><span class="lineno"> 754</span>&#160;{</div>
-<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="keywordflow">return</span> !(lhs == rhs);</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">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="l00759"></a><span class="lineno"> 759</span>&#160;{</div>
-<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; uint16_t sl, sr;</div>
-<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; sl = lhs.r + lhs.g + lhs.b;</div>
-<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; sr = rhs.r + rhs.g + rhs.b;</div>
-<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="keywordflow">return</span> sl &lt; sr;</div>
-<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;}</div>
-<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;</div>
-<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;<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="l00767"></a><span class="lineno"> 767</span>&#160;{</div>
-<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; uint16_t sl, sr;</div>
-<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; sl = lhs.r + lhs.g + lhs.b;</div>
-<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; sr = rhs.r + rhs.g + rhs.b;</div>
-<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <span class="keywordflow">return</span> sl &gt; sr;</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;<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="l00775"></a><span class="lineno"> 775</span>&#160;{</div>
-<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; uint16_t sl, sr;</div>
-<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; sl = lhs.r + lhs.g + lhs.b;</div>
-<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; sr = rhs.r + rhs.g + rhs.b;</div>
-<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <span class="keywordflow">return</span> sl &gt;= sr;</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;<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="l00783"></a><span class="lineno"> 783</span>&#160;{</div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; uint16_t sl, sr;</div>
-<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; sl = lhs.r + lhs.g + lhs.b;</div>
-<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; sr = rhs.r + rhs.g + rhs.b;</div>
-<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; <span class="keywordflow">return</span> sl &lt;= sr;</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;</div>
-<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00792"></a><span class="lineno"> 792</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="l00793"></a><span class="lineno"> 793</span>&#160;{</div>
-<div class="line"><a name="l00794"></a><span class="lineno"> 794</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="l00795"></a><span class="lineno"> 795</span>&#160; <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( p1.g, p2.g),</div>
-<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( p1.b, p2.b));</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;</div>
-<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00800"></a><span class="lineno"> 800</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="l00801"></a><span class="lineno"> 801</span>&#160;{</div>
-<div class="line"><a name="l00802"></a><span class="lineno"> 802</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="l00803"></a><span class="lineno"> 803</span>&#160; <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( p1.g, p2.g),</div>
-<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( p1.b, p2.b));</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*( const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p1, uint8_t d)</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>( <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( p1.r, d),</div>
-<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( p1.g, d),</div>
-<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( p1.b, d));</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, uint8_t d)</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/d, p1.g/d, p1.b/d);</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;</div>
-<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00823"></a><span class="lineno"> 823</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="l00824"></a><span class="lineno"> 824</span>&#160;{</div>
-<div class="line"><a name="l00825"></a><span class="lineno"> 825</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="l00826"></a><span class="lineno"> 826</span>&#160; p1.g &lt; p2.g ? p1.g : p2.g,</div>
-<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; p1.b &lt; p2.b ? p1.b : p2.b);</div>
-<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;}</div>
-<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;</div>
-<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00831"></a><span class="lineno"> 831</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="l00832"></a><span class="lineno"> 832</span>&#160;{</div>
-<div class="line"><a name="l00833"></a><span class="lineno"> 833</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="l00834"></a><span class="lineno"> 834</span>&#160; p1.g &gt; p2.g ? p1.g : p2.g,</div>
-<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; p1.b &gt; p2.b ? p1.b : p2.b);</div>
-<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;}</div>
-<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;</div>
-<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00839"></a><span class="lineno"> 839</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="l00840"></a><span class="lineno"> 840</span>&#160;{</div>
-<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> retval( p1);</div>
-<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; retval.nscale8_video( d);</div>
-<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; <span class="keywordflow">return</span> retval;</div>
-<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;}</div>
-<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;</div>
-<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;</div>
-<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;</div>
-<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;<span class="keyword">enum</span> EOrder {</div>
-<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; RGB=0012,</div>
-<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; RBG=0021,</div>
-<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; GRB=0102,</div>
-<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; GBR=0120,</div>
-<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; BRG=0201,</div>
-<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; BGR=0210</div>
-<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160;};</div>
-<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160;</div>
-<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160;FASTLED_NAMESPACE_END</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;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; } <a class="code" href="group___pixeltypes.html#gaeb40a08b7cb90c1e21bd408261558b99">HTMLColorCode</a>;</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="l00752"></a><span class="lineno"> 752</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="l00753"></a><span class="lineno"> 753</span>&#160;{</div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</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="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!= (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; <span class="keywordflow">return</span> !(lhs == 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;</div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</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="l00763"></a><span class="lineno"> 763</span>&#160;{</div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; uint16_t sl, sr;</div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; sl = lhs.r + lhs.g + lhs.b;</div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; sr = rhs.r + rhs.g + rhs.b;</div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <span class="keywordflow">return</span> sl &lt; sr;</div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;}</div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;</div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;<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="l00771"></a><span class="lineno"> 771</span>&#160;{</div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; uint16_t sl, sr;</div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; sl = lhs.r + lhs.g + lhs.b;</div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; sr = rhs.r + rhs.g + rhs.b;</div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <span class="keywordflow">return</span> sl &gt; sr;</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="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="l00779"></a><span class="lineno"> 779</span>&#160;{</div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; uint16_t sl, sr;</div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; sl = lhs.r + lhs.g + lhs.b;</div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; sr = rhs.r + rhs.g + rhs.b;</div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <span class="keywordflow">return</span> sl &gt;= sr;</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;<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="l00787"></a><span class="lineno"> 787</span>&#160;{</div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; uint16_t sl, sr;</div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; sl = lhs.r + lhs.g + lhs.b;</div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; sr = rhs.r + rhs.g + rhs.b;</div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="keywordflow">return</span> sl &lt;= sr;</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;</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;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</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="l00797"></a><span class="lineno"> 797</span>&#160;{</div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</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#ga07133b3085824d0fcd4f5086d286c4b5">qadd8</a>( p1.r, p2.r),</div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <a class="code" href="group___math.html#ga07133b3085824d0fcd4f5086d286c4b5">qadd8</a>( p1.g, p2.g),</div>
+<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <a class="code" href="group___math.html#ga07133b3085824d0fcd4f5086d286c4b5">qadd8</a>( p1.b, p2.b));</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;</div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</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="l00805"></a><span class="lineno"> 805</span>&#160;{</div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</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#gae261576a4c8155d6c0ba8615b2d2ecb3">qsub8</a>( p1.r, p2.r),</div>
+<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <a class="code" href="group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3">qsub8</a>( p1.g, p2.g),</div>
+<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <a class="code" href="group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3">qsub8</a>( p1.b, p2.b));</div>
+<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;}</div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;</div>
+<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00812"></a><span class="lineno"> 812</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="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">return</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( <a class="code" href="group___math.html#ga17d0d692de142f4d4379b8cc899eaefb">qmul8</a>( p1.r, d),</div>
+<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; <a class="code" href="group___math.html#ga17d0d692de142f4d4379b8cc899eaefb">qmul8</a>( p1.g, d),</div>
+<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <a class="code" href="group___math.html#ga17d0d692de142f4d4379b8cc899eaefb">qmul8</a>( p1.b, d));</div>
+<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;}</div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;</div>
+<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00820"></a><span class="lineno"> 820</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="l00821"></a><span class="lineno"> 821</span>&#160;{</div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</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="l00823"></a><span class="lineno"> 823</span>&#160;}</div>
+<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;</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="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00827"></a><span class="lineno"> 827</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="l00828"></a><span class="lineno"> 828</span>&#160;{</div>
+<div class="line"><a name="l00829"></a><span class="lineno"> 829</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="l00830"></a><span class="lineno"> 830</span>&#160; p1.g &lt; p2.g ? p1.g : p2.g,</div>
+<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; p1.b &lt; p2.b ? p1.b : p2.b);</div>
+<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;}</div>
+<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160;</div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</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="l00836"></a><span class="lineno"> 836</span>&#160;{</div>
+<div class="line"><a name="l00837"></a><span class="lineno"> 837</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="l00838"></a><span class="lineno"> 838</span>&#160; p1.g &gt; p2.g ? p1.g : p2.g,</div>
+<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; p1.b &gt; p2.b ? p1.b : p2.b);</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;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00843"></a><span class="lineno"> 843</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="l00844"></a><span class="lineno"> 844</span>&#160;{</div>
+<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> retval( p1);</div>
+<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; retval.nscale8_video( d);</div>
+<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <span class="keywordflow">return</span> retval;</div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160;}</div>
+<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160;</div>
+<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160;</div>
+<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;</div>
+<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160;<span class="keyword">enum</span> EOrder {</div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; RGB=0012,</div>
+<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; RBG=0021,</div>
+<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; GRB=0102,</div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; GBR=0120,</div>
+<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; BRG=0201,</div>
+<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; BGR=0210</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;</div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160;</div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="struct_c_r_g_b_html_aed04286b07335deede64d6de109a7312"><div class="ttname"><a href="struct_c_r_g_b.html#aed04286b07335deede64d6de109a7312">CRGB::setHue</a></div><div class="ttdeci">CRGB &amp; setHue(uint8_t hue) __attribute__((always_inline))</div><div class="ttdoc">allow assignment from just a Hue, saturation and value automatically at max. </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00201">pixeltypes.h:201</a></div></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="struct_c_r_g_b_html_a071f7ba57db3d9b88899f4c30c715a6b"><div class="ttname"><a href="struct_c_r_g_b.html#a071f7ba57db3d9b88899f4c30c715a6b">CRGB::nscale8</a></div><div class="ttdeci">CRGB &amp; nscale8(const CRGB &amp;scaledown)</div><div class="ttdoc">scale down a RGB to N 256ths of it&#39;s current brightness, using &#39;plain math&#39; dimming rules...</div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00362">pixeltypes.h:362</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_abd395f8a00bd4f9539f04200df1975f4"><div class="ttname"><a href="struct_c_r_g_b.html#abd395f8a00bd4f9539f04200df1975f4">CRGB::getLuma</a></div><div class="ttdeci">uint8_t getLuma() const </div><div class="ttdoc">Get the &#39;luma&#39; of a CRGB object - aka roughly how much light the CRGB pixel is putting out (from 0 to...</div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00451">pixeltypes.h:451</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_aa630fb7918dc81f255525ee90152e62f"><div class="ttname"><a href="struct_c_r_g_b.html#aa630fb7918dc81f255525ee90152e62f">CRGB::operator/=</a></div><div class="ttdeci">CRGB &amp; operator/=(uint8_t d)</div><div class="ttdoc">divide each of the channels by a constant </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00297">pixeltypes.h:297</a></div></div>
@@ -880,30 +883,30 @@ $(document).ready(function(){initNavTree('pixeltypes_8h_source.html','');});
<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="struct_c_h_s_v_html_acf5b316e91b4a7758057e0fd7cd3863e"><div class="ttname"><a href="struct_c_h_s_v.html#acf5b316e91b4a7758057e0fd7cd3863e">CHSV::CHSV</a></div><div class="ttdeci">CHSV() __attribute__((always_inline))</div><div class="ttdoc">default values are UNITIALIZED </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00042">pixeltypes.h:42</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_ac53fdb8ec5dc5b8c16904d971106ad75"><div class="ttname"><a href="struct_c_r_g_b.html#ac53fdb8ec5dc5b8c16904d971106ad75">CRGB::setHSV</a></div><div class="ttdeci">CRGB &amp; setHSV(uint8_t hue, uint8_t sat, uint8_t val) __attribute__((always_inline))</div><div class="ttdoc">allow assignment from H, S, and V </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00194">pixeltypes.h:194</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="struct_c_r_g_b_html_ab29249e850cfb300590408edcbcf5704"><div class="ttname"><a href="struct_c_r_g_b.html#ab29249e850cfb300590408edcbcf5704">CRGB::lerp8</a></div><div class="ttdeci">CRGB lerp8(CRGB &amp;other, fract8 frac)</div><div class="ttdoc">return a new CRGB object after performing a linear interpolation between this object and the passed i...</div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00484">pixeltypes.h:484</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___scaling_html_ga3fade00fb4cf5b937b973128198a7a79"><div class="ttname"><a href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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#l00299">scale8.h:299</a></div></div>
+<div class="ttc" id="group___math_html_gae261576a4c8155d6c0ba8615b2d2ecb3"><div class="ttname"><a href="group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3">qsub8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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__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#l00457">lib8tion.h:457</a></div></div>
+<div class="ttc" id="struct_c_r_g_b_html_ab29249e850cfb300590408edcbcf5704"><div class="ttname"><a href="struct_c_r_g_b.html#ab29249e850cfb300590408edcbcf5704">CRGB::lerp8</a></div><div class="ttdeci">CRGB lerp8(CRGB &amp;other, fract8 frac)</div><div class="ttdoc">return a new CRGB object after performing a linear interpolation between this object and the passed i...</div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00488">pixeltypes.h:488</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#l00343">lib8tion.h:343</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#l00474">lib8tion.h:474</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_af32e6bf80075fd5b3d8195fff790a036"><div class="ttname"><a href="struct_c_r_g_b.html#af32e6bf80075fd5b3d8195fff790a036">CRGB::operator-</a></div><div class="ttdeci">CRGB operator-()</div><div class="ttdoc">invert each channel </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00430">pixeltypes.h:430</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="struct_c_r_g_b_html_af1469c62f5a3b4bdf755851606d8e71f"><div class="ttname"><a href="struct_c_r_g_b.html#af1469c62f5a3b4bdf755851606d8e71f">CRGB::getParity</a></div><div class="ttdeci">uint8_t getParity()</div><div class="ttdoc">getParity returns 0 or 1, depending on the lowest bit of the sum of the color components. </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00509">pixeltypes.h:509</a></div></div>
+<div class="ttc" id="group___math_html_ga17d0d692de142f4d4379b8cc899eaefb"><div class="ttname"><a href="group___math.html#ga17d0d692de142f4d4379b8cc899eaefb">qmul8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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="struct_c_r_g_b_html_af1469c62f5a3b4bdf755851606d8e71f"><div class="ttname"><a href="struct_c_r_g_b.html#af1469c62f5a3b4bdf755851606d8e71f">CRGB::getParity</a></div><div class="ttdeci">uint8_t getParity()</div><div class="ttdoc">getParity returns 0 or 1, depending on the lowest bit of the sum of the color components. </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00513">pixeltypes.h:513</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_af5e0ce520027b5bc5b8aa106c113119c"><div class="ttname"><a href="struct_c_r_g_b.html#af5e0ce520027b5bc5b8aa106c113119c">CRGB::subtractFromRGB</a></div><div class="ttdeci">CRGB &amp; subtractFromRGB(uint8_t d)</div><div class="ttdoc">subtract a constant from each channel, saturating at 0x00 this is NOT an operator+= overload because ...</div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00258">pixeltypes.h:258</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_aee58e5c4ced4d42332280252d7e516d5"><div class="ttname"><a href="struct_c_r_g_b.html#aee58e5c4ced4d42332280252d7e516d5">CRGB::setColorCode</a></div><div class="ttdeci">CRGB &amp; setColorCode(uint32_t colorcode) __attribute__((always_inline))</div><div class="ttdoc">allow assignment from 32-bit (really 24-bit) 0xRRGGBB color code </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00215">pixeltypes.h:215</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_c_r_g_b_html_a86a495b2fb767196fb6b9e1d202a97c8"><div class="ttname"><a href="struct_c_r_g_b.html#a86a495b2fb767196fb6b9e1d202a97c8">CRGB::CRGB</a></div><div class="ttdeci">CRGB(ColorTemperature colorcode) __attribute__((always_inline))</div><div class="ttdoc">allow construction from a ColorTemperature enum </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00146">pixeltypes.h:146</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_a19d9f31569817a6274338a615e15ed43"><div class="ttname"><a href="struct_c_r_g_b.html#a19d9f31569817a6274338a615e15ed43">CRGB::operator%=</a></div><div class="ttdeci">CRGB &amp; operator%=(uint8_t scaledown)</div><div class="ttdoc">%= is a synonym for nscale8_video. </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00337">pixeltypes.h:337</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_a838b22bb1632166760934935a309e9d9"><div class="ttname"><a href="struct_c_r_g_b.html#a838b22bb1632166760934935a309e9d9">CRGB::setRGB</a></div><div class="ttdeci">CRGB &amp; setRGB(uint8_t nr, uint8_t ng, uint8_t nb) __attribute__((always_inline))</div><div class="ttdoc">allow assignment from R, G, and B </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00185">pixeltypes.h:185</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_a650404deb81cd2785fd9060c076393e6"><div class="ttname"><a href="struct_c_r_g_b.html#a650404deb81cd2785fd9060c076393e6">CRGB::operator&gt;&gt;=</a></div><div class="ttdeci">CRGB &amp; operator&gt;&gt;=(uint8_t d)</div><div class="ttdoc">right shift each of the channels by a constant </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00306">pixeltypes.h:306</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_ac7591f8a1299a6f54963cff08d94222a"><div class="ttname"><a href="struct_c_r_g_b.html#ac7591f8a1299a6f54963cff08d94222a">CRGB::operator-=</a></div><div class="ttdeci">CRGB &amp; operator-=(const CRGB &amp;rhs)</div><div class="ttdoc">subtract one RGB from another, saturating at 0x00 for each channel </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00246">pixeltypes.h:246</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_a9edaa43d7f1d6777b543c08b14844f13"><div class="ttname"><a href="struct_c_r_g_b.html#a9edaa43d7f1d6777b543c08b14844f13">CRGB::CRGB</a></div><div class="ttdeci">CRGB(const CHSV &amp;rhs) __attribute__((always_inline))</div><div class="ttdoc">allow construction from HSV color </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00161">pixeltypes.h:161</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_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#l00344">scale8.h:344</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_a84d8cb63b6fe8766b8b4bd66a189735f"><div class="ttname"><a href="struct_c_r_g_b.html#a84d8cb63b6fe8766b8b4bd66a189735f">CRGB::operator|=</a></div><div class="ttdeci">CRGB &amp; operator|=(const CRGB &amp;rhs)</div><div class="ttdoc">"or" operator brings each channel up to the higher of the two values </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00388">pixeltypes.h:388</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_a6ac0b64fb80dde1dc28e74b60da00b82"><div class="ttname"><a href="struct_c_r_g_b.html#a6ac0b64fb80dde1dc28e74b60da00b82">CRGB::CRGB</a></div><div class="ttdeci">CRGB(const CRGB &amp;rhs) __attribute__((always_inline))</div><div class="ttdoc">allow copy construction </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00153">pixeltypes.h:153</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_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#l00335">lib8tion.h:335</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_ac97afb676b3be14769ede58a55b1078a"><div class="ttname"><a href="struct_c_r_g_b.html#ac97afb676b3be14769ede58a55b1078a">CRGB::CRGB</a></div><div class="ttdeci">CRGB(uint8_t ir, uint8_t ig, uint8_t ib) __attribute__((always_inline))</div><div class="ttdoc">allow construction from R, G, B </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00127">pixeltypes.h:127</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_ab49109cf2ec532c643d4998f03cf16c7"><div class="ttname"><a href="struct_c_r_g_b.html#ab49109cf2ec532c643d4998f03cf16c7">CRGB::fadeToBlackBy</a></div><div class="ttdeci">CRGB &amp; fadeToBlackBy(uint8_t fadefactor)</div><div class="ttdoc">fadeToBlackBy is a synonym for nscale8( ..., 255-fadefactor) </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00381">pixeltypes.h:381</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_a8bb881dd011552b412af2845562b0df3"><div class="ttname"><a href="struct_c_r_g_b.html#a8bb881dd011552b412af2845562b0df3">CRGB::nscale8_video</a></div><div class="ttdeci">CRGB &amp; nscale8_video(uint8_t scaledown)</div><div class="ttdoc">scale down a RGB to N 256ths of it&#39;s current brightness, using &#39;video&#39; dimming rules, which means that unless the scale factor is ZERO each channel is guaranteed NOT to dim down to zero. </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00329">pixeltypes.h:329</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="struct_c_r_g_b_html_a218446cd8788c0659c5ad2b4c16c425c"><div class="ttname"><a href="struct_c_r_g_b.html#a218446cd8788c0659c5ad2b4c16c425c">CRGB::operator--</a></div><div class="ttdeci">CRGB &amp; operator--() __attribute__((always_inline))</div><div class="ttdoc">subtract a constant of &#39;1&#39; from each channel, saturating at 0x00 </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00267">pixeltypes.h:267</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_aa80fd3b2990b00a963aa009a3c4d095a"><div class="ttname"><a href="struct_c_r_g_b.html#aa80fd3b2990b00a963aa009a3c4d095a">CRGB::nscale8</a></div><div class="ttdeci">CRGB &amp; nscale8(uint8_t scaledown)</div><div class="ttdoc">scale down a RGB to N 256ths of it&#39;s current brightness, using &#39;plain math&#39; dimming rules...</div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00353">pixeltypes.h:353</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_a070437bde8dbf6ae34934f5f1b72ad32"><div class="ttname"><a href="struct_c_r_g_b.html#a070437bde8dbf6ae34934f5f1b72ad32">CRGB::getAverageLight</a></div><div class="ttdeci">uint8_t getAverageLight() const </div><div class="ttdoc">Get the average of the R, G, and B values. </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00463">pixeltypes.h:463</a></div></div>
@@ -913,25 +916,26 @@ $(document).ready(function(){initNavTree('pixeltypes_8h_source.html','');});
<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="struct_c_r_g_b_html_ad649a38adbfdabca5930019a8b6bc4d8"><div class="ttname"><a href="struct_c_r_g_b.html#ad649a38adbfdabca5930019a8b6bc4d8">CRGB::operator*=</a></div><div class="ttdeci">CRGB &amp; operator*=(uint8_t d)</div><div class="ttdoc">multiply each of the channels by a constant, saturating each channel at 0xFF </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00316">pixeltypes.h:316</a></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_c_r_g_b_html_a6b0b8f3da2b3b2b44778e142dbae47ed"><div class="ttname"><a href="struct_c_r_g_b.html#a6b0b8f3da2b3b2b44778e142dbae47ed">CRGB::maximizeBrightness</a></div><div class="ttdeci">void maximizeBrightness(uint8_t limit=255)</div><div class="ttdoc">maximize the brightness of this CRGB object </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00473">pixeltypes.h:473</a></div></div>
+<div class="ttc" id="group___math_html_ga07133b3085824d0fcd4f5086d286c4b5"><div class="ttname"><a href="group___math.html#ga07133b3085824d0fcd4f5086d286c4b5">qadd8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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_c_r_g_b_html_a6b0b8f3da2b3b2b44778e142dbae47ed"><div class="ttname"><a href="struct_c_r_g_b.html#a6b0b8f3da2b3b2b44778e142dbae47ed">CRGB::maximizeBrightness</a></div><div class="ttdeci">void maximizeBrightness(uint8_t limit=255)</div><div class="ttdoc">maximize the brightness of this CRGB object </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00477">pixeltypes.h:477</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_a07ccf0b05534eb13009555f751ec86f4"><div class="ttname"><a href="struct_c_r_g_b.html#a07ccf0b05534eb13009555f751ec86f4">CRGB::operator&amp;=</a></div><div class="ttdeci">CRGB &amp; operator&amp;=(const CRGB &amp;rhs)</div><div class="ttdoc">"and" operator brings each channel down to the lower of the two values </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00406">pixeltypes.h:406</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_a9eeb8fc616c7a50805b8146baffef8fd"><div class="ttname"><a href="struct_c_r_g_b.html#a9eeb8fc616c7a50805b8146baffef8fd">CRGB::fadeLightBy</a></div><div class="ttdeci">CRGB &amp; fadeLightBy(uint8_t fadefactor)</div><div class="ttdoc">fadeLightBy is a synonym for nscale8_video( ..., 255-fadefactor) </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00344">pixeltypes.h:344</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_a15ece8b6b3b8a54e61716cd2f0ecfd79"><div class="ttname"><a href="struct_c_r_g_b.html#a15ece8b6b3b8a54e61716cd2f0ecfd79">CRGB::operator=</a></div><div class="ttdeci">CRGB &amp; operator=(const CRGB &amp;rhs) __attribute__((always_inline))</div><div class="ttdoc">allow assignment from one RGB struct to another </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00167">pixeltypes.h:167</a></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___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#l00278">hsv2rgb.cpp:278</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_a7d12a1fba2712ba1153f5b73da6a3e3d"><div class="ttname"><a href="struct_c_r_g_b.html#a7d12a1fba2712ba1153f5b73da6a3e3d">CRGB::CRGB</a></div><div class="ttdeci">CRGB(LEDColorCorrection colorcode) __attribute__((always_inline))</div><div class="ttdoc">allow construction from a LEDColorCorrection enum </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00139">pixeltypes.h:139</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="struct_c_r_g_b_html_a77cbf242403cf6e190c6aa3598129e1c"><div class="ttname"><a href="struct_c_r_g_b.html#a77cbf242403cf6e190c6aa3598129e1c">CRGB::lerp16</a></div><div class="ttdeci">CRGB lerp16(CRGB &amp;other, fract16 frac)</div><div class="ttdoc">return a new CRGB object after performing a linear interpolation between this object and the passed i...</div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00496">pixeltypes.h:496</a></div></div>
+<div class="ttc" id="struct_c_r_g_b_html_a77cbf242403cf6e190c6aa3598129e1c"><div class="ttname"><a href="struct_c_r_g_b.html#a77cbf242403cf6e190c6aa3598129e1c">CRGB::lerp16</a></div><div class="ttdeci">CRGB lerp16(CRGB &amp;other, fract16 frac)</div><div class="ttdoc">return a new CRGB object after performing a linear interpolation between this object and the passed i...</div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00500">pixeltypes.h:500</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_a5b80746e55da30c6a1dad63b3edd5fd4"><div class="ttname"><a href="struct_c_r_g_b.html#a5b80746e55da30c6a1dad63b3edd5fd4">CRGB::scale8</a></div><div class="ttdeci">CRGB scale8(const CRGB &amp;scaledown) const </div><div class="ttdoc">return a CRGB object that is a scaled down version of this object </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00371">pixeltypes.h:371</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___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#l00314">scale8.h:314</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_r_g_b_html_ae912836f41dd2979ade6188ab0446fcf"><div class="ttname"><a href="struct_c_r_g_b.html#ae912836f41dd2979ade6188ab0446fcf">CRGB::CRGB</a></div><div class="ttdeci">CRGB(uint32_t colorcode) __attribute__((always_inline))</div><div class="ttdoc">allow construction from 32-bit (really 24-bit) bit 0xRRGGBB color code </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00133">pixeltypes.h:133</a></div></div>
-<div class="ttc" id="struct_c_r_g_b_html_acbcfc8af29d32eb9af1711ee92b60727"><div class="ttname"><a href="struct_c_r_g_b.html#acbcfc8af29d32eb9af1711ee92b60727">CRGB::setParity</a></div><div class="ttdeci">void setParity(uint8_t parity)</div><div class="ttdoc">setParity adjusts the color in the smallest way possible so that the parity of the color is now the d...</div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00538">pixeltypes.h:538</a></div></div>
+<div class="ttc" id="struct_c_r_g_b_html_acbcfc8af29d32eb9af1711ee92b60727"><div class="ttname"><a href="struct_c_r_g_b.html#acbcfc8af29d32eb9af1711ee92b60727">CRGB::setParity</a></div><div class="ttdeci">void setParity(uint8_t parity)</div><div class="ttdoc">setParity adjusts the color in the smallest way possible so that the parity of the color is now the d...</div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00542">pixeltypes.h:542</a></div></div>
<div class="ttc" id="struct_c_r_g_b_html_a6855b3f3a79778436044c9786ff00b73"><div class="ttname"><a href="struct_c_r_g_b.html#a6855b3f3a79778436044c9786ff00b73">CRGB::addToRGB</a></div><div class="ttdeci">CRGB &amp; addToRGB(uint8_t d)</div><div class="ttdoc">add a contstant to each channel, saturating at 0xFF this is NOT an operator+= overload because the co...</div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00237">pixeltypes.h:237</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="struct_c_r_g_b_html_a387c1484960be0f72a87c3369cdbba26"><div class="ttname"><a href="struct_c_r_g_b.html#a387c1484960be0f72a87c3369cdbba26">CRGB::operator[]</a></div><div class="ttdeci">uint8_t &amp; operator[](uint8_t x) __attribute__((always_inline))</div><div class="ttdoc">Array access operator to index into the crgb object. </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00110">pixeltypes.h:110</a></div></div>
+<div class="ttc" id="group___scaling_html_ga7386235cada3aca429b189681d2ec56d"><div class="ttname"><a href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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#l00146">scale8.h:146</a></div></div>
<div class="ttc" id="struct_c_h_s_v_html_a077b49ca9dfa160ea6321e633efd7421"><div class="ttname"><a href="struct_c_h_s_v.html#a077b49ca9dfa160ea6321e633efd7421">CHSV::CHSV</a></div><div class="ttdeci">CHSV(const CHSV &amp;rhs) __attribute__((always_inline))</div><div class="ttdoc">allow copy construction </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00053">pixeltypes.h:53</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#l00586">pixeltypes.h:586</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#l00590">pixeltypes.h:590</a></div></div>
<div class="ttc" id="struct_c_h_s_v_html_a1cae6431597acc31363c47748da6f32d"><div class="ttname"><a href="struct_c_h_s_v.html#a1cae6431597acc31363c47748da6f32d">CHSV::CHSV</a></div><div class="ttdeci">CHSV(uint8_t ih, uint8_t is, uint8_t iv) __attribute__((always_inline))</div><div class="ttdoc">allow construction from H, S, V </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00047">pixeltypes.h:47</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
@@ -939,7 +943,7 @@ $(document).ready(function(){initNavTree('pixeltypes_8h_source.html','');});
<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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 1cffdf02..8028006e 100644
--- a/docs/3.1/platforms_8h_source.html
+++ b/docs/3.1/platforms_8h_source.html
@@ -147,7 +147,7 @@ $(document).ready(function(){initNavTree('platforms_8h_source.html','');});
<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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 67521b40..0e687e04 100644
--- a/docs/3.1/power__mgt_8cpp_source.html
+++ b/docs/3.1/power__mgt_8cpp_source.html
@@ -279,8 +279,8 @@ $(document).ready(function(){initNavTree('power__mgt_8cpp_source.html','');});
<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#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_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#l00425">FastLED.h:425</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#l00429">FastLED.h:429</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>
@@ -294,7 +294,7 @@ $(document).ready(function(){initNavTree('power__mgt_8cpp_source.html','');});
<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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 e9f7b44e..766abda2 100644
--- a/docs/3.1/power__mgt_8h_source.html
+++ b/docs/3.1/power__mgt_8h_source.html
@@ -165,7 +165,7 @@ $(document).ready(function(){initNavTree('power__mgt_8h_source.html','');});
<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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 06077c62..6ec7f9fa 100644
--- a/docs/3.1/random8_8h_source.html
+++ b/docs/3.1/random8_8h_source.html
@@ -137,7 +137,7 @@ $(document).ready(function(){initNavTree('random8_8h_source.html','');});
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="group___random.html#ga216b1cfe4f62f92f5493515c6b74220c"> 37</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___random.html#ga4e63c74426f6516f28470dc1b814aefe">random8</a>(uint8_t lim)</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; uint8_t r = <a class="code" href="group___random.html#ga4e63c74426f6516f28470dc1b814aefe">random8</a>();</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; r = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( r, lim);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; r = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( r, lim);</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">return</span> r;</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>
@@ -182,10 +182,10 @@ $(document).ready(function(){initNavTree('random8_8h_source.html','');});
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor">#endif</span></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___random_html_ga95e371c2438843e0ed1ed83412b28c99"><div class="ttname"><a href="group___random.html#ga95e371c2438843e0ed1ed83412b28c99">random16_set_seed</a></div><div class="ttdeci">LIB8STATIC void random16_set_seed(uint16_t seed)</div><div class="ttdoc">Set the 16-bit seed used for the random number generator. </div><div class="ttdef"><b>Definition:</b> <a href="random8_8h_source.html#l00075">random8.h:75</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___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___random_html_ga1078b2029a50e86c93ccf4e3e1d85e7d"><div class="ttname"><a href="group___random.html#ga1078b2029a50e86c93ccf4e3e1d85e7d">random16_add_entropy</a></div><div class="ttdeci">LIB8STATIC void random16_add_entropy(uint16_t entropy)</div><div class="ttdoc">Add entropy into the random number generator. </div><div class="ttdef"><b>Definition:</b> <a href="random8_8h_source.html#l00087">random8.h:87</a></div></div>
<div class="ttc" id="group___random_html_ga860bc64bfca4ada980e70cf1e03dedd8"><div class="ttname"><a href="group___random.html#ga860bc64bfca4ada980e70cf1e03dedd8">random16_get_seed</a></div><div class="ttdeci">LIB8STATIC uint16_t random16_get_seed()</div><div class="ttdoc">Get the current seed value for the random number generator. </div><div class="ttdef"><b>Definition:</b> <a href="random8_8h_source.html#l00081">random8.h:81</a></div></div>
+<div class="ttc" id="group___scaling_html_gad7535ccda9c92470c4e6ee0265585555"><div class="ttname"><a href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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___random_html_ga17034d936ef716efe820e11c1df043b0"><div class="ttname"><a href="group___random.html#ga17034d936ef716efe820e11c1df043b0">random16</a></div><div class="ttdeci">LIB8STATIC uint16_t random16()</div><div class="ttdoc">Generate a 16 bit random number. </div><div class="ttdef"><b>Definition:</b> <a href="random8_8h_source.html#l00029">random8.h:29</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
@@ -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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 f8d5435d..1fa4b16a 100644
--- a/docs/3.1/release__notes_8md_source.html
+++ b/docs/3.1/release__notes_8md_source.html
@@ -118,156 +118,157 @@ $(document).ready(function(){initNavTree('release__notes_8md.html','');});
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;* Improvements to rgb2hsv accuracy</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;* Fixed noise discontinuity </div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;* Add wino board support</div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;* Fix scale8 (so now, scale8(255,255) == 255, not 254!)</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;FastLED3.1.1</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;* Enabled RFDuino/nrf51822 hardware SPI support</div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;* Fix edge case bug w/HSV palette blending </div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;* Fix power management issue w/parallel output</div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;* Use static_asserts for some more useful compile time errors around bad pins</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;* Roll power management into FastLED.show/delay directly</div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;* Support for adafruit pixies on arduino type platforms that have SoftwareSerial</div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; * TODO: support hardware serial on platforms that have it available</div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;* Add UCS2903 timings</div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;* Preliminary CPixelView/CRGBSet code - more flexible treatment of groups of arrays </div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; * https://github.com/FastLED/FastLED/wiki/RGBSet-Reference</div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</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;FastLED3.1.1</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;* Enabled RFDuino/nrf51822 hardware SPI support</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;* Fix edge case bug w/HSV palette blending </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;* Fix power management issue w/parallel output</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;* Use static_asserts for some more useful compile time errors around bad pins</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;* Roll power management into FastLED.show/delay directly</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;* Support for adafruit pixies on arduino type platforms that have SoftwareSerial</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; * TODO: support hardware serial on platforms that have it available</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;* Add UCS2903 timings</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;* Preliminary CPixelView/CRGBSet code - more flexible treatment of groups of arrays </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; * https://github.com/FastLED/FastLED/wiki/RGBSet-Reference</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;FastLED3.1.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;* Added support for the following platforms</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; * Arduino Zero</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; * Teensy LC</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; * RFDuino/nrf51822</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; * Spark Core</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;* Major internal code reoganization</div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;* Started doxygen based documentation </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;* Lots of bug/performance fixes</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;* Parallel output on various arm platforms</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;* lots of new stuff</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;FastLED3.0.2</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;* possibly fix issues #67 and #90 by fixing gcc 4.8.x support</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;FastLED3.0.1</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;* fix issue #89 w/power management pin always being on</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;FastLED3.0</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;* Added support for the following platforms:</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; * Arduino due</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; * Teensy 3.1</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;* Added the following LED chipsets:</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; * USC1903_400</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; * GW6205 / GW6205_400</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; * APA102</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; * APA104</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; * LPD1886</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; * P9813</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; * SmartMatrix</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;* Added multiple examples:</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; * ColorPalette - show off the color palette code</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; * ColorTemperature - show off the color correction code</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; * Fire2012</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; * Fire2012WithPalette</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; * Multiple led controller examples</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; * Noise</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; * NoisePlayground</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; * NoisePlusPalette</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; * SmartMatrix - show off SmartMatrix support</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; * XYMatrix - show how to use a mtrix layout of leds</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;* Added color correction</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;* Added dithering</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;* Added power management support</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;* Added support for color palettes</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;* Added easing functions</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;* Added fast trig functions</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;* Added simplex noise functions</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;* Added color utility functions</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;* Fixed DMXSERIAL/DMXSIMPLE support</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;* Timing adjustments for existing SPI chipsets</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;* Cleaned up the code layout to make platform support easier</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;* Many bug fixes </div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;* A number of performance/memory improvements</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;* Remove Squant (takes up space!)</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;FastLED2</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;## Full release of the library</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;## Release Candidate 6</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;* Rename library, offically, to FastLED, move to github </div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;* Update keywords with all the new stuffs</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;## Release Candidate 5</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;* Gemma and Trinket: supported except for global &quot;setBrightness&quot;</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;## Release Candidate 4</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;* Added NEOPIXEL as a synonym for WS2811</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;* Fix WS2811/WS2812B timings, bring it in line to exactly 1.25ns/bit. </div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;* Fix handling of constant color definitions (damn you, gcc!)</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 3</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;* Fixed bug when Clock and Data were on the same port</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;* Added ability to set pixel color directly from HSV</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;* Added ability to retrieve current random16 seed</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 2 </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;* mostly bug fixes</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;* Fix SPI macro definitions for latest teensy3 software update</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;* Teensy 2 compilation fix</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;* hsv2rgb_rainbow performance fix</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;## Release Candidate 1</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;* New unified/simplified API for adding/using controllers</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;* fleshout clockless chip support</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;* add hsv (spectrum and rainbow style colors)</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;* high speed memory management operations</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;* library for interpolation/easing functions</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;* various api changes, addition of clear and showColor functions</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;* scale value applied to all show methods </div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;* bug fixes for SM16716</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;* performance improvements, lpd8806 exceeds 22Mbit now</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;* hardware def fixes</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;* allow alternate rgb color orderings</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;* high speed math methods</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;* rich CRGB structure</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;## Preview 3</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;* True hardware SPI support for teensy (up to 20Mbit output!)</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;* Minor bug fixes/tweaks</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;## Preview 2</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;* Rename pin class to FastPin</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;* Replace latch with select, more accurate description of what it does</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;* Enforce intra-frame timing for ws2801s</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;* SM16716 support</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</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="l00140"></a><span class="lineno"> 140</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="l00141"></a><span class="lineno"> 141</span>&#160;en if you&#39;re using the hardware SPI pins</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;* Add pin definitions for the arduino megas - should fix ws2811 support</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;* Add pin definitions for the leonardo - should fix spi support and pin mappings</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;* Add warnings when pin definitions are missing</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;* Added google+ community for fastspi users - https://plus.google.com/communities/109127054924227823508</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;# Add pin definitions for Teensy++ 2.0</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</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;FastLED3.1.0</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;* Added support for the following platforms</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; * Arduino Zero</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; * Teensy LC</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; * RFDuino/nrf51822</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; * Spark Core</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;* Major internal code reoganization</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;* Started doxygen based documentation </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;* Lots of bug/performance fixes</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;* Parallel output on various arm platforms</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;* lots of new stuff</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;FastLED3.0.2</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;* possibly fix issues #67 and #90 by fixing gcc 4.8.x support</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;FastLED3.0.1</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;* fix issue #89 w/power management pin always being on</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;FastLED3.0</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;* Added support for the following platforms:</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; * Arduino due</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; * Teensy 3.1</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;* Added the following LED chipsets:</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; * USC1903_400</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; * GW6205 / GW6205_400</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; * APA102</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; * APA104</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; * LPD1886</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; * P9813</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; * SmartMatrix</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;* Added multiple examples:</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; * ColorPalette - show off the color palette code</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; * ColorTemperature - show off the color correction code</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; * Fire2012</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; * Fire2012WithPalette</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; * Multiple led controller examples</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; * Noise</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; * NoisePlayground</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; * NoisePlusPalette</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; * SmartMatrix - show off SmartMatrix support</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; * XYMatrix - show how to use a mtrix layout of leds</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;* Added color correction</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;* Added dithering</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;* Added power management support</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;* Added support for color palettes</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;* Added easing functions</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;* Added fast trig functions</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;* Added simplex noise functions</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;* Added color utility functions</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;* Fixed DMXSERIAL/DMXSIMPLE support</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;* Timing adjustments for existing SPI chipsets</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;* Cleaned up the code layout to make platform support easier</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;* Many bug fixes </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;* A number of performance/memory improvements</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;* Remove Squant (takes up space!)</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;FastLED2</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;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;## Full release of the library</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 6</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;* Rename library, offically, to FastLED, move to github </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;* Update keywords with all the new stuffs</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;## Release Candidate 5</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;* Gemma and Trinket: supported except for global &quot;setBrightness&quot;</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;## Release Candidate 4</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;* Added NEOPIXEL as a synonym for WS2811</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;* Fix WS2811/WS2812B timings, bring it in line to exactly 1.25ns/bit. </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;* Fix handling of constant color definitions (damn you, gcc!)</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;## Release Candidate 3</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;* Fixed bug when Clock and Data were on the same port</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;* Added ability to set pixel color directly from HSV</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;* Added ability to retrieve current random16 seed</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;## Release Candidate 2 </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;* mostly bug fixes</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;* Fix SPI macro definitions for latest teensy3 software update</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;* Teensy 2 compilation fix</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;* hsv2rgb_rainbow performance fix</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;## Release Candidate 1</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;* New unified/simplified API for adding/using controllers</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;* fleshout clockless chip support</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;* add hsv (spectrum and rainbow style colors)</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;* high speed memory management operations</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;* library for interpolation/easing functions</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;* various api changes, addition of clear and showColor functions</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;* scale value applied to all show methods </div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;* bug fixes for SM16716</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;* performance improvements, lpd8806 exceeds 22Mbit now</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;* hardware def fixes</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;* allow alternate rgb color orderings</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;* high speed math methods</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;* rich CRGB structure</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;## Preview 3</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;* True hardware SPI support for teensy (up to 20Mbit output!)</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;* Minor bug fixes/tweaks</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;## Preview 2</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;* Rename pin class to FastPin</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;* Replace latch with select, more accurate description of what it does</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;* Enforce intra-frame timing for ws2801s</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;* SM16716 support</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</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="l00141"></a><span class="lineno"> 141</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="l00142"></a><span class="lineno"> 142</span>&#160;en if you&#39;re using the hardware SPI pins</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;* Add pin definitions for the arduino megas - should fix ws2811 support</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;* Add pin definitions for the leonardo - should fix spi support and pin mappings</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;* Add warnings when pin definitions are missing</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;* Added google+ community for fastspi users - https://plus.google.com/communities/109127054924227823508</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;# Add pin definitions for Teensy++ 2.0</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;## Preview 1</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;* Initial release</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</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;## Preview 1</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;* Initial release</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><!-- 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 7691cb4a..4ba8d8c1 100644
--- a/docs/3.1/scale8_8h_source.html
+++ b/docs/3.1/scale8_8h_source.html
@@ -114,470 +114,546 @@ $(document).ready(function(){initNavTree('scale8_8h_source.html','');});
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
-<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af"> 20</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( uint8_t i, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</div>
+<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555"> 20</a></span>&#160;LIB8STATIC_ALWAYS_INLINE uint8_t <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( uint8_t i, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</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">#if SCALE8_C == 1</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordflow">return</span> ((uint16_t)i * (uint16_t)(scale) ) &gt;&gt; 8;</div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#elif SCALE8_AVRASM == 1</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#if defined(LIB8_ATTINY)</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; uint8_t work=0;</div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; uint8_t cnt=0x80;</div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="stringliteral">&quot;LOOP_%=: \n\t&quot;</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="comment">/*&quot; sbrc %[scale], 0 \n\t&quot;</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> &quot; add %[work], %[i] \n\t&quot;</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> &quot; ror %[work] \n\t&quot;</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> &quot; lsr %[scale] \n\t&quot;</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> &quot; clc \n\t&quot;*/</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="stringliteral">&quot; sbrc %[scale], 0 \n\t&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="stringliteral">&quot; add %[work], %[i] \n\t&quot;</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="stringliteral">&quot; ror %[work] \n\t&quot;</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="stringliteral">&quot; lsr %[scale] \n\t&quot;</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="stringliteral">&quot; lsr %[cnt] \n\t&quot;</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="stringliteral">&quot;brcc LOOP_%=&quot;</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; : [work] <span class="stringliteral">&quot;+r&quot;</span> (work), [cnt] <span class="stringliteral">&quot;+r&quot;</span> (cnt)</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; : [scale] <span class="stringliteral">&quot;r&quot;</span> (scale), [i] <span class="stringliteral">&quot;r&quot;</span> (i)</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; <span class="keywordflow">return</span> work;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="comment">/* Multiply 8-bit i * 8-bit scale, giving 16-bit r1,r0 */</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="stringliteral">&quot;mul %0, %1 \n\t&quot;</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="comment">/* Move the high 8-bits of the product (r1) back to i */</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="stringliteral">&quot;mov %0, r1 \n\t&quot;</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</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="l00053"></a><span class="lineno"> 53</span>&#160; <span class="stringliteral">&quot;clr __zero_reg__ \n\t&quot;</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; : <span class="stringliteral">&quot;+a&quot;</span> (i) <span class="comment">/* writes to i */</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; : <span class="stringliteral">&quot;a&quot;</span> (scale) <span class="comment">/* uses scale */</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span> <span class="comment">/* clobbers r0, r1 */</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="comment">/* Return the result */</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">return</span> i;</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;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#error &quot;No implementation for scale8 available.&quot;</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;}</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="l00073"></a><span class="lineno"><a class="line" href="group___scaling.html#ga333095ffa436c94d3e77ee9dc39da1c1"> 73</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___scaling.html#ga333095ffa436c94d3e77ee9dc39da1c1">scale8_video</a>( uint8_t i, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</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">#if SCALE8_C == 1 || defined(LIB8_ATTINY)</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; uint8_t j = (((int)i * (<span class="keywordtype">int</span>)scale) &gt;&gt; 8) + ((i&amp;&amp;scale)?1:0);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="comment">// uint8_t nonzeroscale = (scale != 0) ? 1 : 0;</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="comment">// uint8_t j = (i == 0) ? 0 : (((int)i * (int)(scale) ) &gt;&gt; 8) + nonzeroscale;</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> j;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor">#elif SCALE8_AVRASM == 1</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; uint8_t j=0;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="stringliteral">&quot; tst %[i]\n\t&quot;</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="stringliteral">&quot; breq L_%=\n\t&quot;</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="stringliteral">&quot; mul %[i], %[scale]\n\t&quot;</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="stringliteral">&quot; mov %[j], r1\n\t&quot;</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="stringliteral">&quot; clr __zero_reg__\n\t&quot;</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="stringliteral">&quot; cpse %[scale], r1\n\t&quot;</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="stringliteral">&quot; subi %[j], 0xFF\n\t&quot;</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="stringliteral">&quot;L_%=: \n\t&quot;</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; : [j] <span class="stringliteral">&quot;+a&quot;</span> (j)</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; : [i] <span class="stringliteral">&quot;a&quot;</span> (i), [scale] <span class="stringliteral">&quot;a&quot;</span> (scale)</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span>);</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">return</span> j;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="comment">// uint8_t nonzeroscale = (scale != 0) ? 1 : 0;</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="comment">// asm volatile(</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">// &quot; tst %0 \n&quot;</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// &quot; breq L_%= \n&quot;</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="comment">// &quot; mul %0, %1 \n&quot;</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="comment">// &quot; mov %0, r1 \n&quot;</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">// &quot; add %0, %2 \n&quot;</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="comment">// &quot; clr __zero_reg__ \n&quot;</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="comment">// &quot;L_%=: \n&quot;</span></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">// : &quot;+a&quot; (i)</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="comment">// : &quot;a&quot; (scale), &quot;a&quot; (nonzeroscale)</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">// : &quot;r0&quot;, &quot;r1&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">// // Return the result</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="comment">// return i;</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor">#error &quot;No implementation for scale8_video available.&quot;</span></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;}</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="l00121"></a><span class="lineno"><a class="line" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c"> 121</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( uint8_t i, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</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">#if SCALE8_C == 1</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">return</span> ((<span class="keywordtype">int</span>)i * (<span class="keywordtype">int</span>)(scale) ) &gt;&gt; 8;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#elif SCALE8_AVRASM == 1</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="comment">/* Multiply 8-bit i * 8-bit scale, giving 16-bit r1,r0 */</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="stringliteral">&quot;mul %0, %1 \n\t&quot;</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="comment">/* Move the high 8-bits of the product (r1) back to i */</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="stringliteral">&quot;mov %0, r1 \n\t&quot;</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="comment">/* R1 IS LEFT DIRTY HERE; YOU MUST ZERO IT OUT YOURSELF */</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="comment">/* &quot;clr __zero_reg__ \n\t&quot; */</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; : <span class="stringliteral">&quot;+a&quot;</span> (i) <span class="comment">/* writes to i */</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; : <span class="stringliteral">&quot;a&quot;</span> (scale) <span class="comment">/* uses scale */</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span> <span class="comment">/* clobbers r0, r1 */</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="comment">// Return the result</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span> i;</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="preprocessor">#error &quot;No implementation for scale8_LEAVING_R1_DIRTY available.&quot;</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="preprocessor">#endif</span></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="l00149"></a><span class="lineno"> 149</span>&#160;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="group___scaling.html#ga5f6dde3d9398f4b389c96e759a3f7b80"> 150</a></span>&#160;LIB8STATIC <span class="keywordtype">void</span> <a class="code" href="group___scaling.html#ga5f6dde3d9398f4b389c96e759a3f7b80">nscale8_LEAVING_R1_DIRTY</a>( uint8_t&amp; i, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</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="preprocessor">#if SCALE8_C == 1</span></div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; i = ((int)i * (<span class="keywordtype">int</span>)(scale) ) &gt;&gt; 8;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#if (FASTLED_SCALE8_FIXED == 1)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">return</span> (((uint16_t)i) * (1+(uint16_t)(scale))) &gt;&gt; 8;</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="keywordflow">return</span> ((uint16_t)i * (uint16_t)(scale) ) &gt;&gt; 8;</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;<span class="preprocessor">#elif SCALE8_AVRASM == 1</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#if defined(LIB8_ATTINY)</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#if (FASTLED_SCALE8_FIXED == 1)</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; uint8_t work=i;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; uint8_t work=0;</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; uint8_t cnt=0x80;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#if (FASTLED_SCALE8_FIXED == 1)</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="stringliteral">&quot; inc %[scale] \n\t&quot;</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="stringliteral">&quot; breq DONE_%= \n\t&quot;</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="stringliteral">&quot; clr %[work] \n\t&quot;</span></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; <span class="stringliteral">&quot;LOOP_%=: \n\t&quot;</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="comment">/*&quot; sbrc %[scale], 0 \n\t&quot;</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> &quot; add %[work], %[i] \n\t&quot;</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> &quot; ror %[work] \n\t&quot;</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"> &quot; lsr %[scale] \n\t&quot;</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"> &quot; clc \n\t&quot;*/</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="stringliteral">&quot; sbrc %[scale], 0 \n\t&quot;</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="stringliteral">&quot; add %[work], %[i] \n\t&quot;</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="stringliteral">&quot; ror %[work] \n\t&quot;</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="stringliteral">&quot; lsr %[scale] \n\t&quot;</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="stringliteral">&quot; lsr %[cnt] \n\t&quot;</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="stringliteral">&quot;brcc LOOP_%= \n\t&quot;</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="stringliteral">&quot;DONE_%=: \n\t&quot;</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; : [work] <span class="stringliteral">&quot;+r&quot;</span> (work), [cnt] <span class="stringliteral">&quot;+r&quot;</span> (cnt)</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; : [scale] <span class="stringliteral">&quot;r&quot;</span> (scale), [i] <span class="stringliteral">&quot;r&quot;</span> (i)</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="keywordflow">return</span> work;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#if (FASTLED_SCALE8_FIXED==1)</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="comment">// Multiply 8-bit i * 8-bit scale, giving 16-bit r1,r0</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="stringliteral">&quot;mul %0, %1 \n\t&quot;</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="comment">// Add i to r0, possibly setting the carry flag</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="stringliteral">&quot;add r0, %0 \n\t&quot;</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="comment">// load the immediate 0 into i (note, this does _not_ touch any flags)</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="stringliteral">&quot;ldi %0, 0x00 \n\t&quot;</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">// walk and chew gum at the same time</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="stringliteral">&quot;adc %0, r1 \n\t&quot;</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="comment">/* Multiply 8-bit i * 8-bit scale, giving 16-bit r1,r0 */</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="stringliteral">&quot;mul %0, %1 \n\t&quot;</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="comment">/* Move the high 8-bits of the product (r1) back to i */</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="stringliteral">&quot;mov %0, r1 \n\t&quot;</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</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="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="stringliteral">&quot;clr __zero_reg__ \n\t&quot;</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="stringliteral">&quot;+a&quot;</span> (i) <span class="comment">/* writes to i */</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; : <span class="stringliteral">&quot;a&quot;</span> (scale) <span class="comment">/* uses scale */</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span> <span class="comment">/* clobbers r0, r1 */</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; <span class="comment">/* Return the result */</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">return</span> i;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#error &quot;No implementation for scale8 available.&quot;</span></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="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="l00098"></a><span class="lineno"><a class="line" href="group___scaling.html#ga628b417ea1507e3447cdf5f308d9b6d5"> 98</a></span>&#160;LIB8STATIC_ALWAYS_INLINE uint8_t <a class="code" href="group___scaling.html#ga628b417ea1507e3447cdf5f308d9b6d5">scale8_video</a>( uint8_t i, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</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">#if SCALE8_C == 1 || defined(LIB8_ATTINY)</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; uint8_t j = (((int)i * (<span class="keywordtype">int</span>)scale) &gt;&gt; 8) + ((i&amp;&amp;scale)?1:0);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">// uint8_t nonzeroscale = (scale != 0) ? 1 : 0;</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="comment">// uint8_t j = (i == 0) ? 0 : (((int)i * (int)(scale) ) &gt;&gt; 8) + nonzeroscale;</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">return</span> j;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor">#elif SCALE8_AVRASM == 1</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; uint8_t j=0;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="stringliteral">&quot; tst %[i]\n\t&quot;</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="stringliteral">&quot; breq L_%=\n\t&quot;</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="stringliteral">&quot; mul %[i], %[scale]\n\t&quot;</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="stringliteral">&quot; mov %[j], r1\n\t&quot;</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="stringliteral">&quot; clr __zero_reg__\n\t&quot;</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="stringliteral">&quot; cpse %[scale], r1\n\t&quot;</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="stringliteral">&quot; subi %[j], 0xFF\n\t&quot;</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="stringliteral">&quot;L_%=: \n\t&quot;</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; : [j] <span class="stringliteral">&quot;+a&quot;</span> (j)</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; : [i] <span class="stringliteral">&quot;a&quot;</span> (i), [scale] <span class="stringliteral">&quot;a&quot;</span> (scale)</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span>);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">return</span> j;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// uint8_t nonzeroscale = (scale != 0) ? 1 : 0;</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// asm volatile(</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="comment">// &quot; tst %0 \n&quot;</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// &quot; breq L_%= \n&quot;</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// &quot; mul %0, %1 \n&quot;</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// &quot; mov %0, r1 \n&quot;</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="comment">// &quot; add %0, %2 \n&quot;</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="comment">// &quot; clr __zero_reg__ \n&quot;</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="comment">// &quot;L_%=: \n&quot;</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="comment">// : &quot;+a&quot; (i)</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="comment">// : &quot;a&quot; (scale), &quot;a&quot; (nonzeroscale)</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="comment">// : &quot;r0&quot;, &quot;r1&quot;);</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; <span class="comment">// // Return the result</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="comment">// return i;</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="preprocessor">#error &quot;No implementation for scale8_video available.&quot;</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="preprocessor">#endif</span></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="l00146"></a><span class="lineno"><a class="line" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d"> 146</a></span>&#160;LIB8STATIC_ALWAYS_INLINE uint8_t <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>( uint8_t i, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</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="preprocessor">#if SCALE8_C == 1</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="preprocessor">#if (FASTLED_SCALE8_FIXED == 1)</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">return</span> (((uint16_t)i) * ((uint16_t)(scale)+1)) &gt;&gt; 8;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">return</span> ((<span class="keywordtype">int</span>)i * (<span class="keywordtype">int</span>)(scale) ) &gt;&gt; 8;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="preprocessor">#elif SCALE8_AVRASM == 1</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">/* Multiply 8-bit i * 8-bit scale, giving 16-bit r1,r0 */</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="stringliteral">&quot;mul %0, %1 \n\t&quot;</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="comment">/* Move the high 8-bits of the product (r1) back to i */</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="stringliteral">&quot;mov %0, r1 \n\t&quot;</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="comment">/* R1 IS LEFT DIRTY HERE; YOU MUST ZERO IT OUT YOURSELF */</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">/* &quot;clr __zero_reg__ \n\t&quot; */</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; : <span class="stringliteral">&quot;+a&quot;</span> (i) <span class="comment">/* writes to i */</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; : <span class="stringliteral">&quot;a&quot;</span> (scale) <span class="comment">/* uses scale */</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span> <span class="comment">/* clobbers r0, r1 */</span> );</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor">#error &quot;No implementation for nscale8_LEAVING_R1_DIRTY available.&quot;</span></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;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="group___scaling.html#gab341cef8d46232269bb70092fed9eb75"> 175</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___scaling.html#gab341cef8d46232269bb70092fed9eb75">scale8_video_LEAVING_R1_DIRTY</a>( uint8_t i, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</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="preprocessor">#if SCALE8_C == 1 || defined(LIB8_ATTINY)</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; uint8_t j = (((int)i * (<span class="keywordtype">int</span>)scale) &gt;&gt; 8) + ((i&amp;&amp;scale)?1:0);</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="comment">// uint8_t nonzeroscale = (scale != 0) ? 1 : 0;</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="comment">// uint8_t j = (i == 0) ? 0 : (((int)i * (int)(scale) ) &gt;&gt; 8) + nonzeroscale;</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">return</span> j;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor">#elif SCALE8_AVRASM == 1</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; uint8_t j=0;</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="stringliteral">&quot; tst %[i]\n\t&quot;</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="stringliteral">&quot; breq L_%=\n\t&quot;</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="stringliteral">&quot; mul %[i], %[scale]\n\t&quot;</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="stringliteral">&quot; mov %[j], r1\n\t&quot;</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="stringliteral">&quot; breq L_%=\n\t&quot;</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="stringliteral">&quot; subi %[j], 0xFF\n\t&quot;</span></div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="stringliteral">&quot;L_%=: \n\t&quot;</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; : [j] <span class="stringliteral">&quot;+a&quot;</span> (j)</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; : [i] <span class="stringliteral">&quot;a&quot;</span> (i), [scale] <span class="stringliteral">&quot;a&quot;</span> (scale)</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span>);</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">return</span> j;</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="comment">// uint8_t nonzeroscale = (scale != 0) ? 1 : 0;</span></div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="comment">// asm volatile(</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="comment">// &quot; tst %0 \n&quot;</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="comment">// &quot; breq L_%= \n&quot;</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="comment">// &quot; mul %0, %1 \n&quot;</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="comment">// &quot; mov %0, r1 \n&quot;</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="comment">// &quot; add %0, %2 \n&quot;</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="comment">// &quot; clr __zero_reg__ \n&quot;</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="comment">// &quot;L_%=: \n&quot;</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; <span class="comment">// : &quot;+a&quot; (i)</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="comment">// : &quot;a&quot; (scale), &quot;a&quot; (nonzeroscale)</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="comment">// : &quot;r0&quot;, &quot;r1&quot;);</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="comment">// // Return the result</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="comment">// return i;</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor">#error &quot;No implementation for scale8_video_LEAVING_R1_DIRTY available.&quot;</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;}</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="preprocessor"> #if (FASTLED_SCALE8_FIXED==1)</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="comment">// Multiply 8-bit i * 8-bit scale, giving 16-bit r1,r0</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="stringliteral">&quot;mul %0, %1 \n\t&quot;</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="comment">// Add i to r0, possibly setting the carry flag</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="stringliteral">&quot;add r0, %0 \n\t&quot;</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">// load the immediate 0 into i (note, this does _not_ touch any flags)</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="stringliteral">&quot;ldi %0, 0x00 \n\t&quot;</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="comment">// walk and chew gum at the same time</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="stringliteral">&quot;adc %0, r1 \n\t&quot;</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor"> #else</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="comment">/* Multiply 8-bit i * 8-bit scale, giving 16-bit r1,r0 */</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="stringliteral">&quot;mul %0, %1 \n\t&quot;</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="comment">/* Move the high 8-bits of the product (r1) back to i */</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="stringliteral">&quot;mov %0, r1 \n\t&quot;</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor"> #endif</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">/* R1 IS LEFT DIRTY HERE; YOU MUST ZERO IT OUT YOURSELF */</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="comment">/* &quot;clr __zero_reg__ \n\t&quot; */</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="stringliteral">&quot;+a&quot;</span> (i) <span class="comment">/* writes to i */</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; : <span class="stringliteral">&quot;a&quot;</span> (scale) <span class="comment">/* uses scale */</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span> <span class="comment">/* clobbers r0, r1 */</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="comment">// Return the result</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">return</span> i;</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor">#error &quot;No implementation for scale8_LEAVING_R1_DIRTY available.&quot;</span></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;</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"><a class="line" href="group___scaling.html#ga025b1e8d81032d15fe1ab500f804f3f2"> 190</a></span>&#160;LIB8STATIC_ALWAYS_INLINE <span class="keywordtype">void</span> <a class="code" href="group___scaling.html#ga025b1e8d81032d15fe1ab500f804f3f2">nscale8_LEAVING_R1_DIRTY</a>( uint8_t&amp; i, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</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 SCALE8_C == 1</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor">#if (FASTLED_SCALE8_FIXED == 1)</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; i = (((uint16_t)i) * ((uint16_t)(scale)+1)) &gt;&gt; 8;</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; i = ((int)i * (<span class="keywordtype">int</span>)(scale) ) &gt;&gt; 8;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor">#elif SCALE8_AVRASM == 1</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="preprocessor"> #if (FASTLED_SCALE8_FIXED==1)</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="comment">// Multiply 8-bit i * 8-bit scale, giving 16-bit r1,r0</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="stringliteral">&quot;mul %0, %1 \n\t&quot;</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="comment">// Add i to r0, possibly setting the carry flag</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="stringliteral">&quot;add r0, %0 \n\t&quot;</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="comment">// load the immediate 0 into i (note, this does _not_ touch any flags)</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="stringliteral">&quot;ldi %0, 0x00 \n\t&quot;</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="comment">// walk and chew gum at the same time</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="stringliteral">&quot;adc %0, r1 \n\t&quot;</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor"> #else</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="comment">/* Multiply 8-bit i * 8-bit scale, giving 16-bit r1,r0 */</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="stringliteral">&quot;mul %0, %1 \n\t&quot;</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="comment">/* Move the high 8-bits of the product (r1) back to i */</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="stringliteral">&quot;mov %0, r1 \n\t&quot;</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor"> #endif</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="comment">/* R1 IS LEFT DIRTY HERE; YOU MUST ZERO IT OUT YOURSELF */</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="comment">/* &quot;clr __zero_reg__ \n\t&quot; */</span></div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div>
-<div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="group___scaling.html#ga2a580fcaa010558218faae95d1936635"> 222</a></span>&#160;LIB8STATIC <span class="keywordtype">void</span> <a class="code" href="group___scaling.html#ga2a580fcaa010558218faae95d1936635">nscale8_video_LEAVING_R1_DIRTY</a>( uint8_t &amp; i, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</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">#if SCALE8_C == 1 || defined(LIB8_ATTINY)</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; i = (((int)i * (<span class="keywordtype">int</span>)scale) &gt;&gt; 8) + ((i&amp;&amp;scale)?1:0);</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor">#elif SCALE8_AVRASM == 1</span></div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="stringliteral">&quot; tst %[i]\n\t&quot;</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="stringliteral">&quot; breq L_%=\n\t&quot;</span></div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="stringliteral">&quot; mul %[i], %[scale]\n\t&quot;</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="stringliteral">&quot; mov %[i], r1\n\t&quot;</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="stringliteral">&quot; breq L_%=\n\t&quot;</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="stringliteral">&quot; subi %[i], 0xFF\n\t&quot;</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="stringliteral">&quot;L_%=: \n\t&quot;</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; : [i] <span class="stringliteral">&quot;+a&quot;</span> (i)</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; : [scale] <span class="stringliteral">&quot;a&quot;</span> (scale)</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span>);</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="preprocessor">#error &quot;No implementation for scale8_video_LEAVING_R1_DIRTY available.&quot;</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;}</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
-<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9"> 244</a></span>&#160;LIB8STATIC <span class="keywordtype">void</span> <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</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="preprocessor">#if CLEANUP_R1_AVRASM == 1</span></div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</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="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>( <span class="stringliteral">&quot;clr __zero_reg__ \n\t&quot;</span> : : : <span class="stringliteral">&quot;r1&quot;</span> );</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor">#endif</span></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="l00258"></a><span class="lineno"> 258</span>&#160;</div>
-<div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="group___scaling.html#ga39bf87e5526120889086cab19ac749b1"> 259</a></span>&#160;LIB8STATIC <span class="keywordtype">void</span> <a class="code" href="group___scaling.html#ga39bf87e5526120889086cab19ac749b1">nscale8x3</a>( uint8_t&amp; r, uint8_t&amp; g, uint8_t&amp; b, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;{</div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor">#if SCALE8_C == 1</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; r = ((int)r * (<span class="keywordtype">int</span>)(scale) ) &gt;&gt; 8;</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; g = ((int)g * (<span class="keywordtype">int</span>)(scale) ) &gt;&gt; 8;</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; b = ((int)b * (<span class="keywordtype">int</span>)(scale) ) &gt;&gt; 8;</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor">#elif SCALE8_AVRASM == 1</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; r = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>(r, scale);</div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; g = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>(g, scale);</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; b = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>(b, scale);</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</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;<span class="preprocessor">#error &quot;No implementation for nscale8x3 available.&quot;</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="preprocessor">#endif</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;</div>
-<div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9"> 282</a></span>&#160;LIB8STATIC <span class="keywordtype">void</span> <a class="code" href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a>( uint8_t&amp; r, uint8_t&amp; g, uint8_t&amp; b, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</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="preprocessor">#if SCALE8_C == 1</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; uint8_t nonzeroscale = (scale != 0) ? 1 : 0;</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; r = (r == 0) ? 0 : (((<span class="keywordtype">int</span>)r * (int)(scale) ) &gt;&gt; 8) + nonzeroscale;</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; g = (g == 0) ? 0 : (((<span class="keywordtype">int</span>)g * (int)(scale) ) &gt;&gt; 8) + nonzeroscale;</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; b = (b == 0) ? 0 : (((<span class="keywordtype">int</span>)b * (int)(scale) ) &gt;&gt; 8) + nonzeroscale;</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor">#elif SCALE8_AVRASM == 1</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="group___scaling.html#ga2a580fcaa010558218faae95d1936635">nscale8_video_LEAVING_R1_DIRTY</a>( r, scale);</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <a class="code" href="group___scaling.html#ga2a580fcaa010558218faae95d1936635">nscale8_video_LEAVING_R1_DIRTY</a>( g, scale);</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <a class="code" href="group___scaling.html#ga2a580fcaa010558218faae95d1936635">nscale8_video_LEAVING_R1_DIRTY</a>( b, scale);</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</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 nscale8x3 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="l00304"></a><span class="lineno"> 304</span>&#160;</div>
-<div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="group___scaling.html#ga6f419761a744efed4bae8875ac07aef0"> 305</a></span>&#160;LIB8STATIC <span class="keywordtype">void</span> <a class="code" href="group___scaling.html#ga6f419761a744efed4bae8875ac07aef0">nscale8x2</a>( uint8_t&amp; i, uint8_t&amp; j, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;{</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor">#if SCALE8_C == 1</span></div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; i = ((int)i * (<span class="keywordtype">int</span>)(scale) ) &gt;&gt; 8;</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; j = ((int)j * (<span class="keywordtype">int</span>)(scale) ) &gt;&gt; 8;</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor">#elif SCALE8_AVRASM == 1</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; i = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>(i, scale);</div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; j = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>(j, scale);</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="preprocessor">#error &quot;No implementation for nscale8x2 available.&quot;</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="preprocessor">#endif</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;</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"><a class="line" href="group___scaling.html#ga4204edd4a3f8aac7124a10f1f5cfccfe"> 328</a></span>&#160;LIB8STATIC <span class="keywordtype">void</span> <a class="code" href="group___scaling.html#ga4204edd4a3f8aac7124a10f1f5cfccfe">nscale8x2_video</a>( uint8_t&amp; i, uint8_t&amp; j, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</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="preprocessor">#if SCALE8_C == 1</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; uint8_t nonzeroscale = (scale != 0) ? 1 : 0;</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; i = (i == 0) ? 0 : (((<span class="keywordtype">int</span>)i * (int)(scale) ) &gt;&gt; 8) + nonzeroscale;</div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; j = (j == 0) ? 0 : (((<span class="keywordtype">int</span>)j * (int)(scale) ) &gt;&gt; 8) + nonzeroscale;</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="preprocessor">#elif SCALE8_AVRASM == 1</span></div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="group___scaling.html#ga2a580fcaa010558218faae95d1936635">nscale8_video_LEAVING_R1_DIRTY</a>( i, scale);</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <a class="code" href="group___scaling.html#ga2a580fcaa010558218faae95d1936635">nscale8_video_LEAVING_R1_DIRTY</a>( j, scale);</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="preprocessor">#error &quot;No implementation for nscale8x2 available.&quot;</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;}</div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</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"><a class="line" href="group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e"> 348</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e">scale16by8</a>( uint16_t i, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale )</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">#if SCALE16BY8_C == 1</span></div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; uint16_t result;</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; result = (i * scale) / 256;</div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="preprocessor">#elif SCALE16BY8_AVRASM == 1</span></div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; uint16_t result = 0;</div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="comment">// result.A = HighByte(i.A x j )</span></div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="stringliteral">&quot; mul %A[i], %[scale] \n\t&quot;</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="stringliteral">&quot; mov %A[result], r1 \n\t&quot;</span></div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="comment">//&quot; clr %B[result] \n\t&quot;</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="comment">// result.A-B += i.B x j</span></div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="stringliteral">&quot; mul %B[i], %[scale] \n\t&quot;</span></div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="stringliteral">&quot; add %A[result], r0 \n\t&quot;</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="stringliteral">&quot; adc %B[result], r1 \n\t&quot;</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; : <span class="stringliteral">&quot;+a&quot;</span> (i) <span class="comment">/* writes to i */</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; : <span class="stringliteral">&quot;a&quot;</span> (scale) <span class="comment">/* uses scale */</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span> <span class="comment">/* clobbers r0, r1 */</span> );</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor">#error &quot;No implementation for nscale8_LEAVING_R1_DIRTY available.&quot;</span></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;</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div>
+<div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="group___scaling.html#gaf8e0821f34434cd6bfed4a16a895da23"> 230</a></span>&#160;LIB8STATIC_ALWAYS_INLINE uint8_t <a class="code" href="group___scaling.html#gaf8e0821f34434cd6bfed4a16a895da23">scale8_video_LEAVING_R1_DIRTY</a>( uint8_t i, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</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="preprocessor">#if SCALE8_C == 1 || defined(LIB8_ATTINY)</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; uint8_t j = (((int)i * (<span class="keywordtype">int</span>)scale) &gt;&gt; 8) + ((i&amp;&amp;scale)?1:0);</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">// uint8_t nonzeroscale = (scale != 0) ? 1 : 0;</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="comment">// uint8_t j = (i == 0) ? 0 : (((int)i * (int)(scale) ) &gt;&gt; 8) + nonzeroscale;</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">return</span> j;</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor">#elif SCALE8_AVRASM == 1</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; uint8_t j=0;</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="stringliteral">&quot; tst %[i]\n\t&quot;</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="stringliteral">&quot; breq L_%=\n\t&quot;</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="stringliteral">&quot; mul %[i], %[scale]\n\t&quot;</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="stringliteral">&quot; mov %[j], r1\n\t&quot;</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="stringliteral">&quot; breq L_%=\n\t&quot;</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="stringliteral">&quot; subi %[j], 0xFF\n\t&quot;</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="stringliteral">&quot;L_%=: \n\t&quot;</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; : [j] <span class="stringliteral">&quot;+a&quot;</span> (j)</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; : [i] <span class="stringliteral">&quot;a&quot;</span> (i), [scale] <span class="stringliteral">&quot;a&quot;</span> (scale)</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span>);</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="keywordflow">return</span> j;</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="comment">// uint8_t nonzeroscale = (scale != 0) ? 1 : 0;</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="comment">// asm volatile(</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="comment">// &quot; tst %0 \n&quot;</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="comment">// &quot; breq L_%= \n&quot;</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="comment">// &quot; mul %0, %1 \n&quot;</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="comment">// &quot; mov %0, r1 \n&quot;</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="comment">// &quot; add %0, %2 \n&quot;</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="comment">// &quot; clr __zero_reg__ \n&quot;</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">// &quot;L_%=: \n&quot;</span></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">// : &quot;+a&quot; (i)</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="comment">// : &quot;a&quot; (scale), &quot;a&quot; (nonzeroscale)</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="comment">// : &quot;r0&quot;, &quot;r1&quot;);</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; <span class="comment">// // Return the result</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="comment">// return i;</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor">#error &quot;No implementation for scale8_video_LEAVING_R1_DIRTY available.&quot;</span></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;}</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div>
+<div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="group___scaling.html#gadfd26d9b154f5ec79dbffe612dafd146"> 277</a></span>&#160;LIB8STATIC_ALWAYS_INLINE <span class="keywordtype">void</span> <a class="code" href="group___scaling.html#gadfd26d9b154f5ec79dbffe612dafd146">nscale8_video_LEAVING_R1_DIRTY</a>( uint8_t &amp; i, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</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">#if SCALE8_C == 1 || defined(LIB8_ATTINY)</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; i = (((int)i * (<span class="keywordtype">int</span>)scale) &gt;&gt; 8) + ((i&amp;&amp;scale)?1:0);</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor">#elif SCALE8_AVRASM == 1</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="stringliteral">&quot; tst %[i]\n\t&quot;</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="stringliteral">&quot; breq L_%=\n\t&quot;</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="stringliteral">&quot; mul %[i], %[scale]\n\t&quot;</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="stringliteral">&quot; mov %[i], r1\n\t&quot;</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="stringliteral">&quot; breq L_%=\n\t&quot;</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="stringliteral">&quot; subi %[i], 0xFF\n\t&quot;</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="stringliteral">&quot;L_%=: \n\t&quot;</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; : [i] <span class="stringliteral">&quot;+a&quot;</span> (i)</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; : [scale] <span class="stringliteral">&quot;a&quot;</span> (scale)</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span>);</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="preprocessor">#error &quot;No implementation for scale8_video_LEAVING_R1_DIRTY available.&quot;</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;}</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div>
+<div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79"> 299</a></span>&#160;LIB8STATIC_ALWAYS_INLINE <span class="keywordtype">void</span> <a class="code" href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a>()</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">#if CLEANUP_R1_AVRASM == 1</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</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="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>( <span class="stringliteral">&quot;clr __zero_reg__ \n\t&quot;</span> : : : <span class="stringliteral">&quot;r1&quot;</span> );</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;}</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</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"><a class="line" href="group___scaling.html#ga39bf87e5526120889086cab19ac749b1"> 314</a></span>&#160;LIB8STATIC <span class="keywordtype">void</span> <a class="code" href="group___scaling.html#ga39bf87e5526120889086cab19ac749b1">nscale8x3</a>( uint8_t&amp; r, uint8_t&amp; g, uint8_t&amp; b, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</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="preprocessor">#if SCALE8_C == 1</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="preprocessor">#if (FASTLED_SCALE8_FIXED == 1)</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; uint16_t scale_fixed = scale + 1;</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; r = (((uint16_t)r) * scale_fixed) &gt;&gt; 8;</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; g = (((uint16_t)g) * scale_fixed) &gt;&gt; 8;</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; b = (((uint16_t)b) * scale_fixed) &gt;&gt; 8;</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; r = ((int)r * (<span class="keywordtype">int</span>)(scale) ) &gt;&gt; 8;</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; g = ((int)g * (<span class="keywordtype">int</span>)(scale) ) &gt;&gt; 8;</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; b = ((int)b * (<span class="keywordtype">int</span>)(scale) ) &gt;&gt; 8;</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="preprocessor">#elif SCALE8_AVRASM == 1</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; r = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>(r, scale);</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; g = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>(g, scale);</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; b = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>(b, scale);</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <a class="code" href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a>();</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="preprocessor">#error &quot;No implementation for nscale8x3 available.&quot;</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="preprocessor">#endif</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="l00344"></a><span class="lineno"><a class="line" href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9"> 344</a></span>&#160;LIB8STATIC <span class="keywordtype">void</span> <a class="code" href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a>( uint8_t&amp; r, uint8_t&amp; g, uint8_t&amp; b, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</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">#if SCALE8_C == 1</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; uint8_t nonzeroscale = (scale != 0) ? 1 : 0;</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; r = (r == 0) ? 0 : (((<span class="keywordtype">int</span>)r * (int)(scale) ) &gt;&gt; 8) + nonzeroscale;</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; g = (g == 0) ? 0 : (((<span class="keywordtype">int</span>)g * (int)(scale) ) &gt;&gt; 8) + nonzeroscale;</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; b = (b == 0) ? 0 : (((<span class="keywordtype">int</span>)b * (int)(scale) ) &gt;&gt; 8) + nonzeroscale;</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="preprocessor">#elif SCALE8_AVRASM == 1</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <a class="code" href="group___scaling.html#gadfd26d9b154f5ec79dbffe612dafd146">nscale8_video_LEAVING_R1_DIRTY</a>( r, scale);</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <a class="code" href="group___scaling.html#gadfd26d9b154f5ec79dbffe612dafd146">nscale8_video_LEAVING_R1_DIRTY</a>( g, scale);</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <a class="code" href="group___scaling.html#gadfd26d9b154f5ec79dbffe612dafd146">nscale8_video_LEAVING_R1_DIRTY</a>( b, scale);</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <a class="code" href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a>();</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="preprocessor">#error &quot;No implementation for nscale8x3 available.&quot;</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="preprocessor">#endif</span></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="l00366"></a><span class="lineno"> 366</span>&#160;</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="comment">// cleanup r1</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="stringliteral">&quot; clr __zero_reg__ \n\t&quot;</span></div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; : [result] <span class="stringliteral">&quot;+r&quot;</span> (result)</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; : [i] <span class="stringliteral">&quot;r&quot;</span> (i), [scale] <span class="stringliteral">&quot;r&quot;</span> (scale)</div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span></div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; );</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="preprocessor"> #error &quot;No implementation for scale16by8 available.&quot;</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="group___scaling.html#ga6f419761a744efed4bae8875ac07aef0"> 367</a></span>&#160;LIB8STATIC <span class="keywordtype">void</span> <a class="code" href="group___scaling.html#ga6f419761a744efed4bae8875ac07aef0">nscale8x2</a>( uint8_t&amp; i, uint8_t&amp; j, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</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="preprocessor">#if SCALE8_C == 1</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="preprocessor">#if FASTLED_SCALE8_FIXED == 1</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; uint16_t scale_fixed = scale + 1;</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; i = (((uint16_t)i) * scale_fixed ) &gt;&gt; 8;</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; j = (((uint16_t)j) * scale_fixed ) &gt;&gt; 8;</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; i = ((uint16_t)i * (uint16_t)(scale) ) &gt;&gt; 8;</div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; j = ((uint16_t)j * (uint16_t)(scale) ) &gt;&gt; 8;</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;}</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</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"><a class="line" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145"> 384</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( uint16_t i, <a class="code" href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a> scale )</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="preprocessor"> #if SCALE16_C == 1</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; uint16_t result;</div>
-<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;</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="l00378"></a><span class="lineno"> 378</span>&#160;<span class="preprocessor">#elif SCALE8_AVRASM == 1</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; i = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>(i, scale);</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; j = <a class="code" href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a>(j, scale);</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <a class="code" href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a>();</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor">#error &quot;No implementation for nscale8x2 available.&quot;</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;}</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</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"><a class="line" href="group___scaling.html#ga4204edd4a3f8aac7124a10f1f5cfccfe"> 396</a></span>&#160;LIB8STATIC <span class="keywordtype">void</span> <a class="code" href="group___scaling.html#ga4204edd4a3f8aac7124a10f1f5cfccfe">nscale8x2_video</a>( uint8_t&amp; i, uint8_t&amp; j, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale)</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">#if SCALE8_C == 1</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; uint8_t nonzeroscale = (scale != 0) ? 1 : 0;</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; i = (i == 0) ? 0 : (((<span class="keywordtype">int</span>)i * (int)(scale) ) &gt;&gt; 8) + nonzeroscale;</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; j = (j == 0) ? 0 : (((<span class="keywordtype">int</span>)j * (int)(scale) ) &gt;&gt; 8) + nonzeroscale;</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="preprocessor">#elif SCALE8_AVRASM == 1</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <a class="code" href="group___scaling.html#gadfd26d9b154f5ec79dbffe612dafd146">nscale8_video_LEAVING_R1_DIRTY</a>( i, scale);</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <a class="code" href="group___scaling.html#gadfd26d9b154f5ec79dbffe612dafd146">nscale8_video_LEAVING_R1_DIRTY</a>( j, scale);</div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <a class="code" href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a>();</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="preprocessor">#error &quot;No implementation for nscale8x2 available.&quot;</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;}</div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;</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"><a class="line" href="group___scaling.html#gaa51d5b048c2a4a20a00bddcdc257daaf"> 416</a></span>&#160;LIB8STATIC_ALWAYS_INLINE uint16_t <a class="code" href="group___scaling.html#gaa51d5b048c2a4a20a00bddcdc257daaf">scale16by8</a>( uint16_t i, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> scale )</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="preprocessor">#if SCALE16BY8_C == 1</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; uint16_t result;</div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;<span class="preprocessor">#if FASTLED_SCALE8_FIXED == 1</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; result = (i * (1+((uint16_t)scale))) &gt;&gt; 8;</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; result = (i * scale) / 256;</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="preprocessor">#elif SCALE16BY8_AVRASM == 1</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; uint16_t result = 0;</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="comment">// result.A = HighByte(i.A x j )</span></div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="stringliteral">&quot; mul %A[i], %[scale] \n\t&quot;</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="stringliteral">&quot; mov %A[result], r1 \n\t&quot;</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="comment">//&quot; clr %B[result] \n\t&quot;</span></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">// result.A-B += i.B x j</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="stringliteral">&quot; mul %B[i], %[scale] \n\t&quot;</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="stringliteral">&quot; add %A[result], r0 \n\t&quot;</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="stringliteral">&quot; adc %B[result], r1 \n\t&quot;</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; <span class="comment">// cleanup r1</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="stringliteral">&quot; clr __zero_reg__ \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="l00442"></a><span class="lineno"> 442</span>&#160; : [result] <span class="stringliteral">&quot;+r&quot;</span> (result)</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; : [i] <span class="stringliteral">&quot;r&quot;</span> (i), [scale] <span class="stringliteral">&quot;r&quot;</span> (scale)</div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; );</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="preprocessor"> #error &quot;No implementation for scale16by8 available.&quot;</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="preprocessor">#endif</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#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">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="l00455"></a><span class="lineno"> 455</span>&#160;</div>
+<div class="line"><a name="l00456"></a><span class="lineno"><a class="line" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145"> 456</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( uint16_t i, <a class="code" href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a> scale )</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="preprocessor"> #if SCALE16_C == 1</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; uint16_t result;</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="preprocessor">#if FASTLED_SCALE8_FIXED == 1</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; result = ((uint32_t)(i) * (1+(uint32_t)(scale))) / 65536;</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; result = ((uint32_t)(i) * (uint32_t)(scale)) / 65536;</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="preprocessor">#elif SCALE16_AVRASM == 1</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; uint32_t result;</div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="comment">// result.A-B = i.A x scale.A</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="stringliteral">&quot; mul %A[i], %A[scale] \n\t&quot;</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="comment">// save results...</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="comment">// basic idea:</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="comment">//&quot; mov %A[result], r0 \n\t&quot;</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="comment">//&quot; mov %B[result], r1 \n\t&quot;</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="comment">// which can be written as...</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="stringliteral">&quot; movw %A[result], r0 \n\t&quot;</span></div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="comment">// We actually need to do anything with r0,</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="comment">// as result.A is never used again here, so we</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="comment">// could just move the high byte, but movw is</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="comment">// one clock cycle, just like mov, so might as</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="comment">// well, in case we want to use this code for</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="comment">// a generic 16x16 multiply somewhere.</span></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; : [result] <span class="stringliteral">&quot;=r&quot;</span> (result)</div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; : [i] <span class="stringliteral">&quot;r&quot;</span> (i),</div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; [scale] <span class="stringliteral">&quot;r&quot;</span> (scale)</div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; );</div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;</div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="comment">// result.C-D = i.B x scale.B</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="stringliteral">&quot; mul %B[i], %B[scale] \n\t&quot;</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="comment">//&quot; mov %C[result], r0 \n\t&quot;</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="comment">//&quot; mov %D[result], r1 \n\t&quot;</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="stringliteral">&quot; movw %C[result], r0 \n\t&quot;</span></div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; : [result] <span class="stringliteral">&quot;+r&quot;</span> (result)</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; : [i] <span class="stringliteral">&quot;r&quot;</span> (i),</div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; [scale] <span class="stringliteral">&quot;r&quot;</span> (scale)</div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span></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; <span class="keyword">const</span> uint8_t zero = 0;</div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="comment">// result.B-D += i.B x scale.A</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="stringliteral">&quot; mul %B[i], %A[scale] \n\t&quot;</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="stringliteral">&quot; add %B[result], r0 \n\t&quot;</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="stringliteral">&quot; adc %C[result], r1 \n\t&quot;</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="stringliteral">&quot; adc %D[result], %[zero] \n\t&quot;</span></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#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#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#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#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#l00480">scale8.h:480</a></div></div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="comment">// result.B-D += i.A x scale.B</span></div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="stringliteral">&quot; mul %A[i], %B[scale] \n\t&quot;</span></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; <span class="stringliteral">&quot; add %B[result], r0 \n\t&quot;</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="stringliteral">&quot; adc %C[result], r1 \n\t&quot;</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="stringliteral">&quot; adc %D[result], %[zero] \n\t&quot;</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="comment">// cleanup r1</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="stringliteral">&quot; clr r1 \n\t&quot;</span></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; : [result] <span class="stringliteral">&quot;+r&quot;</span> (result)</div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; : [i] <span class="stringliteral">&quot;r&quot;</span> (i),</div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; [scale] <span class="stringliteral">&quot;r&quot;</span> (scale),</div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; [zero] <span class="stringliteral">&quot;r&quot;</span> (zero)</div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span></div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; );</div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; result = result &gt;&gt; 16;</div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;<span class="preprocessor"> #error &quot;No implementation for scale16 available.&quot;</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;}</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;</div>
+<div class="line"><a name="l00550"></a><span class="lineno"><a class="line" href="group___dimming.html#gae51352a3522bb8eae5e17dbee97aa1aa"> 550</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="l00551"></a><span class="lineno"> 551</span>&#160;{</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( x, x);</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"><a class="line" href="group___dimming.html#ga40a13446a2022dc489be8b2a8f2fa494"> 556</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="l00557"></a><span class="lineno"> 557</span>&#160;{</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#ga628b417ea1507e3447cdf5f308d9b6d5">scale8_video</a>( x, x);</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;}</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;</div>
+<div class="line"><a name="l00562"></a><span class="lineno"><a class="line" href="group___dimming.html#ga3f94d2455e0aa92133f77af8747b5914"> 562</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="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">if</span>( x &amp; 0x80 ) {</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; x = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( x, x);</div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; x += 1;</div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; x /= 2;</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="keywordflow">return</span> x;</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;</div>
+<div class="line"><a name="l00574"></a><span class="lineno"><a class="line" href="group___dimming.html#gae8e36472a70f3016595048532d6c3a2d"> 574</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="l00575"></a><span class="lineno"> 575</span>&#160;{</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; uint8_t ix = 255 - x;</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keywordflow">return</span> 255 - <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( ix, ix);</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;</div>
+<div class="line"><a name="l00581"></a><span class="lineno"><a class="line" href="group___dimming.html#gad21876a676bcf26c47f957faed23f9bb"> 581</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="l00582"></a><span class="lineno"> 582</span>&#160;{</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; uint8_t ix = 255 - x;</div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">return</span> 255 - <a class="code" href="group___scaling.html#ga628b417ea1507e3447cdf5f308d9b6d5">scale8_video</a>( ix, ix);</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;</div>
+<div class="line"><a name="l00588"></a><span class="lineno"><a class="line" href="group___dimming.html#ga094bda002b416c66e57521fc93878830"> 588</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="l00589"></a><span class="lineno"> 589</span>&#160;{</div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; uint8_t ix = 255 - x;</div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keywordflow">if</span>( ix &amp; 0x80 ) {</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; ix = <a class="code" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a>( ix, ix);</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; ix += 1;</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; ix /= 2;</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="keywordflow">return</span> 255 - ix;</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="l00601"></a><span class="lineno"> 601</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#l00550">scale8.h:550</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#l00588">scale8.h:588</a></div></div>
+<div class="ttc" id="group___scaling_html_gadfd26d9b154f5ec79dbffe612dafd146"><div class="ttname"><a href="group___scaling.html#gadfd26d9b154f5ec79dbffe612dafd146">nscale8_video_LEAVING_R1_DIRTY</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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#l00277">scale8.h:277</a></div></div>
+<div class="ttc" id="group___scaling_html_ga3fade00fb4cf5b937b973128198a7a79"><div class="ttname"><a href="group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79">cleanup_R1</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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#l00299">scale8.h:299</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#l00343">lib8tion.h:343</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#l00562">scale8.h:562</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#l00396">scale8.h:396</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#l00456">scale8.h:456</a></div></div>
+<div class="ttc" id="group___scaling_html_gaf8e0821f34434cd6bfed4a16a895da23"><div class="ttname"><a href="group___scaling.html#gaf8e0821f34434cd6bfed4a16a895da23">scale8_video_LEAVING_R1_DIRTY</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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#l00230">scale8.h:230</a></div></div>
+<div class="ttc" id="group___scaling_html_ga628b417ea1507e3447cdf5f308d9b6d5"><div class="ttname"><a href="group___scaling.html#ga628b417ea1507e3447cdf5f308d9b6d5">scale8_video</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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#l00098">scale8.h:98</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#l00574">scale8.h:574</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#l00344">scale8.h:344</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#l00581">scale8.h:581</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#l00335">lib8tion.h:335</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#l00367">scale8.h:367</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#l00314">scale8.h:314</a></div></div>
+<div class="ttc" id="group___scaling_html_ga025b1e8d81032d15fe1ab500f804f3f2"><div class="ttname"><a href="group___scaling.html#ga025b1e8d81032d15fe1ab500f804f3f2">nscale8_LEAVING_R1_DIRTY</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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#l00190">scale8.h:190</a></div></div>
+<div class="ttc" id="group___scaling_html_gaa51d5b048c2a4a20a00bddcdc257daaf"><div class="ttname"><a href="group___scaling.html#gaa51d5b048c2a4a20a00bddcdc257daaf">scale16by8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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#l00416">scale8.h:416</a></div></div>
+<div class="ttc" id="group___scaling_html_gad7535ccda9c92470c4e6ee0265585555"><div class="ttname"><a href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">scale8</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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_ga7386235cada3aca429b189681d2ec56d"><div class="ttname"><a href="group___scaling.html#ga7386235cada3aca429b189681d2ec56d">scale8_LEAVING_R1_DIRTY</a></div><div class="ttdeci">LIB8STATIC_ALWAYS_INLINE 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#l00146">scale8.h:146</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#l00556">scale8.h:556</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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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_1.js b/docs/3.1/search/all_1.js
index b504e9c5..12ed6c0f 100644
--- a/docs/3.1/search/all_1.js
+++ b/docs/3.1/search/all_1.js
@@ -1,19 +1,19 @@
var searchData=
[
- ['abs8',['abs8',['../group___math.html#ga4bf8996c4a130e96521495d4a1395a01',1,'math8.h']]],
+ ['abs8',['abs8',['../group___math.html#ga162169ac0c2d1f3d01eaff8f32e1b415',1,'math8.h']]],
['accum124',['accum124',['../group__lib8tion.html#ga7bcc9ebf20b0dd74d9999d5a630d443f',1,'lib8tion.h']]],
['accum1616',['accum1616',['../group__lib8tion.html#gae3ac7def25ef5ddea2da1a3bc0c00f44',1,'lib8tion.h']]],
['accum88',['accum88',['../group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a',1,'lib8tion.h']]],
- ['add8',['add8',['../group___math.html#ga9f1f93145ca1955562b7f50f5db96ac1',1,'math8.h']]],
+ ['add8',['add8',['../group___math.html#ga703ea9255d0701cc154e110ae00dea04',1,'math8.h']]],
['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::addToRGB()'],['../struct_c_r_g_b.html#a6855b3f3a79778436044c9786ff00b73',1,'CRGB::addToRGB()']]],
['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']]],
+ ['avg15',['avg15',['../group___math.html#ga2ad60cb8a09e6aab6d63f1a0930bee09',1,'math8.h']]],
+ ['avg16',['avg16',['../group___math.html#ga1f46842559931ff842c8f9a310174a3a',1,'math8.h']]],
+ ['avg7',['avg7',['../group___math.html#gad7af6a5b49aef34ab79e850ddb7d7911',1,'math8.h']]],
+ ['avg8',['avg8',['../group___math.html#ga624651f796f4cf0755c8cbdb794e41d9',1,'math8.h']]],
['avrsoftwarespioutput',['AVRSoftwareSPIOutput',['../class_a_v_r_software_s_p_i_output.html',1,'']]],
['avrsoftwarespioutput_3c_20_5fdata_5fpin_2c_20_5fclock_5fpin_2c_20_5fspi_5fclock_5fdivider_20_3e',['AVRSoftwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;',['../class_a_v_r_software_s_p_i_output.html',1,'']]]
];
diff --git a/docs/3.1/search/all_10.js b/docs/3.1/search/all_10.js
index 1b67ef2f..91b5dfb0 100644
--- a/docs/3.1/search/all_10.js
+++ b/docs/3.1/search/all_10.js
@@ -5,9 +5,9 @@ var searchData=
['q44',['q44',['../group__lib8tion.html#ga85082c3ed8843d32076222e82d72f80d',1,'lib8tion.h']]],
['q62',['q62',['../group__lib8tion.html#gafea4166e233d92817eada7203021089a',1,'lib8tion.h']]],
['q88',['q88',['../group__lib8tion.html#gad5dca0e1248b916799dde6dc44ef369b',1,'lib8tion.h']]],
- ['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']]],
+ ['qadd7',['qadd7',['../group___math.html#ga622205a211419db7dd1f582923aec68d',1,'math8.h']]],
+ ['qadd8',['qadd8',['../group___math.html#ga07133b3085824d0fcd4f5086d286c4b5',1,'math8.h']]],
+ ['qmul8',['qmul8',['../group___math.html#ga17d0d692de142f4d4379b8cc899eaefb',1,'math8.h']]],
+ ['qsub8',['qsub8',['../group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3',1,'math8.h']]],
['quadwave8',['quadwave8',['../group__lib8tion.html#ga209d6cbdb109cc3139e7bb1e46c6228f',1,'lib8tion.h']]]
];
diff --git a/docs/3.1/search/all_12.js b/docs/3.1/search/all_12.js
index ecf4c213..ad70a49c 100644
--- a/docs/3.1/search/all_12.js
+++ b/docs/3.1/search/all_12.js
@@ -4,11 +4,11 @@ var searchData=
['saccum1516',['saccum1516',['../group__lib8tion.html#gad2dad84f67c8a4cc6d4c92e2c7d3e89f',1,'lib8tion.h']]],
['saccum78',['saccum78',['../group__lib8tion.html#ga9585be88f27cab4c367399d8e91c8467',1,'lib8tion.h']]],
['scale16',['scale16',['../group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145',1,'scale8.h']]],
- ['scale16by8',['scale16by8',['../group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e',1,'scale8.h']]],
- ['scale8',['scale8',['../struct_c_r_g_b.html#a5b80746e55da30c6a1dad63b3edd5fd4',1,'CRGB::scale8()'],['../group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af',1,'scale8():&#160;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']]],
+ ['scale16by8',['scale16by8',['../group___scaling.html#gaa51d5b048c2a4a20a00bddcdc257daaf',1,'scale8.h']]],
+ ['scale8',['scale8',['../struct_c_r_g_b.html#a5b80746e55da30c6a1dad63b3edd5fd4',1,'CRGB::scale8()'],['../group___scaling.html#gad7535ccda9c92470c4e6ee0265585555',1,'scale8():&#160;scale8.h']]],
+ ['scale8_5fleaving_5fr1_5fdirty',['scale8_LEAVING_R1_DIRTY',['../group___scaling.html#ga7386235cada3aca429b189681d2ec56d',1,'scale8.h']]],
+ ['scale8_5fvideo',['scale8_video',['../group___scaling.html#ga628b417ea1507e3447cdf5f308d9b6d5',1,'scale8.h']]],
+ ['scale8_5fvideo_5fleaving_5fr1_5fdirty',['scale8_video_LEAVING_R1_DIRTY',['../group___scaling.html#gaf8e0821f34434cd6bfed4a16a895da23',1,'scale8.h']]],
['scaling_20functions',['Scaling functions',['../group___scaling.html',1,'']]],
['seconds16',['seconds16',['../group__lib8tion.html#gaa2abcee2fe76fafd7f3a2aeab03e3b69',1,'lib8tion.h']]],
['select',['select',['../class_n_o_p_s_p_i_output.html#ae07bb6f787879f28979cccec9ec4965d',1,'NOPSPIOutput']]],
@@ -55,7 +55,7 @@ var searchData=
['sqrt16',['sqrt16',['../group___math.html#ga66ecef97faa5f9b92c49766651c5afe9',1,'math8.h']]],
['squarewave8',['squarewave8',['../group__lib8tion.html#ga17ae8fcfd9c485bb1120d908f836637a',1,'lib8tion.h']]],
['sub4',['sub4',['../structsub4.html',1,'']]],
- ['sub8',['sub8',['../group___math.html#ga0c40c15ab5af36ddabded161941f2091',1,'math8.h']]],
+ ['sub8',['sub8',['../group___math.html#gad2d87829a6327876eed4482aa515dfa9',1,'math8.h']]],
['subfromrgb',['subFromRGB',['../class_c_pixel_view.html#afb57aeebbd762d7ead044a12fd51f639',1,'CPixelView']]],
['subtractfromrgb',['subtractFromRGB',['../struct_c_r_g_b.html#af5e0ce520027b5bc5b8aa106c113119c',1,'CRGB']]]
];
diff --git a/docs/3.1/search/all_2.js b/docs/3.1/search/all_2.js
index 75be7635..307fd8fe 100644
--- a/docs/3.1/search/all_2.js
+++ b/docs/3.1/search/all_2.js
@@ -9,6 +9,10 @@ var searchData=
['bit_20swapping_2frotate',['Bit swapping/rotate',['../group___bitswap.html',1,'']]],
['bitswap_2eh',['bitswap.h',['../bitswap_8h.html',1,'']]],
['bitswap_5ftype',['bitswap_type',['../unionbitswap__type.html',1,'']]],
+ ['blend',['blend',['../group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c',1,'blend(const CRGB &amp;p1, const CRGB &amp;p2, fract8 amountOfP2):&#160;colorutils.cpp'],['../group___colorutils.html#gabea64e23b31132c325ea0c1fef0d3f13',1,'blend(const CRGB *src1, const CRGB *src2, CRGB *dest, uint16_t count, fract8 amountOfsrc2):&#160;colorutils.cpp'],['../group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c',1,'blend(const CRGB &amp;p1, const CRGB &amp;p2, fract8 amountOfP2):&#160;colorutils.cpp'],['../group___colorutils.html#gabea64e23b31132c325ea0c1fef0d3f13',1,'blend(const CRGB *src1, const CRGB *src2, CRGB *dest, uint16_t count, fract8 amountOfsrc2):&#160;colorutils.cpp']]],
+ ['blur1d',['blur1d',['../group___colorutils.html#gaacf0416f9e0438f23f92d0df6c338ea3',1,'blur1d(CRGB *leds, uint16_t numLeds, fract8 blur_amount):&#160;colorutils.cpp'],['../group___colorutils.html#gaacf0416f9e0438f23f92d0df6c338ea3',1,'blur1d(CRGB *leds, uint16_t numLeds, fract8 blur_amount):&#160;colorutils.cpp']]],
+ ['blurcolumns',['blurColumns',['../group___colorutils.html#gacb40363ff285a5d816a1cf3096e27c14',1,'blurColumns(CRGB *leds, uint8_t width, uint8_t height, fract8 blur_amount):&#160;colorutils.cpp'],['../group___colorutils.html#gacb40363ff285a5d816a1cf3096e27c14',1,'blurColumns(CRGB *leds, uint8_t width, uint8_t height, fract8 blur_amount):&#160;colorutils.cpp']]],
+ ['blurrows',['blurRows',['../group___colorutils.html#ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b',1,'blurRows(CRGB *leds, uint8_t width, uint8_t height, fract8 blur_amount):&#160;colorutils.cpp'],['../group___colorutils.html#ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b',1,'blurRows(CRGB *leds, uint8_t width, uint8_t height, fract8 blur_amount):&#160;colorutils.cpp']]],
['brighten8_5flin',['brighten8_lin',['../group___dimming.html#ga094bda002b416c66e57521fc93878830',1,'scale8.h']]],
['brighten8_5fraw',['brighten8_raw',['../group___dimming.html#gae8e36472a70f3016595048532d6c3a2d',1,'scale8.h']]],
['brighten8_5fvideo',['brighten8_video',['../group___dimming.html#gad21876a676bcf26c47f957faed23f9bb',1,'scale8.h']]],
diff --git a/docs/3.1/search/all_3.js b/docs/3.1/search/all_3.js
index 998abf03..43ffb0a9 100644
--- a/docs/3.1/search/all_3.js
+++ b/docs/3.1/search/all_3.js
@@ -9,7 +9,7 @@ var searchData=
['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']]],
+ ['cleanup_5fr1',['cleanup_R1',['../group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79',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']]],
diff --git a/docs/3.1/search/all_6.js b/docs/3.1/search/all_6.js
index 86c9f3aa..0a585d38 100644
--- a/docs/3.1/search/all_6.js
+++ b/docs/3.1/search/all_6.js
@@ -1,7 +1,8 @@
var searchData=
[
- ['fadelightby',['fadeLightBy',['../class_c_pixel_view.html#a0ef40ea240450afe6fdb7f4cf6a5b231',1,'CPixelView::fadeLightBy()'],['../struct_c_r_g_b.html#a9eeb8fc616c7a50805b8146baffef8fd',1,'CRGB::fadeLightBy()']]],
- ['fadetoblackby',['fadeToBlackBy',['../class_c_pixel_view.html#a4861b6938f1cb9f8f885a9f3af13b8a9',1,'CPixelView::fadeToBlackBy()'],['../struct_c_r_g_b.html#ab49109cf2ec532c643d4998f03cf16c7',1,'CRGB::fadeToBlackBy()']]],
+ ['fadelightby',['fadeLightBy',['../class_c_pixel_view.html#a0ef40ea240450afe6fdb7f4cf6a5b231',1,'CPixelView::fadeLightBy()'],['../struct_c_r_g_b.html#a9eeb8fc616c7a50805b8146baffef8fd',1,'CRGB::fadeLightBy()'],['../group___colorutils.html#gac1e25878d16efa6112d907738f525773',1,'fadeLightBy(CRGB *leds, uint16_t num_leds, uint8_t fadeBy):&#160;colorutils.cpp'],['../group___colorutils.html#gac1e25878d16efa6112d907738f525773',1,'fadeLightBy(CRGB *leds, uint16_t num_leds, uint8_t fadeBy):&#160;colorutils.cpp']]],
+ ['fadetoblackby',['fadeToBlackBy',['../class_c_pixel_view.html#a4861b6938f1cb9f8f885a9f3af13b8a9',1,'CPixelView::fadeToBlackBy()'],['../struct_c_r_g_b.html#ab49109cf2ec532c643d4998f03cf16c7',1,'CRGB::fadeToBlackBy()'],['../group___colorutils.html#ga404d163d8a422cee2df2baac4151ca98',1,'fadeToBlackBy(CRGB *leds, uint16_t num_leds, uint8_t fadeBy):&#160;colorutils.cpp'],['../group___colorutils.html#ga404d163d8a422cee2df2baac4151ca98',1,'fadeToBlackBy(CRGB *leds, uint16_t num_leds, uint8_t fadeBy):&#160;colorutils.cpp']]],
+ ['fadeusingcolor',['fadeUsingColor',['../group___colorutils.html#gae8c0a05b75034b4a2cae20ddc70ec15f',1,'fadeUsingColor(CRGB *leds, uint16_t numLeds, const CRGB &amp;colormask):&#160;colorutils.cpp'],['../group___colorutils.html#gae8c0a05b75034b4a2cae20ddc70ec15f',1,'fadeUsingColor(CRGB *leds, uint16_t numLeds, const CRGB &amp;colormask):&#160;colorutils.cpp']]],
['fastled_2eh',['FastLED.h',['../_fast_l_e_d_8h.html',1,'']]],
['fastled_5fconfig_2eh',['fastled_config.h',['../fastled__config_8h.html',1,'']]],
['fastled_5fdelay_2eh',['fastled_delay.h',['../fastled__delay_8h.html',1,'']]],
@@ -10,7 +11,8 @@ var searchData=
['fastpin_2eh',['fastpin.h',['../fastpin_8h.html',1,'']]],
['fastpin_3c_20clock_5fpin_20_3e',['FastPin&lt; CLOCK_PIN &gt;',['../class_fast_pin.html',1,'']]],
['fastpinbb',['FastPinBB',['../class_fast_pin_b_b.html',1,'']]],
- ['fill_5fgradient',['fill_gradient',['../group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98',1,'colorutils.h']]],
+ ['fill_5fgradient',['fill_gradient',['../group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98',1,'fill_gradient(T *targetArray, uint16_t startpos, CHSV startcolor, uint16_t endpos, CHSV endcolor, TGradientDirectionCode directionCode=SHORTEST_HUES):&#160;colorutils.h'],['../group___colorutils.html#gace693b077794f9b6aa80875fdd550a68',1,'fill_gradient(T *targetArray, uint16_t numLeds, const CHSV &amp;c1, const CHSV &amp;c2, TGradientDirectionCode directionCode=SHORTEST_HUES):&#160;colorutils.h'],['../group___colorutils.html#ga3a46ed6b7043382df172d7501785033c',1,'fill_gradient(T *targetArray, uint16_t numLeds, const CHSV &amp;c1, const CHSV &amp;c2, const CHSV &amp;c3, TGradientDirectionCode directionCode=SHORTEST_HUES):&#160;colorutils.h'],['../group___colorutils.html#ga396996c5e505e459b418330f4386f779',1,'fill_gradient(T *targetArray, uint16_t numLeds, const CHSV &amp;c1, const CHSV &amp;c2, const CHSV &amp;c3, const CHSV &amp;c4, TGradientDirectionCode directionCode=SHORTEST_HUES):&#160;colorutils.h']]],
+ ['fill_5fgradient_5frgb',['fill_gradient_RGB',['../group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88',1,'fill_gradient_RGB(CRGB *leds, uint16_t startpos, CRGB startcolor, uint16_t endpos, CRGB endcolor):&#160;colorutils.cpp'],['../group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88',1,'fill_gradient_RGB(CRGB *leds, uint16_t startpos, CRGB startcolor, uint16_t endpos, CRGB endcolor):&#160;colorutils.cpp']]],
['fill_5frainbow',['fill_rainbow',['../group___colorutils.html#gafcc7dac88e25736ebc49a9faf2a1c2e2',1,'fill_rainbow(struct CRGB *pFirstLED, int numToFill, uint8_t initialhue, uint8_t deltahue):&#160;colorutils.cpp'],['../group___colorutils.html#gac3052a230febda0693517ce9d12aa452',1,'fill_rainbow(struct CHSV *targetArray, int numToFill, uint8_t initialhue, uint8_t deltahue):&#160;colorutils.cpp'],['../group___colorutils.html#gafcc7dac88e25736ebc49a9faf2a1c2e2',1,'fill_rainbow(struct CRGB *pFirstLED, int numToFill, uint8_t initialhue, uint8_t deltahue=5):&#160;colorutils.cpp'],['../group___colorutils.html#gac3052a230febda0693517ce9d12aa452',1,'fill_rainbow(struct CHSV *targetArray, int numToFill, uint8_t initialhue, uint8_t deltahue=5):&#160;colorutils.cpp']]],
['fill_5fsolid',['fill_solid',['../group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b',1,'fill_solid(struct CRGB *leds, int numToFill, const struct CRGB &amp;color):&#160;colorutils.cpp'],['../group___colorutils.html#gad1abf13328e8dd1c483a270af77b17ed',1,'fill_solid(struct CHSV *targetArray, int numToFill, const struct CHSV &amp;hsvColor):&#160;colorutils.cpp'],['../group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b',1,'fill_solid(struct CRGB *leds, int numToFill, const struct CRGB &amp;color):&#160;colorutils.cpp'],['../group___colorutils.html#gad1abf13328e8dd1c483a270af77b17ed',1,'fill_solid(struct CHSV *targetArray, int numToFill, const struct CHSV &amp;hsvColor):&#160;colorutils.cpp']]],
['fl_5fprogmem',['FL_PROGMEM',['../group___colorpalletes.html#ga57a38373661043f74b292976e83c687b',1,'FL_PROGMEM():&#160;colorpalettes.cpp'],['../group___colorpalletes.html#ga57a38373661043f74b292976e83c687b',1,'FL_PROGMEM():&#160;colorpalettes.h']]],
diff --git a/docs/3.1/search/all_8.js b/docs/3.1/search/all_8.js
index 56ed99e4..c0d9f1c3 100644
--- a/docs/3.1/search/all_8.js
+++ b/docs/3.1/search/all_8.js
@@ -2,6 +2,7 @@ var searchData=
[
['halogen',['Halogen',['../group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae5ec76aa869b51e645e9f226dfee4b79',1,'color.h']]],
['head',['head',['../class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0',1,'CLEDController']]],
+ ['heatcolor',['HeatColor',['../group___colorutils.html#gac5c6b83ec07d310385a430f9f0336530',1,'HeatColor(uint8_t temperature):&#160;colorutils.cpp'],['../group___colorutils.html#gac5c6b83ec07d310385a430f9f0336530',1,'HeatColor(uint8_t temperature):&#160;colorutils.cpp']]],
['highnoonsun',['HighNoonSun',['../group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ac9a2b02351fcc9ad08ef4e2748530e76',1,'color.h']]],
['hours8',['hours8',['../group__lib8tion.html#ga837f5a688998f3340994613944e47d41',1,'lib8tion.h']]],
['hsv2rgb_5frainbow',['hsv2rgb_rainbow',['../group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8',1,'hsv2rgb_rainbow(const CHSV &amp;hsv, CRGB &amp;rgb):&#160;hsv2rgb.cpp'],['../group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8',1,'hsv2rgb_rainbow(const CHSV &amp;hsv, CRGB &amp;rgb):&#160;hsv2rgb.cpp']]],
diff --git a/docs/3.1/search/all_c.js b/docs/3.1/search/all_c.js
index 4704e371..58e4e0db 100644
--- a/docs/3.1/search/all_c.js
+++ b/docs/3.1/search/all_c.js
@@ -3,6 +3,6 @@ var searchData=
['map8',['map8',['../group__lib8tion.html#gaf65357c7aeca9778e5a2f80a6bac2b5d',1,'lib8tion.h']]],
['maximizebrightness',['maximizeBrightness',['../struct_c_r_g_b.html#a6b0b8f3da2b3b2b44778e142dbae47ed',1,'CRGB']]],
['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']]]
+ ['mod8',['mod8',['../group___math.html#gaa3beb6c31141a13c1a047b926d065ca2',1,'math8.h']]],
+ ['mul8',['mul8',['../group___math.html#gaf170916b55c493ea038c1d96b338e059',1,'math8.h']]]
];
diff --git a/docs/3.1/search/all_d.js b/docs/3.1/search/all_d.js
index cab11334..7fe5f832 100644
--- a/docs/3.1/search/all_d.js
+++ b/docs/3.1/search/all_d.js
@@ -1,14 +1,15 @@
var searchData=
[
+ ['nblend',['nblend',['../group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335',1,'nblend(CRGB &amp;existing, const CRGB &amp;overlay, fract8 amountOfOverlay):&#160;colorutils.cpp'],['../group___colorutils.html#ga63e89e8505c65e973218d1638dda3b04',1,'nblend(CRGB *existing, CRGB *overlay, uint16_t count, fract8 amountOfOverlay):&#160;colorutils.cpp'],['../group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335',1,'nblend(CRGB &amp;existing, const CRGB &amp;overlay, fract8 amountOfOverlay):&#160;colorutils.cpp'],['../group___colorutils.html#ga63e89e8505c65e973218d1638dda3b04',1,'nblend(CRGB *existing, CRGB *overlay, uint16_t count, fract8 amountOfOverlay):&#160;colorutils.cpp']]],
['neopixel',['NEOPIXEL',['../class_n_e_o_p_i_x_e_l.html',1,'']]],
['next',['next',['../class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565',1,'CLEDController']]],
['noise_20functions',['Noise functions',['../group___noise.html',1,'']]],
['noise_2eh',['noise.h',['../noise_8h.html',1,'']]],
['nopspioutput',['NOPSPIOutput',['../class_n_o_p_s_p_i_output.html',1,'']]],
- ['nscale8',['nscale8',['../class_c_pixel_view.html#adde9560e0a2f538a998e849ff0361bc1',1,'CPixelView::nscale8(uint8_t scaledown)'],['../class_c_pixel_view.html#ad1b0bbeb416db7f4dd1139ea23491330',1,'CPixelView::nscale8(PIXEL_TYPE &amp;scaledown)'],['../class_c_pixel_view.html#a195deb4034393308c9573454ac5e56ae',1,'CPixelView::nscale8(CPixelView &amp;rhs)'],['../struct_c_r_g_b.html#aa80fd3b2990b00a963aa009a3c4d095a',1,'CRGB::nscale8(uint8_t scaledown)'],['../struct_c_r_g_b.html#a071f7ba57db3d9b88899f4c30c715a6b',1,'CRGB::nscale8(const CRGB &amp;scaledown)']]],
- ['nscale8_5fleaving_5fr1_5fdirty',['nscale8_LEAVING_R1_DIRTY',['../group___scaling.html#ga5f6dde3d9398f4b389c96e759a3f7b80',1,'scale8.h']]],
- ['nscale8_5fvideo',['nscale8_video',['../class_c_pixel_view.html#a267b004b77ee7da80be81f6ff73c1d82',1,'CPixelView::nscale8_video()'],['../struct_c_r_g_b.html#a8bb881dd011552b412af2845562b0df3',1,'CRGB::nscale8_video()']]],
- ['nscale8_5fvideo_5fleaving_5fr1_5fdirty',['nscale8_video_LEAVING_R1_DIRTY',['../group___scaling.html#ga2a580fcaa010558218faae95d1936635',1,'scale8.h']]],
+ ['nscale8',['nscale8',['../class_c_pixel_view.html#adde9560e0a2f538a998e849ff0361bc1',1,'CPixelView::nscale8(uint8_t scaledown)'],['../class_c_pixel_view.html#ad1b0bbeb416db7f4dd1139ea23491330',1,'CPixelView::nscale8(PIXEL_TYPE &amp;scaledown)'],['../class_c_pixel_view.html#a195deb4034393308c9573454ac5e56ae',1,'CPixelView::nscale8(CPixelView &amp;rhs)'],['../struct_c_r_g_b.html#aa80fd3b2990b00a963aa009a3c4d095a',1,'CRGB::nscale8(uint8_t scaledown)'],['../struct_c_r_g_b.html#a071f7ba57db3d9b88899f4c30c715a6b',1,'CRGB::nscale8(const CRGB &amp;scaledown)'],['../group___colorutils.html#gad0356fc313196732e7cd4e64f506f82b',1,'nscale8(CRGB *leds, uint16_t num_leds, uint8_t scale):&#160;colorutils.cpp'],['../group___colorutils.html#gad0356fc313196732e7cd4e64f506f82b',1,'nscale8(CRGB *leds, uint16_t num_leds, uint8_t scale):&#160;colorutils.cpp']]],
+ ['nscale8_5fleaving_5fr1_5fdirty',['nscale8_LEAVING_R1_DIRTY',['../group___scaling.html#ga025b1e8d81032d15fe1ab500f804f3f2',1,'scale8.h']]],
+ ['nscale8_5fvideo',['nscale8_video',['../class_c_pixel_view.html#a267b004b77ee7da80be81f6ff73c1d82',1,'CPixelView::nscale8_video()'],['../struct_c_r_g_b.html#a8bb881dd011552b412af2845562b0df3',1,'CRGB::nscale8_video()'],['../group___colorutils.html#ga956be37436f2b9c06c99d24263ef8e83',1,'nscale8_video(CRGB *leds, uint16_t num_leds, uint8_t scale):&#160;colorutils.cpp'],['../group___colorutils.html#ga956be37436f2b9c06c99d24263ef8e83',1,'nscale8_video(CRGB *leds, uint16_t num_leds, uint8_t scale):&#160;colorutils.cpp']]],
+ ['nscale8_5fvideo_5fleaving_5fr1_5fdirty',['nscale8_video_LEAVING_R1_DIRTY',['../group___scaling.html#gadfd26d9b154f5ec79dbffe612dafd146',1,'scale8.h']]],
['nscale8x2',['nscale8x2',['../group___scaling.html#ga6f419761a744efed4bae8875ac07aef0',1,'scale8.h']]],
['nscale8x2_5fvideo',['nscale8x2_video',['../group___scaling.html#ga4204edd4a3f8aac7124a10f1f5cfccfe',1,'scale8.h']]],
['nscale8x3',['nscale8x3',['../group___scaling.html#ga39bf87e5526120889086cab19ac749b1',1,'scale8.h']]],
diff --git a/docs/3.1/search/functions_1.js b/docs/3.1/search/functions_1.js
index 5c27b4ea..500956b3 100644
--- a/docs/3.1/search/functions_1.js
+++ b/docs/3.1/search/functions_1.js
@@ -1,12 +1,12 @@
var searchData=
[
- ['abs8',['abs8',['../group___math.html#ga4bf8996c4a130e96521495d4a1395a01',1,'math8.h']]],
- ['add8',['add8',['../group___math.html#ga9f1f93145ca1955562b7f50f5db96ac1',1,'math8.h']]],
+ ['abs8',['abs8',['../group___math.html#ga162169ac0c2d1f3d01eaff8f32e1b415',1,'math8.h']]],
+ ['add8',['add8',['../group___math.html#ga703ea9255d0701cc154e110ae00dea04',1,'math8.h']]],
['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::addToRGB()'],['../struct_c_r_g_b.html#a6855b3f3a79778436044c9786ff00b73',1,'CRGB::addToRGB()']]],
- ['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']]]
+ ['avg15',['avg15',['../group___math.html#ga2ad60cb8a09e6aab6d63f1a0930bee09',1,'math8.h']]],
+ ['avg16',['avg16',['../group___math.html#ga1f46842559931ff842c8f9a310174a3a',1,'math8.h']]],
+ ['avg7',['avg7',['../group___math.html#gad7af6a5b49aef34ab79e850ddb7d7911',1,'math8.h']]],
+ ['avg8',['avg8',['../group___math.html#ga624651f796f4cf0755c8cbdb794e41d9',1,'math8.h']]]
];
diff --git a/docs/3.1/search/functions_10.js b/docs/3.1/search/functions_10.js
index 65e57135..55c4a6e2 100644
--- a/docs/3.1/search/functions_10.js
+++ b/docs/3.1/search/functions_10.js
@@ -1,11 +1,11 @@
var searchData=
[
['scale16',['scale16',['../group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145',1,'scale8.h']]],
- ['scale16by8',['scale16by8',['../group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e',1,'scale8.h']]],
- ['scale8',['scale8',['../struct_c_r_g_b.html#a5b80746e55da30c6a1dad63b3edd5fd4',1,'CRGB::scale8()'],['../group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af',1,'scale8():&#160;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']]],
+ ['scale16by8',['scale16by8',['../group___scaling.html#gaa51d5b048c2a4a20a00bddcdc257daaf',1,'scale8.h']]],
+ ['scale8',['scale8',['../struct_c_r_g_b.html#a5b80746e55da30c6a1dad63b3edd5fd4',1,'CRGB::scale8()'],['../group___scaling.html#gad7535ccda9c92470c4e6ee0265585555',1,'scale8():&#160;scale8.h']]],
+ ['scale8_5fleaving_5fr1_5fdirty',['scale8_LEAVING_R1_DIRTY',['../group___scaling.html#ga7386235cada3aca429b189681d2ec56d',1,'scale8.h']]],
+ ['scale8_5fvideo',['scale8_video',['../group___scaling.html#ga628b417ea1507e3447cdf5f308d9b6d5',1,'scale8.h']]],
+ ['scale8_5fvideo_5fleaving_5fr1_5fdirty',['scale8_video_LEAVING_R1_DIRTY',['../group___scaling.html#gaf8e0821f34434cd6bfed4a16a895da23',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']]],
@@ -33,7 +33,7 @@ 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()']]],
['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']]],
+ ['sub8',['sub8',['../group___math.html#gad2d87829a6327876eed4482aa515dfa9',1,'math8.h']]],
['subfromrgb',['subFromRGB',['../class_c_pixel_view.html#afb57aeebbd762d7ead044a12fd51f639',1,'CPixelView']]],
['subtractfromrgb',['subtractFromRGB',['../struct_c_r_g_b.html#af5e0ce520027b5bc5b8aa106c113119c',1,'CRGB']]]
];
diff --git a/docs/3.1/search/functions_2.js b/docs/3.1/search/functions_2.js
index 734532bb..21d6780d 100644
--- a/docs/3.1/search/functions_2.js
+++ b/docs/3.1/search/functions_2.js
@@ -6,6 +6,10 @@ var searchData=
['beatsin16',['beatsin16',['../group__lib8tion.html#gaa46e5de1c4c27833359e7a97a18c839b',1,'lib8tion.h']]],
['beatsin8',['beatsin8',['../group__lib8tion.html#gaecd7cbfc2640407cabf75afcc7d9ddf4',1,'lib8tion.h']]],
['beatsin88',['beatsin88',['../group__lib8tion.html#gaf917825ff26c8e1174c5b674a2f3c631',1,'lib8tion.h']]],
+ ['blend',['blend',['../group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c',1,'blend(const CRGB &amp;p1, const CRGB &amp;p2, fract8 amountOfP2):&#160;colorutils.cpp'],['../group___colorutils.html#gabea64e23b31132c325ea0c1fef0d3f13',1,'blend(const CRGB *src1, const CRGB *src2, CRGB *dest, uint16_t count, fract8 amountOfsrc2):&#160;colorutils.cpp'],['../group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c',1,'blend(const CRGB &amp;p1, const CRGB &amp;p2, fract8 amountOfP2):&#160;colorutils.cpp'],['../group___colorutils.html#gabea64e23b31132c325ea0c1fef0d3f13',1,'blend(const CRGB *src1, const CRGB *src2, CRGB *dest, uint16_t count, fract8 amountOfsrc2):&#160;colorutils.cpp']]],
+ ['blur1d',['blur1d',['../group___colorutils.html#gaacf0416f9e0438f23f92d0df6c338ea3',1,'blur1d(CRGB *leds, uint16_t numLeds, fract8 blur_amount):&#160;colorutils.cpp'],['../group___colorutils.html#gaacf0416f9e0438f23f92d0df6c338ea3',1,'blur1d(CRGB *leds, uint16_t numLeds, fract8 blur_amount):&#160;colorutils.cpp']]],
+ ['blurcolumns',['blurColumns',['../group___colorutils.html#gacb40363ff285a5d816a1cf3096e27c14',1,'blurColumns(CRGB *leds, uint8_t width, uint8_t height, fract8 blur_amount):&#160;colorutils.cpp'],['../group___colorutils.html#gacb40363ff285a5d816a1cf3096e27c14',1,'blurColumns(CRGB *leds, uint8_t width, uint8_t height, fract8 blur_amount):&#160;colorutils.cpp']]],
+ ['blurrows',['blurRows',['../group___colorutils.html#ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b',1,'blurRows(CRGB *leds, uint8_t width, uint8_t height, fract8 blur_amount):&#160;colorutils.cpp'],['../group___colorutils.html#ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b',1,'blurRows(CRGB *leds, uint8_t width, uint8_t height, fract8 blur_amount):&#160;colorutils.cpp']]],
['brighten8_5flin',['brighten8_lin',['../group___dimming.html#ga094bda002b416c66e57521fc93878830',1,'scale8.h']]],
['brighten8_5fraw',['brighten8_raw',['../group___dimming.html#gae8e36472a70f3016595048532d6c3a2d',1,'scale8.h']]],
['brighten8_5fvideo',['brighten8_video',['../group___dimming.html#gad21876a676bcf26c47f957faed23f9bb',1,'scale8.h']]],
diff --git a/docs/3.1/search/functions_3.js b/docs/3.1/search/functions_3.js
index b9b1651c..f075dae0 100644
--- a/docs/3.1/search/functions_3.js
+++ b/docs/3.1/search/functions_3.js
@@ -1,7 +1,7 @@
var searchData=
[
['chsv',['CHSV',['../struct_c_h_s_v.html#acf5b316e91b4a7758057e0fd7cd3863e',1,'CHSV::CHSV() __attribute__((always_inline))'],['../struct_c_h_s_v.html#a1cae6431597acc31363c47748da6f32d',1,'CHSV::CHSV(uint8_t ih, uint8_t is, uint8_t iv) __attribute__((always_inline))'],['../struct_c_h_s_v.html#a077b49ca9dfa160ea6321e633efd7421',1,'CHSV::CHSV(const CHSV &amp;rhs) __attribute__((always_inline))']]],
- ['cleanup_5fr1',['cleanup_R1',['../group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9',1,'scale8.h']]],
+ ['cleanup_5fr1',['cleanup_R1',['../group___scaling.html#ga3fade00fb4cf5b937b973128198a7a79',1,'scale8.h']]],
['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']]],
diff --git a/docs/3.1/search/functions_6.js b/docs/3.1/search/functions_6.js
index f202e93c..62ea5852 100644
--- a/docs/3.1/search/functions_6.js
+++ b/docs/3.1/search/functions_6.js
@@ -1,8 +1,10 @@
var searchData=
[
- ['fadelightby',['fadeLightBy',['../class_c_pixel_view.html#a0ef40ea240450afe6fdb7f4cf6a5b231',1,'CPixelView::fadeLightBy()'],['../struct_c_r_g_b.html#a9eeb8fc616c7a50805b8146baffef8fd',1,'CRGB::fadeLightBy()']]],
- ['fadetoblackby',['fadeToBlackBy',['../class_c_pixel_view.html#a4861b6938f1cb9f8f885a9f3af13b8a9',1,'CPixelView::fadeToBlackBy()'],['../struct_c_r_g_b.html#ab49109cf2ec532c643d4998f03cf16c7',1,'CRGB::fadeToBlackBy()']]],
- ['fill_5fgradient',['fill_gradient',['../group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98',1,'colorutils.h']]],
+ ['fadelightby',['fadeLightBy',['../class_c_pixel_view.html#a0ef40ea240450afe6fdb7f4cf6a5b231',1,'CPixelView::fadeLightBy()'],['../struct_c_r_g_b.html#a9eeb8fc616c7a50805b8146baffef8fd',1,'CRGB::fadeLightBy()'],['../group___colorutils.html#gac1e25878d16efa6112d907738f525773',1,'fadeLightBy(CRGB *leds, uint16_t num_leds, uint8_t fadeBy):&#160;colorutils.cpp'],['../group___colorutils.html#gac1e25878d16efa6112d907738f525773',1,'fadeLightBy(CRGB *leds, uint16_t num_leds, uint8_t fadeBy):&#160;colorutils.cpp']]],
+ ['fadetoblackby',['fadeToBlackBy',['../class_c_pixel_view.html#a4861b6938f1cb9f8f885a9f3af13b8a9',1,'CPixelView::fadeToBlackBy()'],['../struct_c_r_g_b.html#ab49109cf2ec532c643d4998f03cf16c7',1,'CRGB::fadeToBlackBy()'],['../group___colorutils.html#ga404d163d8a422cee2df2baac4151ca98',1,'fadeToBlackBy(CRGB *leds, uint16_t num_leds, uint8_t fadeBy):&#160;colorutils.cpp'],['../group___colorutils.html#ga404d163d8a422cee2df2baac4151ca98',1,'fadeToBlackBy(CRGB *leds, uint16_t num_leds, uint8_t fadeBy):&#160;colorutils.cpp']]],
+ ['fadeusingcolor',['fadeUsingColor',['../group___colorutils.html#gae8c0a05b75034b4a2cae20ddc70ec15f',1,'fadeUsingColor(CRGB *leds, uint16_t numLeds, const CRGB &amp;colormask):&#160;colorutils.cpp'],['../group___colorutils.html#gae8c0a05b75034b4a2cae20ddc70ec15f',1,'fadeUsingColor(CRGB *leds, uint16_t numLeds, const CRGB &amp;colormask):&#160;colorutils.cpp']]],
+ ['fill_5fgradient',['fill_gradient',['../group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98',1,'fill_gradient(T *targetArray, uint16_t startpos, CHSV startcolor, uint16_t endpos, CHSV endcolor, TGradientDirectionCode directionCode=SHORTEST_HUES):&#160;colorutils.h'],['../group___colorutils.html#gace693b077794f9b6aa80875fdd550a68',1,'fill_gradient(T *targetArray, uint16_t numLeds, const CHSV &amp;c1, const CHSV &amp;c2, TGradientDirectionCode directionCode=SHORTEST_HUES):&#160;colorutils.h'],['../group___colorutils.html#ga3a46ed6b7043382df172d7501785033c',1,'fill_gradient(T *targetArray, uint16_t numLeds, const CHSV &amp;c1, const CHSV &amp;c2, const CHSV &amp;c3, TGradientDirectionCode directionCode=SHORTEST_HUES):&#160;colorutils.h'],['../group___colorutils.html#ga396996c5e505e459b418330f4386f779',1,'fill_gradient(T *targetArray, uint16_t numLeds, const CHSV &amp;c1, const CHSV &amp;c2, const CHSV &amp;c3, const CHSV &amp;c4, TGradientDirectionCode directionCode=SHORTEST_HUES):&#160;colorutils.h']]],
+ ['fill_5fgradient_5frgb',['fill_gradient_RGB',['../group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88',1,'fill_gradient_RGB(CRGB *leds, uint16_t startpos, CRGB startcolor, uint16_t endpos, CRGB endcolor):&#160;colorutils.cpp'],['../group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88',1,'fill_gradient_RGB(CRGB *leds, uint16_t startpos, CRGB startcolor, uint16_t endpos, CRGB endcolor):&#160;colorutils.cpp']]],
['fill_5frainbow',['fill_rainbow',['../group___colorutils.html#gafcc7dac88e25736ebc49a9faf2a1c2e2',1,'fill_rainbow(struct CRGB *pFirstLED, int numToFill, uint8_t initialhue, uint8_t deltahue):&#160;colorutils.cpp'],['../group___colorutils.html#gac3052a230febda0693517ce9d12aa452',1,'fill_rainbow(struct CHSV *targetArray, int numToFill, uint8_t initialhue, uint8_t deltahue):&#160;colorutils.cpp'],['../group___colorutils.html#gafcc7dac88e25736ebc49a9faf2a1c2e2',1,'fill_rainbow(struct CRGB *pFirstLED, int numToFill, uint8_t initialhue, uint8_t deltahue=5):&#160;colorutils.cpp'],['../group___colorutils.html#gac3052a230febda0693517ce9d12aa452',1,'fill_rainbow(struct CHSV *targetArray, int numToFill, uint8_t initialhue, uint8_t deltahue=5):&#160;colorutils.cpp']]],
['fill_5fsolid',['fill_solid',['../group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b',1,'fill_solid(struct CRGB *leds, int numToFill, const struct CRGB &amp;color):&#160;colorutils.cpp'],['../group___colorutils.html#gad1abf13328e8dd1c483a270af77b17ed',1,'fill_solid(struct CHSV *targetArray, int numToFill, const struct CHSV &amp;hsvColor):&#160;colorutils.cpp'],['../group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b',1,'fill_solid(struct CRGB *leds, int numToFill, const struct CRGB &amp;color):&#160;colorutils.cpp'],['../group___colorutils.html#gad1abf13328e8dd1c483a270af77b17ed',1,'fill_solid(struct CHSV *targetArray, int numToFill, const struct CHSV &amp;hsvColor):&#160;colorutils.cpp']]],
['floattosfract15',['floatToSfract15',['../group__lib8tion.html#gaa2facbc0ec935e34c629aef43d6262c0',1,'lib8tion.h']]]
diff --git a/docs/3.1/search/functions_8.js b/docs/3.1/search/functions_8.js
index e0606f7c..42ecac9e 100644
--- a/docs/3.1/search/functions_8.js
+++ b/docs/3.1/search/functions_8.js
@@ -1,6 +1,7 @@
var searchData=
[
['head',['head',['../class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0',1,'CLEDController']]],
+ ['heatcolor',['HeatColor',['../group___colorutils.html#gac5c6b83ec07d310385a430f9f0336530',1,'HeatColor(uint8_t temperature):&#160;colorutils.cpp'],['../group___colorutils.html#gac5c6b83ec07d310385a430f9f0336530',1,'HeatColor(uint8_t temperature):&#160;colorutils.cpp']]],
['hours8',['hours8',['../group__lib8tion.html#ga837f5a688998f3340994613944e47d41',1,'lib8tion.h']]],
['hsv2rgb_5frainbow',['hsv2rgb_rainbow',['../group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8',1,'hsv2rgb_rainbow(const CHSV &amp;hsv, CRGB &amp;rgb):&#160;hsv2rgb.cpp'],['../group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8',1,'hsv2rgb_rainbow(const CHSV &amp;hsv, CRGB &amp;rgb):&#160;hsv2rgb.cpp']]]
];
diff --git a/docs/3.1/search/functions_b.js b/docs/3.1/search/functions_b.js
index 4704e371..58e4e0db 100644
--- a/docs/3.1/search/functions_b.js
+++ b/docs/3.1/search/functions_b.js
@@ -3,6 +3,6 @@ var searchData=
['map8',['map8',['../group__lib8tion.html#gaf65357c7aeca9778e5a2f80a6bac2b5d',1,'lib8tion.h']]],
['maximizebrightness',['maximizeBrightness',['../struct_c_r_g_b.html#a6b0b8f3da2b3b2b44778e142dbae47ed',1,'CRGB']]],
['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']]]
+ ['mod8',['mod8',['../group___math.html#gaa3beb6c31141a13c1a047b926d065ca2',1,'math8.h']]],
+ ['mul8',['mul8',['../group___math.html#gaf170916b55c493ea038c1d96b338e059',1,'math8.h']]]
];
diff --git a/docs/3.1/search/functions_c.js b/docs/3.1/search/functions_c.js
index f7bb5c45..397e72f9 100644
--- a/docs/3.1/search/functions_c.js
+++ b/docs/3.1/search/functions_c.js
@@ -1,10 +1,11 @@
var searchData=
[
+ ['nblend',['nblend',['../group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335',1,'nblend(CRGB &amp;existing, const CRGB &amp;overlay, fract8 amountOfOverlay):&#160;colorutils.cpp'],['../group___colorutils.html#ga63e89e8505c65e973218d1638dda3b04',1,'nblend(CRGB *existing, CRGB *overlay, uint16_t count, fract8 amountOfOverlay):&#160;colorutils.cpp'],['../group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335',1,'nblend(CRGB &amp;existing, const CRGB &amp;overlay, fract8 amountOfOverlay):&#160;colorutils.cpp'],['../group___colorutils.html#ga63e89e8505c65e973218d1638dda3b04',1,'nblend(CRGB *existing, CRGB *overlay, uint16_t count, fract8 amountOfOverlay):&#160;colorutils.cpp']]],
['next',['next',['../class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565',1,'CLEDController']]],
- ['nscale8',['nscale8',['../class_c_pixel_view.html#adde9560e0a2f538a998e849ff0361bc1',1,'CPixelView::nscale8(uint8_t scaledown)'],['../class_c_pixel_view.html#ad1b0bbeb416db7f4dd1139ea23491330',1,'CPixelView::nscale8(PIXEL_TYPE &amp;scaledown)'],['../class_c_pixel_view.html#a195deb4034393308c9573454ac5e56ae',1,'CPixelView::nscale8(CPixelView &amp;rhs)'],['../struct_c_r_g_b.html#aa80fd3b2990b00a963aa009a3c4d095a',1,'CRGB::nscale8(uint8_t scaledown)'],['../struct_c_r_g_b.html#a071f7ba57db3d9b88899f4c30c715a6b',1,'CRGB::nscale8(const CRGB &amp;scaledown)']]],
- ['nscale8_5fleaving_5fr1_5fdirty',['nscale8_LEAVING_R1_DIRTY',['../group___scaling.html#ga5f6dde3d9398f4b389c96e759a3f7b80',1,'scale8.h']]],
- ['nscale8_5fvideo',['nscale8_video',['../class_c_pixel_view.html#a267b004b77ee7da80be81f6ff73c1d82',1,'CPixelView::nscale8_video()'],['../struct_c_r_g_b.html#a8bb881dd011552b412af2845562b0df3',1,'CRGB::nscale8_video()']]],
- ['nscale8_5fvideo_5fleaving_5fr1_5fdirty',['nscale8_video_LEAVING_R1_DIRTY',['../group___scaling.html#ga2a580fcaa010558218faae95d1936635',1,'scale8.h']]],
+ ['nscale8',['nscale8',['../class_c_pixel_view.html#adde9560e0a2f538a998e849ff0361bc1',1,'CPixelView::nscale8(uint8_t scaledown)'],['../class_c_pixel_view.html#ad1b0bbeb416db7f4dd1139ea23491330',1,'CPixelView::nscale8(PIXEL_TYPE &amp;scaledown)'],['../class_c_pixel_view.html#a195deb4034393308c9573454ac5e56ae',1,'CPixelView::nscale8(CPixelView &amp;rhs)'],['../struct_c_r_g_b.html#aa80fd3b2990b00a963aa009a3c4d095a',1,'CRGB::nscale8(uint8_t scaledown)'],['../struct_c_r_g_b.html#a071f7ba57db3d9b88899f4c30c715a6b',1,'CRGB::nscale8(const CRGB &amp;scaledown)'],['../group___colorutils.html#gad0356fc313196732e7cd4e64f506f82b',1,'nscale8(CRGB *leds, uint16_t num_leds, uint8_t scale):&#160;colorutils.cpp'],['../group___colorutils.html#gad0356fc313196732e7cd4e64f506f82b',1,'nscale8(CRGB *leds, uint16_t num_leds, uint8_t scale):&#160;colorutils.cpp']]],
+ ['nscale8_5fleaving_5fr1_5fdirty',['nscale8_LEAVING_R1_DIRTY',['../group___scaling.html#ga025b1e8d81032d15fe1ab500f804f3f2',1,'scale8.h']]],
+ ['nscale8_5fvideo',['nscale8_video',['../class_c_pixel_view.html#a267b004b77ee7da80be81f6ff73c1d82',1,'CPixelView::nscale8_video()'],['../struct_c_r_g_b.html#a8bb881dd011552b412af2845562b0df3',1,'CRGB::nscale8_video()'],['../group___colorutils.html#ga956be37436f2b9c06c99d24263ef8e83',1,'nscale8_video(CRGB *leds, uint16_t num_leds, uint8_t scale):&#160;colorutils.cpp'],['../group___colorutils.html#ga956be37436f2b9c06c99d24263ef8e83',1,'nscale8_video(CRGB *leds, uint16_t num_leds, uint8_t scale):&#160;colorutils.cpp']]],
+ ['nscale8_5fvideo_5fleaving_5fr1_5fdirty',['nscale8_video_LEAVING_R1_DIRTY',['../group___scaling.html#gadfd26d9b154f5ec79dbffe612dafd146',1,'scale8.h']]],
['nscale8x2',['nscale8x2',['../group___scaling.html#ga6f419761a744efed4bae8875ac07aef0',1,'scale8.h']]],
['nscale8x2_5fvideo',['nscale8x2_video',['../group___scaling.html#ga4204edd4a3f8aac7124a10f1f5cfccfe',1,'scale8.h']]],
['nscale8x3',['nscale8x3',['../group___scaling.html#ga39bf87e5526120889086cab19ac749b1',1,'scale8.h']]],
diff --git a/docs/3.1/search/functions_e.js b/docs/3.1/search/functions_e.js
index aef9ecd0..ec3d342e 100644
--- a/docs/3.1/search/functions_e.js
+++ b/docs/3.1/search/functions_e.js
@@ -1,8 +1,8 @@
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']]],
+ ['qadd7',['qadd7',['../group___math.html#ga622205a211419db7dd1f582923aec68d',1,'math8.h']]],
+ ['qadd8',['qadd8',['../group___math.html#ga07133b3085824d0fcd4f5086d286c4b5',1,'math8.h']]],
+ ['qmul8',['qmul8',['../group___math.html#ga17d0d692de142f4d4379b8cc899eaefb',1,'math8.h']]],
+ ['qsub8',['qsub8',['../group___math.html#gae261576a4c8155d6c0ba8615b2d2ecb3',1,'math8.h']]],
['quadwave8',['quadwave8',['../group__lib8tion.html#ga209d6cbdb109cc3139e7bb1e46c6228f',1,'lib8tion.h']]]
];
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 c65daa92..dae00bc1 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 a2869cf0..74f1a888 100644
--- a/docs/3.1/struct_c_h_s_v.html
+++ b/docs/3.1/struct_c_h_s_v.html
@@ -205,7 +205,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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 c7868b34..0621ce65 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 98f10505..65dcf27c 100644
--- a/docs/3.1/struct_c_r_g_b.html
+++ b/docs/3.1/struct_c_r_g_b.html
@@ -626,7 +626,7 @@ union {</td></tr>
<p>getParity returns 0 or 1, depending on the lowest bit of the sum of the color components. </p>
-<p>Definition at line <a class="el" href="pixeltypes_8h_source.html#l00509">509</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#l00513">513</a> of file <a class="el" href="pixeltypes_8h_source.html">pixeltypes.h</a>.</p>
</div>
</div>
@@ -772,7 +772,7 @@ union {</td></tr>
<p>There's no such thing as a free lunch; in many cases this 'hidden bit' may actually be visible, but this code makes reasonable efforts to hide it as much as is reasonably possible.</p>
<p>Also, an effort is made to have make it such that repeatedly setting the parity to different values will not cause the color to 'drift'. Toggling the parity twice should generally result in the original color again. </p>
-<p>Definition at line <a class="el" href="pixeltypes_8h_source.html#l00538">538</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#l00542">542</a> of file <a class="el" href="pixeltypes_8h_source.html">pixeltypes.h</a>.</p>
</div>
</div>
@@ -814,7 +814,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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 aad51226..dcd5967a 100644
--- a/docs/3.1/struct_pixel_controller-members.html
+++ b/docs/3.1/struct_pixel_controller-members.html
@@ -172,7 +172,7 @@ $(document).ready(function(){initNavTree('struct_pixel_controller.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 a8e82b12..f00016c7 100644
--- a/docs/3.1/struct_pixel_controller.html
+++ b/docs/3.1/struct_pixel_controller.html
@@ -286,22 +286,22 @@ int&#160;</td><td class="memItemRight" valign="bottom"><b>mOffsets</b> [LANES]</
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>
+uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>b</b> { return b ? <a class="el" href="group___math.html#ga07133b3085824d0fcd4f5086d286c4b5">qadd8</a>(b, pc.d[RO(SLOT)]) : 0</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>
+uint8_t uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>d</b> { return b ? <a class="el" href="group___math.html#ga07133b3085824d0fcd4f5086d286c4b5">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>
+uint8_t uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>scale</b> { return <a class="el" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">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>
+int uint8_t uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>scale</b> { return <a class="el" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">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>
+int uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>scale</b> { return <a class="el" href="group___scaling.html#gad7535ccda9c92470c4e6ee0265585555">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>
@@ -319,7 +319,7 @@ struct PixelController&lt; RGB_ORDER, LANES, MASK &gt;</h3>
<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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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-members.html b/docs/3.1/structsub4-members.html
index 4c5c5915..da3f26c5 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 f6eebaf3..5c0e8902 100644
--- a/docs/3.1/structsub4.html
+++ b/docs/3.1/structsub4.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 4db5233d..1d675be1 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 bc05753e..8fa45b0e 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 0119bb31..72534ce6 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 6f763cad..72ad778d 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#l00362">362</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#l00363">363</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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 801c743d..3baccef2 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 c40b1679..3cc8dfbe 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#l00410">410</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#l00414">414</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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 84f212bc..98c347bf 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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 f141ee81..576ba74f 100644
--- a/docs/3.1/unionbitswap__type.html
+++ b/docs/3.1/unionbitswap__type.html
@@ -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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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 d2038b8f..cd434033 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 1eb64691..4ee52821 100644
--- a/docs/3.1/unionjust8bits.html
+++ b/docs/3.1/unionjust8bits.html
@@ -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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 a124802e..310c0351 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 7538a1e0..8c62789b 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 Tue Feb 16 2016 11:42:45 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:45 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 cbf231c2..8ff6c463 100644
--- a/docs/3.1/wiring_8cpp_source.html
+++ b/docs/3.1/wiring_8cpp_source.html
@@ -356,7 +356,7 @@ $(document).ready(function(){initNavTree('wiring_8cpp_source.html','');});
<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 Tue Feb 16 2016 11:42:44 for FastLED by
+ <li class="footer">Generated on Sun Feb 21 2016 18:44:44 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>