From e2dfb787da2a2ba88e0e074b396a2b988e10eccf Mon Sep 17 00:00:00 2001 From: XScorpion2 Date: Tue, 16 Jul 2019 02:40:43 -0500 Subject: Adding rgb matrix speed into eeprom storage. (#5965) Zeroing out spd in eeconfig_init_quantum Switched to block read & update Update tmk_core/common/eeconfig.h Co-Authored-By: Drashna Jaelre Fixing init compile error Update eeconfig.c Dead / Missing API cleanup alignment --- users/xulkal/process_records.c | 4 ---- 1 file changed, 4 deletions(-) (limited to 'users/xulkal') diff --git a/users/xulkal/process_records.c b/users/xulkal/process_records.c index 115623caa4..2c5d2a4e75 100644 --- a/users/xulkal/process_records.c +++ b/users/xulkal/process_records.c @@ -2,10 +2,6 @@ #include "custom_keycodes.h" #include "timer_utils.h" -#if defined(RGB_MATRIX_ENABLE) -extern void eeconfig_update_rgb_matrix_default(void); -#endif - #ifdef TRILAYER_ENABLED uint32_t layer_state_set_user(uint32_t state) { -- cgit v1.2.3 From 40b0ddd425bf09ddbb15a414b5147e98256f10a8 Mon Sep 17 00:00:00 2001 From: XScorpion2 Date: Mon, 22 Jul 2019 12:43:52 -0500 Subject: Sol Rev 2 Keyboard (#6389) * Basic Rev 2 implementation * Updated LED defines and added Extra encoder support * Fixed rgb pin assignment * Physically accurate LED positions * Single Color Band scrolling left to right effects * Spirals, Pinwheels, and Documentation....Oh My! * Spiral effect band thickness adjustments * Fixing animation spin directions * Full hand LED positions * Basic Rev 2 implementation Updated LED defines and added Extra encoder support Fixed rgb pin assignment Physically accurate LED positions Full hand LED positions Moving rev2 folder * RGB Center Point LED position update * Fixing led config commas * Fixing led config commas * fix enter key * fix enter * Small changes to default * update default * typo fix * update default * Fixing defines & led config, turned full hand & extra encoders into rules.mk feature * Refactored rules.mk to have a post_rules.mk * Forgot to offset the matrix to led map due to the edge led additions * Updated LED flags and fixed my keymap * Update keymap.c include speed controls for RGB * Fixing more rules.mk and adding keymap like encoders functionality * Sol Rev 2 Implementation * Minor fixes * Keymap fixes * Fix Colemak, add lock keys --- users/xulkal/custom_encoder.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'users/xulkal') diff --git a/users/xulkal/custom_encoder.c b/users/xulkal/custom_encoder.c index 09f1cda0d1..076a9891a3 100644 --- a/users/xulkal/custom_encoder.c +++ b/users/xulkal/custom_encoder.c @@ -4,7 +4,7 @@ const uint16_t PROGMEM encoders[][2] = { { KC_PGUP, KC_PGDN }, { KC_DOWN, KC_UP } -} +}; void encoder_update_user(uint8_t index, bool clockwise) { -- cgit v1.2.3 From 20c0533c4c66b9d222b6ced2fad3ec6be6cad76e Mon Sep 17 00:00:00 2001 From: XScorpion2 Date: Thu, 25 Jul 2019 13:56:29 -0500 Subject: [User] Xulkal Keymaps Update (#6392) * Xulkal changes Refactor rgb & encoder menu Hadron Keymap Refactor oled menu * Fixing horizontal OLED data display * Reverting changes to take to separate prs --- users/xulkal/custom_encoder.c | 67 ++++++++++++- users/xulkal/custom_keycodes.h | 12 +++ users/xulkal/custom_oled.c | 207 ++++++++++++++++++++-------------------- users/xulkal/custom_rgb.c | 64 +++++++++++++ users/xulkal/custom_rgb.h | 14 +++ users/xulkal/custom_tap_dance.c | 16 ++-- users/xulkal/custom_tap_dance.h | 7 +- users/xulkal/layouts.h | 4 +- users/xulkal/process_records.c | 35 ++++--- users/xulkal/process_records.h | 1 + users/xulkal/rules.mk | 20 +++- 11 files changed, 310 insertions(+), 137 deletions(-) create mode 100644 users/xulkal/custom_rgb.c create mode 100644 users/xulkal/custom_rgb.h (limited to 'users/xulkal') diff --git a/users/xulkal/custom_encoder.c b/users/xulkal/custom_encoder.c index 076a9891a3..cd029944ff 100644 --- a/users/xulkal/custom_encoder.c +++ b/users/xulkal/custom_encoder.c @@ -1,13 +1,72 @@ #include "custom_encoder.h" +#include "custom_keycodes.h" + +#ifdef RGB_OLED_MENU +#include "custom_rgb.h" + +// I'm lazy and like constants over calculations, also using it as a compile time check +#if defined(RGB_MATRIX_ENABLE) + #define RGB_FUNCTION_COUNT 6 +#elif defined(RGBLIGHT_ENABLE) + #define RGB_FUNCTION_COUNT 5 +#endif + +typedef void (*rgb_f)(void); + +const rgb_f rgb_functions[RGB_FUNCTION_COUNT][2] = { +#if defined(RGB_MATRIX_ENABLE) + { rgb_matrix_increase_hue, rgb_matrix_decrease_hue }, + { rgb_matrix_increase_sat, rgb_matrix_decrease_sat }, + { rgb_matrix_increase_val, rgb_matrix_decrease_val }, + { rgb_matrix_increase_speed, rgb_matrix_decrease_speed }, + { rgb_matrix_step, rgb_matrix_step_reverse }, + { rgb_matrix_increase_flags, rgb_matrix_decrease_flags } +#elif defined(RGBLIGHT_ENABLE) + { rgblight_increase_hue, rgblight_decrease_hue }, + { rgblight_increase_sat, rgblight_decrease_sat }, + { rgblight_increase_val, rgblight_decrease_val }, + { rgblight_increase_speed, rgblight_decrease_speed }, + { rgblight_step, rgblight_step_reverse } +#endif +}; + +// Start at the end for mode +uint8_t rgb_encoder_state = 4; + +bool process_record_encoder(uint16_t keycode, keyrecord_t *record) +{ + switch (keycode) + { + case RGB_ENC: + if (record->event.pressed) { + if (get_mods() & MOD_MASK_SHIFT) { + rgb_encoder_state = (rgb_encoder_state - 1); + if (rgb_encoder_state >= RGB_FUNCTION_COUNT) + rgb_encoder_state = RGB_FUNCTION_COUNT - 1; + } else { + rgb_encoder_state = (rgb_encoder_state + 1) % RGB_FUNCTION_COUNT; + } + } + return false; + } + return true; +} +#endif // RGB_OLED_MENU -#ifdef ENCODER_ENABLE const uint16_t PROGMEM encoders[][2] = { { KC_PGUP, KC_PGDN }, - { KC_DOWN, KC_UP } + { KC_VOLU, KC_VOLD } }; void encoder_update_user(uint8_t index, bool clockwise) { - tap_code16(pgm_read_word(&encoders[index][clockwise])); + if (!is_keyboard_master()) + return; + +#ifdef RGB_OLED_MENU + if (index == RGB_OLED_MENU) + (*rgb_functions[rgb_encoder_state][clockwise])(); + else +#endif // RGB_OLED_MENU + tap_code16(pgm_read_word(&encoders[index][clockwise])); } -#endif diff --git a/users/xulkal/custom_keycodes.h b/users/xulkal/custom_keycodes.h index d4ae0bd477..7ced92bf4c 100644 --- a/users/xulkal/custom_keycodes.h +++ b/users/xulkal/custom_keycodes.h @@ -9,6 +9,9 @@ enum custom_keycodes { TD_DEL, TD_DOT, TD_MAX, +#endif +#ifdef ENCODER_ENABLE + RGB_ENC, #endif KEYMAP_SAFE_RANGE }; @@ -26,3 +29,12 @@ enum custom_keycodes { #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) + + +#ifdef ENCODER_ENABLE +#define KC_ENC1 RGB_ENC +#define KC_ENC2 KC_MPLY +#else +#define KC_ENC1 RGB_RMOD +#define KC_ENC2 RGB_MOD +#endif diff --git a/users/xulkal/custom_oled.c b/users/xulkal/custom_oled.c index 7280ef7019..448e6ca107 100644 --- a/users/xulkal/custom_oled.c +++ b/users/xulkal/custom_oled.c @@ -3,12 +3,15 @@ #include -#ifdef OLED_DRIVER_ENABLE - #ifdef RGBLIGHT_ENABLE rgblight_config_t rgblight_config; #endif +#if KEYBOARD_helix_rev2 +extern uint8_t is_master; +bool is_keyboard_master(void) { return is_master; } +#endif + static void render_logo(void) { static const char PROGMEM font_logo[] = { @@ -18,21 +21,38 @@ static void render_logo(void) oled_write_P(font_logo, false); } -#if defined(OLED_90ROTATION) - -// TODO: Need to define this function / extern only for helix based split common keyboards -extern uint8_t is_master; -bool is_keyboard_master(void) +static void render_icon(void) { - return is_master; +#ifdef OLED_90ROTATION + static const char PROGMEM font_icon[] = { + 0x9b,0x9c,0x9d,0x9e,0x9f, + 0xbb,0xbc,0xbd,0xbe,0xbf, + 0xdb,0xdc,0xdd,0xde,0xdf,0 + }; +#else + static const char PROGMEM font_icon[] = { + // Use \r (0x0d) to jump to the next line without clearing the rest of the current line + 0x9b,0x9c,0x9d,0x9e,0x9f,0x0d, + 0xbb,0xbc,0xbd,0xbe,0xbf,0x0d, + 0xdb,0xdc,0xdd,0xde,0xdf,0 + }; +#endif + oled_write_P(font_icon, false); } -static void render_layer(uint8_t layer) +static void render_layer(void) { + uint8_t layer = layer_state ? biton(layer_state) : biton32(default_layer_state); +#ifdef OLED_90ROTATION + oled_write_P(PSTR("Layer"), false); +#else + oled_write_P(PSTR("Layer: "), false); +#endif + switch (layer) { case _QWERTY: - oled_write_P(PSTR("DFLT "), false); + oled_write_P(PSTR("BASE "), false); break; #ifndef GAMELAYER_DISABLE case _GAME: @@ -53,125 +73,110 @@ static void render_layer(uint8_t layer) } } -static void render_status(void) +static void render_keyboard_leds(void) { - // Render to mode icon - static const char PROGMEM mode_logo[2][4] = { - {0x97,0x98,0x0a,0}, - {0xb7,0xb8,0x0a,0} }; - - oled_write_P(mode_logo[0], false); - oled_write_P(mode_logo[1], false); + // Host Keyboard LED Status + uint8_t led_state = host_keyboard_leds(); +#ifdef OLED_90ROTATION + oled_write_P(IS_LED_ON(led_state, USB_LED_NUM_LOCK) ? PSTR("NUMLK") : PSTR(" "), false); + oled_write_P(IS_LED_ON(led_state, USB_LED_CAPS_LOCK) ? PSTR("CAPLK") : PSTR(" "), false); + oled_write_P(IS_LED_ON(led_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRLK") : PSTR(" "), false); +#else + oled_write_P(IS_LED_ON(led_state, USB_LED_NUM_LOCK) ? PSTR("NUM ") : PSTR(" "), false); + oled_write_P(IS_LED_ON(led_state, USB_LED_CAPS_LOCK) ? PSTR("CAPS ") : PSTR(" "), false); + oled_write_P(IS_LED_ON(led_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRL") : PSTR(" "), false); +#endif +} - oled_write_P(PSTR("Layer"), false); - uint8_t layer = biton(layer_state); - if (layer != _QWERTY) - render_layer(layer); - else - render_layer(biton32(default_layer_state)); +#ifdef RGB_OLED_MENU +extern uint8_t rgb_encoder_state; +#endif - // Host Keyboard LED Status - uint8_t led_usb_state = host_keyboard_leds(); - oled_write_P(led_usb_state & (1<event.pressed) - { - eeconfig_update_rgblight_default(); - rgblight_enable(); - } -#elif defined(RGB_MATRIX_ENABLE) - if (record->event.pressed) - eeconfig_update_rgb_matrix_default(); +#ifdef RGB_ENABLE + if (record->event.pressed) + rgb_reset(); #endif - } return false; case RESET: { @@ -42,9 +38,16 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) reset_keyboard(); } return false; +#ifdef RGB_MATRIX_TOG_LAYERS + case RGB_TOG: + if (record->event.pressed) { + rgb_matrix_decrease_flags(); + } + return false; +#endif } - return process_record_keymap(keycode, record); + return process_record_encoder(keycode, record) && process_record_keymap(keycode, record); } __attribute__ ((weak)) @@ -52,3 +55,9 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } + +__attribute__ ((weak)) +bool process_record_encoder(uint16_t keycode, keyrecord_t *record) +{ + return true; +} diff --git a/users/xulkal/process_records.h b/users/xulkal/process_records.h index 701ef7e74f..c219394f8e 100644 --- a/users/xulkal/process_records.h +++ b/users/xulkal/process_records.h @@ -15,3 +15,4 @@ enum layer_number { }; bool process_record_keymap(uint16_t keycode, keyrecord_t *record); +bool process_record_encoder(uint16_t keycode, keyrecord_t *record); diff --git a/users/xulkal/rules.mk b/users/xulkal/rules.mk index ab0231d7dc..c3834ff5f0 100644 --- a/users/xulkal/rules.mk +++ b/users/xulkal/rules.mk @@ -1,8 +1,6 @@ SRC += xulkal.c \ process_records.c \ custom_tap_dance.c \ - custom_encoder.c \ - custom_oled.c \ timer_utils.c # Some usual defaults @@ -15,3 +13,21 @@ ifneq ($(strip $(DISABLE_LTO)), yes) OPT_DEFS += -DNO_ACTION_MACRO OPT_DEFS += -DNO_ACTION_FUNCTION endif + +ifeq ($(strip $(ENCODER_ENABLE)), yes) + SRC += custom_encoder.c +endif + +ifneq ($(strip $(RGB_MATRIX_ENABLE)), no) + OPT_DEFS += -DRGB_ENABLE + SRC += custom_rgb.c +endif + +ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) + OPT_DEFS += -DRGB_ENABLE + SRC += custom_rgb.c +endif + +ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes) + SRC += custom_oled.c +endif -- cgit v1.2.3 From 957070a6b5886719557b6880afa7e3716548c18a Mon Sep 17 00:00:00 2001 From: XScorpion2 Date: Sun, 25 Aug 2019 14:37:55 -0500 Subject: Added OLED Display autoscroll during periods of OLED data inactivity (#6546) * Added OLED Display autoscroll during periods of OLED data inactivity. * Fixing compile errors * Feedback from review --- users/xulkal/custom_tap_dance.c | 1 - users/xulkal/layouts.h | 2 +- users/xulkal/process_records.c | 3 +-- users/xulkal/rules.mk | 3 +-- users/xulkal/timer_utils.c | 12 ------------ users/xulkal/timer_utils.h | 6 ------ users/xulkal/xulkal.h | 1 - 7 files changed, 3 insertions(+), 25 deletions(-) delete mode 100644 users/xulkal/timer_utils.c delete mode 100644 users/xulkal/timer_utils.h (limited to 'users/xulkal') diff --git a/users/xulkal/custom_tap_dance.c b/users/xulkal/custom_tap_dance.c index e0f90ea110..2c5d145f1b 100644 --- a/users/xulkal/custom_tap_dance.c +++ b/users/xulkal/custom_tap_dance.c @@ -1,6 +1,5 @@ #include "custom_tap_dance.h" #include "custom_keycodes.h" -#include "timer_utils.h" #ifdef TAP_DANCE_ENABLE diff --git a/users/xulkal/layouts.h b/users/xulkal/layouts.h index 89bdfb60d3..d4b7084186 100644 --- a/users/xulkal/layouts.h +++ b/users/xulkal/layouts.h @@ -18,7 +18,7 @@ #define _________________QWERTY_L2_________________ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T #define _________________QWERTY_L3_________________ RIS_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G #define _________________QWERTY_L4_________________ KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B -#define _________________QWERTY_L5_________________ KC_LCPO, KC_LGUI, LOWER, RAISE, KC_LALT, KC_SPC +#define _________________QWERTY_L5_________________ KC_LCPO, KC_LGUI, KC_LALT, LOWER, RAISE, KC_SPC #define _________________QWERTY_R1_________________ KC_6, KC_7, KC_8, KC_9, KC_0, TD_BSPC #define _________________QWERTY_R2_________________ KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS diff --git a/users/xulkal/process_records.c b/users/xulkal/process_records.c index 245d4955fb..9c0274823b 100644 --- a/users/xulkal/process_records.c +++ b/users/xulkal/process_records.c @@ -1,6 +1,5 @@ #include "process_records.h" #include "custom_keycodes.h" -#include "timer_utils.h" #ifdef RGB_ENABLE #include "custom_rgb.h" @@ -34,7 +33,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) reset_timer = timer_read() + 500; - else if (timer_expired(reset_timer)) + else if (timer_expired(timer_read(), reset_timer)) reset_keyboard(); } return false; diff --git a/users/xulkal/rules.mk b/users/xulkal/rules.mk index c3834ff5f0..8f8365ea7e 100644 --- a/users/xulkal/rules.mk +++ b/users/xulkal/rules.mk @@ -1,7 +1,6 @@ SRC += xulkal.c \ process_records.c \ - custom_tap_dance.c \ - timer_utils.c + custom_tap_dance.c # Some usual defaults MOUSEKEY_ENABLE = no # Mouse keys (+4700) diff --git a/users/xulkal/timer_utils.c b/users/xulkal/timer_utils.c deleted file mode 100644 index 5f5d9a1ebf..0000000000 --- a/users/xulkal/timer_utils.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "timer_utils.h" - -bool timer_expired(uint16_t last) -{ - return timer_read() - last < 0x8000; -} - -bool timer_expired32(uint32_t last) -{ - return timer_read32() - last < 0x80000000; -} - diff --git a/users/xulkal/timer_utils.h b/users/xulkal/timer_utils.h deleted file mode 100644 index 7e2a0b74db..0000000000 --- a/users/xulkal/timer_utils.h +++ /dev/null @@ -1,6 +0,0 @@ -#pragma once -#include "timer.h" -#include - -bool timer_expired(uint16_t last); -bool timer_expired32(uint32_t last); diff --git a/users/xulkal/xulkal.h b/users/xulkal/xulkal.h index 9bc83b7de7..32df8df0c6 100644 --- a/users/xulkal/xulkal.h +++ b/users/xulkal/xulkal.h @@ -2,6 +2,5 @@ #include "process_records.h" #include "layouts.h" -#include "timer_utils.h" #include "custom_keycodes.h" #include "custom_tap_dance.h" -- cgit v1.2.3 From c427023b31f544771391b4cd22d797ee14cadac3 Mon Sep 17 00:00:00 2001 From: XScorpion2 Date: Tue, 17 Sep 2019 12:28:02 -0500 Subject: [Keymap][Xulkal] User code update (#6752) * Updating rgb menu behavior * Fixing toggle keycode to work how I want it * Enabling auto scroll timeout --- users/xulkal/config.h | 4 ++++ users/xulkal/custom_rgb.c | 20 ++++++++++---------- users/xulkal/process_records.c | 2 +- 3 files changed, 15 insertions(+), 11 deletions(-) (limited to 'users/xulkal') diff --git a/users/xulkal/config.h b/users/xulkal/config.h index c794530d45..4b05ea4ec4 100644 --- a/users/xulkal/config.h +++ b/users/xulkal/config.h @@ -28,3 +28,7 @@ #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS #define DISABLE_RGB_MATRIX_SPLASH #define DISABLE_RGB_MATRIX_SOLID_SPLASH + +// 20m timeout (20m * 60s * 1000mil) +#define RGB_DISABLE_TIMEOUT 1200000 +#define OLED_SCROLL_TIMEOUT 20000 diff --git a/users/xulkal/custom_rgb.c b/users/xulkal/custom_rgb.c index 11bfad1d7a..f68a7c56c0 100644 --- a/users/xulkal/custom_rgb.c +++ b/users/xulkal/custom_rgb.c @@ -10,17 +10,17 @@ void rgb_matrix_increase_flags(void) } break; case LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER: { - rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); - rgb_matrix_set_color_all(0, 0, 0); + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_disable_noeeprom(); } break; case LED_FLAG_UNDERGLOW: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_disable_noeeprom(); + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_set_color_all(0, 0, 0); } break; default: { - rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); rgb_matrix_enable_noeeprom(); } break; @@ -31,8 +31,8 @@ void rgb_matrix_decrease_flags(void) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_disable_noeeprom(); + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_color_all(0, 0, 0); } break; case LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER: { @@ -41,12 +41,12 @@ void rgb_matrix_decrease_flags(void) } break; case LED_FLAG_UNDERGLOW: { - rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER); - rgb_matrix_set_color_all(0, 0, 0); + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_disable_noeeprom(); } break; default: { - rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER); rgb_matrix_enable_noeeprom(); } break; diff --git a/users/xulkal/process_records.c b/users/xulkal/process_records.c index 9c0274823b..ca2376145d 100644 --- a/users/xulkal/process_records.c +++ b/users/xulkal/process_records.c @@ -40,7 +40,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) #ifdef RGB_MATRIX_TOG_LAYERS case RGB_TOG: if (record->event.pressed) { - rgb_matrix_decrease_flags(); + rgb_matrix_increase_flags(); } return false; #endif -- cgit v1.2.3 From 1cd7afaff1b1fff300d6a8097ece10870656e0c6 Mon Sep 17 00:00:00 2001 From: XScorpion2 Date: Wed, 13 Nov 2019 01:02:58 -0600 Subject: [Keymap] Added Xulkal ALT Keymap (#7332) * Added Xulkal ALT Keymap * Hadron compile fix * Keymap fix --- users/xulkal/custom_rgb.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'users/xulkal') diff --git a/users/xulkal/custom_rgb.h b/users/xulkal/custom_rgb.h index f19dd223c2..10010b5242 100644 --- a/users/xulkal/custom_rgb.h +++ b/users/xulkal/custom_rgb.h @@ -1,9 +1,12 @@ #pragma once #if defined(RGB_MATRIX_ENABLE) -#include "rgb_matrix.h" +# include "rgb_matrix.h" #elif defined(RGBLIGHT_ENABLE) -#include "rgblight.h" +# if !defined(__AVR__) +# define PROGMEM +# endif +# include "rgblight.h" #endif #ifdef RGB_MATRIX_ENABLE -- cgit v1.2.3