From 0ae7e1b0fdffe41db6c736b4f2f15a71da04ff9b Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Tue, 26 Jan 2016 17:05:02 -0800 Subject: [PATCH] First pass at bundling the LED code into its own class --- led_control.cpp | 41 ++++++----------------- led_control.h | 86 +++++++++++++++++++++++++++++++++---------------- 2 files changed, 68 insertions(+), 59 deletions(-) diff --git a/led_control.cpp b/led_control.cpp index 2f2bdceb..25bb545a 100644 --- a/led_control.cpp +++ b/led_control.cpp @@ -1,37 +1,14 @@ #include "led_control.h" -static uint8_t led_mode; -static uint8_t last_led_mode; -static uint8_t stored_led_mode; -static uint8_t pos = 0; - -static cRGB led_off = { .r = 0, .g = 0, .b = 0 }; -static cRGB led_steady = { .r = 0, .g = 255, .b = 0}; -static cRGB led_blue = { .r = 0, .g = 0, .b = 255 }; -static cRGB led_dark_blue = { .r = 0, .g = 0, .b = 127 }; -static cRGB led_bright_red = { .r = 255, .g = 0, .b = 0}; -static cRGB led_breathe; -static cRGB rainbow; - - -static uint8_t rainbow_hue = 0; //stores 0 to 614 -static uint8_t rainbow_steps = 1; //number of hues we skip in a 360 range per update -static uint8_t rainbow_wave_steps =1; //number of hues we skip in a 360 range per update - -static byte rainbow_saturation = 255; -static byte rainbow_value = 190; - -static long rainbow_wave_ticks = 1; //delays between update -static long rainbow_ticks = 5; //delays between update -static long rainbow_current_ticks =0; -static uint8_t breathe_brightness = 0; // how bright the LED is -static uint8_t breathe_fadeAmount = 1; // how many pouint8_ts to fade the LED by - -static uint8_t chase_pixels = 1; -static uint8_t chase_threshold = 6; -static uint8_t current_chase_counter = 0; -// End RGB stuff - +uint8_t LEDControl::pos= 0; +uint8_t LEDControl::rainbow_hue=0; +uint8_t LEDControl::rainbow_steps = 1; +uint8_t LEDControl::rainbow_wave_steps=1; +long LEDControl::rainbow_current_ticks =0; +uint8_t LEDControl::breathe_brightness=0; +uint8_t LEDControl::breathe_fadeAmount=1; +uint8_t LEDControl::chase_pixels= 1; +uint8_t LEDControl::current_chase_counter = 0; void LEDControl::set_key_color(byte row, byte col, cRGB color) { implementation_led_set_crgb_at(row, col, color); diff --git a/led_control.h b/led_control.h index 99ca063c..f6ebaf71 100644 --- a/led_control.h +++ b/led_control.h @@ -17,33 +17,65 @@ class LEDControl { - public: - void next_led_mode(); - void led_bootup(); - void update_leds(uint8_t numlock_enabled); - void led_type_letter(uint8_t letter); -void set_led_mode(uint8_t mode); - - private: -void set_key_color(uint8_t row, uint8_t col, cRGB color); -cRGB get_key_color(uint8_t row, uint8_t col); -void led_compute_breath(); -void led_effect_breathe_init(); -void led_effect_rainbow_init(); -void led_effect_chase_init(); -void led_effect_steady_init(); -void led_effect_heatmap_init(); - -void led_effect_breathe_update(); -void led_effect_rainbow_update(); -void led_effect_rainbow_wave_update(); -void led_effect_chase_update(); -void led_effect_steady_update(); -void led_effect_heatmap_update(); -void led_effect_numlock_update(); -void set_all_leds_to(cRGB color); -void SetHSV(cRGB crgb, int hue, byte sat, byte val); -void initialize_led_mode(uint8_t mode); + public: + void next_led_mode(); + void led_bootup(); + void update_leds(uint8_t numlock_enabled); + void led_type_letter(uint8_t letter); + void set_led_mode(uint8_t mode); + + private: + uint8_t led_mode; + uint8_t last_led_mode; + uint8_t stored_led_mode; + static uint8_t pos; + + cRGB led_off = { .r = 0, .g = 0, .b = 0 }; + cRGB led_steady = { .r = 0, .g = 255, .b = 0}; + cRGB led_blue = { .r = 0, .g = 0, .b = 255 }; + cRGB led_dark_blue = { .r = 0, .g = 0, .b = 127 }; + cRGB led_bright_red = { .r = 255, .g = 0, .b = 0}; + cRGB led_breathe; + cRGB rainbow; + + + static uint8_t rainbow_hue; //stores 0 to 614 + + static uint8_t rainbow_steps; //number of hues we skip in a 360 range per update + static uint8_t rainbow_wave_steps; //number of hues we skip in a 360 range per update + + static const byte rainbow_saturation = 255; + static const byte rainbow_value = 190; + + static const long rainbow_wave_ticks = 1; //delays between update + static const long rainbow_ticks = 5; //delays between update + static long rainbow_current_ticks; + + static uint8_t breathe_brightness; // how bright the LED is + static uint8_t breathe_fadeAmount; // how many points to fade the LED by + static uint8_t chase_pixels; + static uint8_t current_chase_counter; + static const uint8_t chase_threshold = 6; +// End RGB stuff + void set_key_color(uint8_t row, uint8_t col, cRGB color); + cRGB get_key_color(uint8_t row, uint8_t col); + void led_compute_breath(); + void led_effect_breathe_init(); + void led_effect_rainbow_init(); + void led_effect_chase_init(); + void led_effect_steady_init(); + void led_effect_heatmap_init(); + + void led_effect_breathe_update(); + void led_effect_rainbow_update(); + void led_effect_rainbow_wave_update(); + void led_effect_chase_update(); + void led_effect_steady_update(); + void led_effect_heatmap_update(); + void led_effect_numlock_update(); + void set_all_leds_to(cRGB color); + void SetHSV(cRGB crgb, int hue, byte sat, byte val); + void initialize_led_mode(uint8_t mode); };