From 53b043d4ef9da3c60236bc8ac012f59bea7bff20 Mon Sep 17 00:00:00 2001 From: "Colin T.A. Gray" Date: Mon, 4 Dec 2017 11:36:24 -0700 Subject: [PATCH] adds 'RGB_RMOD' to go through RGB modes in reverse --- docs/feature_rgblight.md | 6 ++++-- quantum/quantum.c | 17 +++++++++++------ quantum/quantum_keycodes.h | 8 ++++++-- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/docs/feature_rgblight.md b/docs/feature_rgblight.md index 0a5e2a8b..9d8f537d 100644 --- a/docs/feature_rgblight.md +++ b/docs/feature_rgblight.md @@ -87,8 +87,8 @@ These control the RGB Lighting functionality. | Long Name | Short Name | Description | |-----------|------------|-------------| ||`RGB_TOG`|toggle on/off| -||`RGB_MOD`|cycle through modes| -||`RGB_SMOD`|cycle through modes, use reverse direction when shift is hold| +|`RGB_MODE_FORWARD`|`RGB_MOD`|cycle through modes, use reverse direction when shift is held| +|`RGB_MODE_REVERSE`|`RGB_RMOD`|cycle through modes in reverse (also suppost shift to go forward)| ||`RGB_HUI`|hue increase| ||`RGB_HUD`|hue decrease| ||`RGB_SAI`|saturation increase| @@ -104,6 +104,8 @@ These control the RGB Lighting functionality. |`RGB_MODE_XMAS`|`RGB_M_X`| Switch to the Christmas animation | |`RGB_MODE_GRADIENT`|`RGB_M_G`| Switch to the static gradient mode | +note: for backwards compatibility, `RGB_SMOD` is an alias for `RGB_MOD`. + ## Hardware Modification ![Planck with RGB Underglow](https://raw.githubusercontent.com/qmk/qmk_firmware/master/keyboards/planck/keymaps/yang/planck-with-rgb-underglow.jpg) diff --git a/quantum/quantum.c b/quantum/quantum.c index d08f1587..9c498bf7 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -286,20 +286,25 @@ bool process_record_quantum(keyrecord_t *record) { rgblight_toggle(); } return false; - case RGB_MOD: + case RGB_MODE_FORWARD: if (record->event.pressed) { - rgblight_step(); + uint8_t shifted = get_mods() & (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)); + if(shifted) { + rgblight_step_reverse(); + } + else { + rgblight_step(); + } } return false; - case RGB_SMOD: - // same as RBG_MOD, but if shift is pressed, it will use the reverese direction instead. + case RGB_MODE_REVERSE: if (record->event.pressed) { uint8_t shifted = get_mods() & (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)); if(shifted) { - rgblight_step_reverse(); + rgblight_step(); } else { - rgblight_step(); + rgblight_step_reverse(); } } return false; diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h index c3c5f165..048da326 100644 --- a/quantum/quantum_keycodes.h +++ b/quantum/quantum_keycodes.h @@ -399,8 +399,8 @@ enum quantum_keycodes { // RGB functionality RGB_TOG, - RGB_MOD, - RGB_SMOD, + RGB_MODE_FORWARD, + RGB_MODE_REVERSE, RGB_HUI, RGB_HUD, RGB_SAI, @@ -553,6 +553,10 @@ enum quantum_keycodes { #define KC_GESC GRAVE_ESC +#define RGB_MOD RGB_MODE_FORWARD +#define RGB_SMOD RGB_MODE_FORWARD +#define RGB_RMOD RGB_MODE_REVERSE + #define RGB_M_P RGB_MODE_PLAIN #define RGB_M_B RGB_MODE_BREATHE #define RGB_M_R RGB_MODE_RAINBOW