From 34da4646e0ed0164f7fa70dee58af04946b3454e Mon Sep 17 00:00:00 2001 From: Sadek Baroudi Date: Thu, 25 Feb 2021 15:22:05 -0800 Subject: [PATCH] fixes, most notably bug with losing base letter settings on keyboard restart --- keyboards/crkbd/keymaps/sadekbaroudi/config.h | 1 + keyboards/crkbd/keymaps/sadekbaroudi/rules.mk | 1 - .../preonic/keymaps/sadekbaroudi/rules.mk | 3 +-- .../reviung39/keymaps/sadekbaroudi/rules.mk | 1 - users/sadekbaroudi/config.h | 16 +++++--------- users/sadekbaroudi/process_records.c | 20 ++++------------- users/sadekbaroudi/rgb_stuff.c | 4 ++++ users/sadekbaroudi/rules.mk | 2 ++ users/sadekbaroudi/sadekbaroudi.c | 22 +++++++++++++++---- users/sadekbaroudi/sadekbaroudi.h | 10 ++++----- 10 files changed, 41 insertions(+), 39 deletions(-) diff --git a/keyboards/crkbd/keymaps/sadekbaroudi/config.h b/keyboards/crkbd/keymaps/sadekbaroudi/config.h index c524b04b79..bd2fbf28af 100644 --- a/keyboards/crkbd/keymaps/sadekbaroudi/config.h +++ b/keyboards/crkbd/keymaps/sadekbaroudi/config.h @@ -33,6 +33,7 @@ along with this program. If not, see . #ifdef RGBLIGHT_ENABLE #undef RGBLED_NUM #define RGBLED_NUM 27 + #define RGBLIGHT_LIMIT_VAL 120 #define RGBLIGHT_LAYERS #define RGBLIGHT_SPLIT #endif diff --git a/keyboards/crkbd/keymaps/sadekbaroudi/rules.mk b/keyboards/crkbd/keymaps/sadekbaroudi/rules.mk index 6a3937fbc0..8e61abf40f 100644 --- a/keyboards/crkbd/keymaps/sadekbaroudi/rules.mk +++ b/keyboards/crkbd/keymaps/sadekbaroudi/rules.mk @@ -1,3 +1,2 @@ OLED_DRIVER_ENABLE = yes RGBLIGHT_ENABLE = yes -MOUSEKEY_ENABLE = yes diff --git a/keyboards/preonic/keymaps/sadekbaroudi/rules.mk b/keyboards/preonic/keymaps/sadekbaroudi/rules.mk index c66f289aea..369b727ac8 100755 --- a/keyboards/preonic/keymaps/sadekbaroudi/rules.mk +++ b/keyboards/preonic/keymaps/sadekbaroudi/rules.mk @@ -1,5 +1,4 @@ MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = yes # Audio output on port C6 RGBLIGHT_ENABLE = yes -#CONSOLE_ENABLE = yes -MOUSEKEY_ENABLE = yes + diff --git a/keyboards/reviung39/keymaps/sadekbaroudi/rules.mk b/keyboards/reviung39/keymaps/sadekbaroudi/rules.mk index 31710b1014..1e3cebb145 100755 --- a/keyboards/reviung39/keymaps/sadekbaroudi/rules.mk +++ b/keyboards/reviung39/keymaps/sadekbaroudi/rules.mk @@ -1,2 +1 @@ RGBLIGHT_ENABLE = yes -MOUSEKEY_ENABLE = yes diff --git a/users/sadekbaroudi/config.h b/users/sadekbaroudi/config.h index 07e3773cbf..2e34c28637 100755 --- a/users/sadekbaroudi/config.h +++ b/users/sadekbaroudi/config.h @@ -2,16 +2,12 @@ #ifdef RGBLIGHT_ENABLE # undef RGBLIGHT_ANIMATIONS -//# if defined(__AVR__) && !defined(__AVR_AT90USB1286__) -# define RGBLIGHT_SLEEP -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -# define RGBLIGHT_EFFECT_TWINKLE -//# else -//# define RGBLIGHT_ANIMATIONS -//# endif +# define RGBLIGHT_SLEEP +# define RGBLIGHT_EFFECT_BREATHING +# define RGBLIGHT_EFFECT_RAINBOW_MOOD +# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +# define RGBLIGHT_EFFECT_STATIC_GRADIENT +# define RGBLIGHT_EFFECT_TWINKLE # define RGBLIGHT_HUE_STEP 2 # define RGBLIGHT_SAT_STEP 8 # define RGBLIGHT_VAL_STEP 8 diff --git a/users/sadekbaroudi/process_records.c b/users/sadekbaroudi/process_records.c index 5a8407288a..85c38e498f 100755 --- a/users/sadekbaroudi/process_records.c +++ b/users/sadekbaroudi/process_records.c @@ -78,7 +78,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) if (record->event.pressed) { userspace_config.rgb_layer_change ^= 1; - dprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change); + xprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change); eeconfig_update_user(userspace_config.raw); if (userspace_config.rgb_layer_change) { # if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE) @@ -88,11 +88,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { # if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE) } else { rgblight_disable_noeeprom(); - // TODO: Right now, when disabling rgb_layer_change, it doesn't remember - // the current rgb hsv and mode. It just uses the current color of - // the current layer for this keycode. Tried the code below to force - // it, but it's not working - //rgblight_set_hsv_and_mode(userspace_config.hue, userspace_config.sat, userspace_config.val, userspace_config.mode); # endif } } @@ -102,7 +97,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) if (record->event.pressed) { userspace_config.rgb_base_layer_override ^= 1; - dprintf("rgblight base layer override change [EEPROM]: %u\n", userspace_config.rgb_base_layer_override); + xprintf("rgblight base layer override change [EEPROM]: %u\n", userspace_config.rgb_base_layer_override); eeconfig_update_user(userspace_config.raw); if (userspace_config.rgb_base_layer_override) { # if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE) @@ -138,18 +133,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions if (record->event.pressed) { bool is_eeprom_updated = false; -# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) - // // This disables layer indication, as it's assumed that if you're changing this ... you want that disabled - // if (userspace_config.rgb_layer_change) { - // userspace_config.rgb_layer_change = false; - // dprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change); - // is_eeprom_updated = true; - // } -# endif + # if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) if (userspace_config.rgb_matrix_idle_anim) { userspace_config.rgb_matrix_idle_anim = false; - dprintf("RGB Matrix Idle Animation [EEPROM]: %u\n", userspace_config.rgb_matrix_idle_anim); + xprintf("RGB Matrix Idle Animation [EEPROM]: %u\n", userspace_config.rgb_matrix_idle_anim); is_eeprom_updated = true; } # endif diff --git a/users/sadekbaroudi/rgb_stuff.c b/users/sadekbaroudi/rgb_stuff.c index 9431db2326..d7b1dc8e5f 100755 --- a/users/sadekbaroudi/rgb_stuff.c +++ b/users/sadekbaroudi/rgb_stuff.c @@ -79,6 +79,10 @@ layer_state_t layer_state_set_rgb_light(layer_state_t state) { if (is_caps_lock_on) { rgblight_set_hsv_and_mode(HSV_RED, mode); } else if (userspace_config.rgb_base_layer_override) { + xprintf("layer set: userspace_config.hue [EEPROM]: %u\n", userspace_config.hue); + xprintf("layer set: userspace_config.sat [EEPROM]: %u\n", userspace_config.sat); + xprintf("layer set: userspace_config.val [EEPROM]: %u\n", userspace_config.val); + xprintf("layer set: userspace_config.mode [EEPROM]: %u\n", userspace_config.mode); rgblight_set_hsv_and_mode(userspace_config.hue, userspace_config.sat, userspace_config.val, userspace_config.mode); } else { rgblight_set_hsv_and_mode(HSV_BLUE, mode); diff --git a/users/sadekbaroudi/rules.mk b/users/sadekbaroudi/rules.mk index bcbccbc75f..845e368cf2 100755 --- a/users/sadekbaroudi/rules.mk +++ b/users/sadekbaroudi/rules.mk @@ -1,9 +1,11 @@ SRC += sadekbaroudi.c \ process_records.c +BOOTLOADER = atmel-dfu COMMAND_ENABLE = no # Commands for debug and configuration UNICODE_ENABLE = no # Unicode SWAP_HANDS_ENABLE= no # Allow swapping hands of keyboard +MOUSEKEY_ENABLE = yes SPACE_CADET_ENABLE = no GRAVE_ESC_ENABLE = no diff --git a/users/sadekbaroudi/sadekbaroudi.c b/users/sadekbaroudi/sadekbaroudi.c index a6a3eef74e..9e818a0149 100755 --- a/users/sadekbaroudi/sadekbaroudi.c +++ b/users/sadekbaroudi/sadekbaroudi.c @@ -3,10 +3,21 @@ userspace_config_t userspace_config; bool is_caps_lock_on; + +void handle_caps_lock_change(void) { +#if defined(RGBLIGHT_ENABLE) // We only do this because we want the layer color to change + layer_state_set_user(layer_state); +#endif // RGBLIGHT_ENABLE +} + __attribute__((weak)) void keyboard_pre_init_keymap(void) {} void keyboard_pre_init_user(void) { userspace_config.raw = eeconfig_read_user(); + + // hack for a weird issue where userspace_config.val gets set to 0 on keyboard restart + userspace_config.val = 255; + keyboard_pre_init_keymap(); } // Add reconfigurable functions here, for keymap customization @@ -71,15 +82,18 @@ void matrix_scan_user(void) { startup_user(); } - #if defined(RGBLIGHT_ENABLE) matrix_scan_rgb_light(); +#endif // RGBLIGHT_ENABLE + + // We do this in matrix scan in case there are two keyboards connected and we + // need to make sure this keyboard is aware led_t led_state = host_keyboard_led_state(); if (led_state.caps_lock != is_caps_lock_on) { is_caps_lock_on = led_state.caps_lock; - layer_state_set_user(layer_state); + handle_caps_lock_change(); } -#endif // RGBLIGHT_ENABLE + #if defined(RGB_MATRIX_ENABLE) matrix_scan_rgb_matrix(); #endif @@ -126,7 +140,7 @@ void eeconfig_init_user(void) { userspace_config.rgb_base_layer_override = false; userspace_config.rgb_layer_change = true; userspace_config.mode = RGBLIGHT_MODE_STATIC_LIGHT; - userspace_config.hue = 169; // BLUE + userspace_config.hue = 167; // BLUE userspace_config.sat = 255; userspace_config.val = 255; userspace_config.speed = 1; diff --git a/users/sadekbaroudi/sadekbaroudi.h b/users/sadekbaroudi/sadekbaroudi.h index 850ee3533d..6913785847 100755 --- a/users/sadekbaroudi/sadekbaroudi.h +++ b/users/sadekbaroudi/sadekbaroudi.h @@ -58,11 +58,11 @@ typedef union { bool rgb_layer_change :1; bool rgb_base_layer_override :1; bool rgb_matrix_idle_anim :1; - uint8_t mode; //:default 1; RGBLIGHT_MODE_STATIC_LIGHT; - uint8_t hue; //:0-255; - uint8_t sat; //:0-255; - uint8_t val; //:0-255; - uint8_t speed; //:default 1; + uint8_t mode; + uint8_t hue; + uint8_t sat; + uint8_t val; + uint8_t speed; }; } userspace_config_t; // clang-format on