diff options
author | Nick Brassel <[email protected]> | 2023-11-28 16:39:48 +1100 |
---|---|---|
committer | Nick Brassel <[email protected]> | 2023-11-28 16:40:47 +1100 |
commit | 0115951de12bd4c798a43a380651c34552552e85 (patch) | |
tree | 62999011ae782d93aa6dc9c889615db2a840cafc /users/zer09 | |
parent | 0379d1f59e58cefa18cdb72ba1b77507d1108ae6 (diff) | |
parent | 4d99e0a23cff02f4c6e55e093b5de08a9be0df7c (diff) | |
download | qmk_firmware-0115951de12bd4c798a43a380651c34552552e85.tar.gz qmk_firmware-0115951de12bd4c798a43a380651c34552552e85.zip |
`develop` -> `master`, 2023q4 edition0.23.0
Diffstat (limited to 'users/zer09')
-rw-r--r-- | users/zer09/config.h | 23 | ||||
-rw-r--r-- | users/zer09/lights.c | 189 | ||||
-rw-r--r-- | users/zer09/lights.h | 45 | ||||
-rw-r--r-- | users/zer09/rules.mk | 2 | ||||
-rw-r--r-- | users/zer09/tap_dance.c | 203 | ||||
-rw-r--r-- | users/zer09/tap_dance.h | 55 | ||||
-rw-r--r-- | users/zer09/zer09.c | 89 | ||||
-rw-r--r-- | users/zer09/zer09.h | 25 |
8 files changed, 0 insertions, 631 deletions
diff --git a/users/zer09/config.h b/users/zer09/config.h deleted file mode 100644 index 48dd17dfc3..0000000000 --- a/users/zer09/config.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef USERSPACE_CONFIG_H -#define USERSPACE_CONFIG_H - -#undef PERMISSIVE_HOLD -#define STRICT_LAYER_RELEASE - -#define FORCE_NKRO - -#ifndef TAPPING_TOGGLE -#define TAPPING_TOGGLE 1 -#endif - -#ifdef TAPPING_TERM -#undef TAPPING_TERM -#endif -#define TAPPING_TERM 95 - -// Disable action_get_macro and fn_actions, since we don't use these -// and it saves on space in the firmware. -#define NO_ACTION_MACRO -#define NO_ACTION_FUNCTION - -#endif diff --git a/users/zer09/lights.c b/users/zer09/lights.c deleted file mode 100644 index 448ef494e8..0000000000 --- a/users/zer09/lights.c +++ /dev/null @@ -1,189 +0,0 @@ -#include "lights.h" - -static bool active_key_pos[50] = {}; -static uint8_t led_dim = 0; - -volatile led_key rbw_led_keys[RBW] = { - [RBW_LCTL] = {DEFAULT, 21, true}, [RBW_LCAP] = {DEFAULT, 24, false}, - [RBW_LSPR] = {DEFAULT, 23, true}, [RBW_RCTL] = {DEFAULT, 48, true}, - [RBW_RCAP] = {DEFAULT, 45, false}, [RBW_RALT] = {DEFAULT, 46, true}, - [RBW_SCRL] = {DEFAULT, 42, true}}; - -/* Pressed led color. */ -const uint32_t _PC[3] = {0xFF, 0x00, 0x00}; - -/* Layer color. */ -const uint8_t _LC[5][3] = {[_BL] = {0x00, 0x00, 0x00}, - [_UL] = {0x00, 0x00, 0xFF}, - [_VL] = {0xFF, 0xFF, 0x00}, - [_DL] = {0x00, 0xFF, 0x00}, - [_AL] = {0xFF, 0x00, 0x00}}; - -/* Color table by sine wave */ -const uint8_t _LIGHTS[360] = { - 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 4, 5, 6, 7, 8, - 11, 12, 9, 13, 15, 17, 18, 20, 22, 24, 26, 28, 30, 32, 35, - 37, 39, 42, 44, 47, 49, 52, 55, 58, 60, 63, 66, 69, 72, 75, - 78, 81, 85, 88, 91, 94, 97, 101, 104, 107, 111, 114, 117, 121, 124, - 127, 131, 134, 137, 141, 144, 147, 150, 154, 157, 160, 163, 167, 170, 173, - 176, 179, 182, 185, 188, 191, 194, 197, 200, 202, 205, 208, 210, 213, 215, - 217, 220, 222, 224, 226, 229, 231, 232, 234, 236, 238, 239, 241, 242, 244, - 245, 246, 248, 249, 250, 251, 251, 252, 253, 253, 254, 254, 255, 255, 255, - 255, 255, 255, 255, 254, 254, 253, 253, 252, 251, 251, 250, 249, 248, 246, - 245, 244, 242, 241, 239, 238, 236, 234, 232, 231, 229, 226, 224, 222, 220, - 217, 215, 213, 210, 208, 205, 202, 200, 197, 194, 191, 188, 185, 182, 179, - 176, 173, 170, 167, 163, 160, 157, 154, 150, 147, 144, 141, 137, 134, 131, - 127, 124, 121, 117, 114, 111, 107, 104, 101, 97, 94, 91, 88, 85, 81, - 78, 75, 72, 69, 66, 63, 60, 58, 55, 52, 49, 47, 44, 42, 39, - 37, 35, 32, 30, 28, 26, 24, 22, 20, 18, 17, 15, 13, 12, 11, - 9, 8, 7, 6, 5, 4, 3, 2, 2, 1, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - -void set_key_led(keyrecord_t *record, uint8_t lyr) { - static uint8_t base = 5; - - uint8_t r = record->event.key.row; - uint8_t c = record->event.key.col; - uint8_t pos; - - // This was the result of my soldering. - // Lesson of the day: always check. - if (r < 5) { - pos = r % 2 == 0 ? r * base + c : r * base + (base - (c + 1)); - } else { - pos = r % 2 == 0 ? r * base + (base - (c + 1)) : r * base + c; - } - - if (record->event.pressed) { - active_key_pos[pos] = true; - SET_LED_RGB(_PC[0], _PC[1], _PC[2], led_dim, pos); - } else { - active_key_pos[pos] = false; - SET_LED_RGB(_LC[lyr][0], _LC[lyr][1], _LC[lyr][2], led_dim, pos); - } -} - -/* Fix for unknown reason after testin flash the eeprom handedness, - the leds will ligth up after boot. - This should be call in the set layer led.*/ -bool is_first_run(void) { - static uint8_t run = 0; - - if (run == 0) { - run++; - return true; - } else { - return false; - } -} - -bool set_layer_led(uint8_t lyr) { - static uint8_t p_lyr = 0; // Previous layer. - static uint8_t p_dim = 0; // Previous dim. - - if (p_lyr == lyr && p_dim == led_dim && !is_first_run()) { - return false; - } - - p_lyr = lyr; - p_dim = led_dim; - const uint8_t r = _LC[lyr][0]; - const uint8_t g = _LC[lyr][1]; - const uint8_t b = _LC[lyr][2]; - const uint8_t d = (p_lyr == _VL && p_dim < 1) ? 1 : p_dim; - - for (uint8_t i = 0; i < RGBLED_NUM; i++) { - SET_LED_RGB(r, g, b, d, i); - } - - return true; -} - -bool rainbow_loop(uint8_t lyr) { - static uint16_t last_timer = 0; - static uint16_t i = 0; - static uint8_t r, g, b, pos; - - if (timer_elapsed(last_timer) < 8) { - return false; - } - - if (i >= 360) { - i = 0; - } - - last_timer = timer_read(); - r = _LIGHTS[(i + 120) % 360]; - g = _LIGHTS[i]; - b = _LIGHTS[(i + 240) % 360]; - - i++; - - bool set_rbw = false; - - for (uint8_t j = 0; j < RBW; j++) { - pos = rbw_led_keys[j].pos; - - switch (rbw_led_keys[j].status) { - case ENABLED: - if (!active_key_pos[pos] || rbw_led_keys[j].forced) { - SET_LED_RGB(r, g, b, led_dim, pos); - set_rbw = true; - } - - break; - case DISABLED: - if (!active_key_pos[pos] || rbw_led_keys[j].forced) { - SET_LED_RGB(_LC[lyr][0], _LC[lyr][1], _LC[lyr][2], led_dim, pos); - set_rbw = true; - } - - rbw_led_keys[j].status = DEFAULT; - break; - default: - break; - } - } - - return set_rbw; -} - -bool led_brightness(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case RGUP: - if (record->event.pressed && led_dim > 0) { - led_dim--; - eeprom_write_byte(EECONFIG_LED_DIM_LVL, led_dim); - } - - return true; - break; - case RGDWN: - if (record->event.pressed && led_dim < 8) { - led_dim++; - eeprom_write_byte(EECONFIG_LED_DIM_LVL, led_dim); - } - - return true; - break; - default: - return false; - break; - } -} - -void eeprom_read_led_dim_lvl(void) { - led_dim = eeprom_read_byte(EECONFIG_LED_DIM_LVL); - - if (led_dim > 8 || led_dim < 0) { - led_dim = 0; - eeprom_write_byte(EECONFIG_LED_DIM_LVL, led_dim); - } -} diff --git a/users/zer09/lights.h b/users/zer09/lights.h deleted file mode 100644 index f1bd7245d5..0000000000 --- a/users/zer09/lights.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef LIGHTS_H -#define LIGHTS_H - -#include "eeprom.h" -#include "tap_dance.h" -#include "zer09.h" - -/* Will hold the RGB brightness level */ -#define EECONFIG_LED_DIM_LVL (uint8_t *)15 - -#define SET_LED_RGB(r, g, b, led_dim, pos) \ - setrgb(r >> led_dim, g >> led_dim, b >> led_dim, (LED_TYPE *)&led[pos]) - -typedef enum { - DEFAULT, - ENABLED, - DISABLED, -} led_status; - -typedef struct { - led_status status; - uint8_t pos; - bool forced; -} led_key; - -enum rbw_keys { - RBW_LCTL, - RBW_LCAP, - RBW_LSPR, - RBW_RCTL, - RBW_RCAP, - RBW_RALT, - RBW_SCRL, - RBW -}; - -extern volatile led_key rbw_led_keys[RBW]; - -void set_key_led(keyrecord_t *record, uint8_t lyr); -bool set_layer_led(uint8_t lyr); -bool rainbow_loop(uint8_t lyr); -bool led_brightness(uint16_t keycode, keyrecord_t *record); -void eeprom_read_led_dim_lvl(void); - -#endif diff --git a/users/zer09/rules.mk b/users/zer09/rules.mk deleted file mode 100644 index 43b409eca7..0000000000 --- a/users/zer09/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -SRC += zer09.c tap_dance.c lights.c -EXTRAFLAGS += -flto diff --git a/users/zer09/tap_dance.c b/users/zer09/tap_dance.c deleted file mode 100644 index dc87f31eb5..0000000000 --- a/users/zer09/tap_dance.c +++ /dev/null @@ -1,203 +0,0 @@ -#include "tap_dance.h" -#include "lights.h" - -tap_dance_action_t tap_dance_actions[] = { - [DA_LCTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_lctl_finished, - dance_lctl_reset), - [DA_LSPR] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_lspr_finished, - dance_lspr_reset), - [DA_RCTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_rctl_finished, - dance_rctl_reset), - [DA_RALT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_ralt_finished, - dance_ralt_reset), - [DA_UPLY] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_uply_finished, - dance_uply_reset), - [DA_DWLY] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_dwly_finished, - dance_dwly_reset), -}; - -volatile uint8_t active_layer = _BL; -volatile uint8_t gm_layer_act = false; -static tap upltap_state = {.state = 0}; -static tap dwltap_state = {.state = 0}; -static tap lsprtap_state = {.state = 0}; -static tap ralttap_state = {.state = 0}; - -void layer_switcher_tap(uint8_t new_layer) { - if (gm_layer_act == true) { - layer_off(active_layer); - if (new_layer == _BL) { - layer_on(_GM); - active_layer = _GM; - } else { - layer_on(new_layer); - active_layer = new_layer; - } - } else { - layer_off(active_layer); - layer_on(new_layer); - active_layer = new_layer; - } -} - -int cur_dance(tap_dance_state_t *state) { - switch (state->count) { - case 1: - return state->pressed == 0 ? SINGLE_TAP : SINGLE_HOLD; - case 2: - return state->pressed == 0 ? DOUBLE_TAP : DOUBLE_HOLD; - case 3: - return state->pressed == 0 ? TRIPLE_TAP : TRIPLE_HOLD; - default: - return state->pressed == 0 ? DEFAULT_TAP : DEFAULT_HOLD; - } -} - -void dance_lctl_finished(tap_dance_state_t *state, void *user_data) { - rbw_led_keys[RBW_LCTL].status = ENABLED; - register_code(KC_LCTL); -}; - -void dance_lctl_reset(tap_dance_state_t *state, void *user_data) { - unregister_code(KC_LCTL); - rbw_led_keys[RBW_LCTL].status = DISABLED; -}; - -void dance_lspr_finished(tap_dance_state_t *state, void *user_data) { - lsprtap_state.state = cur_dance(state); - - switch (lsprtap_state.state) { - case DOUBLE_HOLD: - rbw_led_keys[RBW_LSPR].status = ENABLED; - register_code(KC_LALT); - break; - default: - register_code(KC_LGUI); - break; - } -}; - -void dance_lspr_reset(tap_dance_state_t *state, void *user_data) { - switch (lsprtap_state.state) { - case DOUBLE_HOLD: - unregister_code(KC_LALT); - rbw_led_keys[RBW_LSPR].status = DISABLED; - break; - default: - unregister_code(KC_LGUI); - break; - } -}; - -void dance_rctl_finished(tap_dance_state_t *state, void *user_data) { - rbw_led_keys[RBW_RCTL].status = ENABLED; - register_code(KC_RCTL); -}; - -void dance_rctl_reset(tap_dance_state_t *state, void *user_data) { - unregister_code(KC_RCTL); - rbw_led_keys[RBW_RCTL].status = DISABLED; -}; - -void dance_ralt_finished(tap_dance_state_t *state, void *user_data) { - ralttap_state.state = cur_dance(state); - - switch (ralttap_state.state) { - case DOUBLE_HOLD: - rbw_led_keys[RBW_RALT].status = ENABLED; - unregister_code(KC_LGUI); - break; - default: - register_code(KC_RALT); - break; - } -}; - -void dance_ralt_reset(tap_dance_state_t *state, void *user_data) { - switch (ralttap_state.state) { - case DOUBLE_HOLD: - unregister_code(KC_RGUI); - rbw_led_keys[RBW_RALT].status = DISABLED; - break; - default: - unregister_code(KC_RALT); - break; - } -}; - -void dance_uply_finished(tap_dance_state_t *state, void *user_data) { - upltap_state.state = cur_dance(state); - - switch (upltap_state.state) { - case SINGLE_TAP: - if (active_layer == _UL) { - layer_switcher_tap(_BL); - } else { - layer_switcher_tap(_UL); - } - break; - case SINGLE_HOLD: - layer_switcher_tap(_UL); - break; - default: - layer_switcher_tap(_BL); - break; - } -} - -void dance_uply_reset(tap_dance_state_t *state, void *user_data) { - switch (upltap_state.state) { - case SINGLE_TAP: - break; - case SINGLE_HOLD: - default: - layer_switcher_tap(_BL); - break; - } - upltap_state.state = 0; -} - -void dance_dwly_finished(tap_dance_state_t *state, void *user_data) { - dwltap_state.state = cur_dance(state); - - switch (dwltap_state.state) { - case SINGLE_TAP: - if (active_layer == _DL) { - layer_switcher_tap(_BL); - } else { - layer_switcher_tap(_DL); - } - break; - case SINGLE_HOLD: - layer_switcher_tap(_DL); - break; - case DOUBLE_HOLD: - layer_switcher_tap(_AL); - break; - case TRIPLE_TAP: - if (gm_layer_act == true) { - gm_layer_act = false; - layer_switcher_tap(_BL); - } else { - gm_layer_act = true; - layer_switcher_tap(_GM); - } - default: - layer_switcher_tap(_BL); - break; - } -} - -void dance_dwly_reset(tap_dance_state_t *state, void *user_data) { - switch (dwltap_state.state) { - case SINGLE_TAP: - break; - case SINGLE_HOLD: - case DOUBLE_HOLD: - case TRIPLE_TAP: - default: - layer_switcher_tap(_BL); - break; - } - dwltap_state.state = 0; -} diff --git a/users/zer09/tap_dance.h b/users/zer09/tap_dance.h deleted file mode 100644 index 293b5eedc5..0000000000 --- a/users/zer09/tap_dance.h +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef TAP_DANCE_H -#define TAP_DANCE_H - -#include "zer09.h" - -typedef struct { - int state; -} tap; - -enum { - DEFAULT_TAP, - DEFAULT_HOLD, - SINGLE_TAP, - SINGLE_HOLD, - DOUBLE_TAP, - DOUBLE_HOLD, - TRIPLE_TAP, - TRIPLE_HOLD -}; - -enum { - DA_SAFE_START, - DA_LCTL, - DA_LSPR, - DA_RCTL, - DA_RALT, - DA_UPLY, - DA_DWLY, - DA_SAFE_END -}; - -extern volatile uint8_t active_layer; - -void layer_switcher_tap(uint8_t); -int cur_dance(tap_dance_state_t *); - -void dance_lctl_finished(tap_dance_state_t *, void *); -void dance_lctl_reset(tap_dance_state_t *, void *); - -void dance_lspr_finished(tap_dance_state_t *, void *); -void dance_lspr_reset(tap_dance_state_t *, void *); - -void dance_rctl_finished(tap_dance_state_t *, void *); -void dance_rctl_reset(tap_dance_state_t *, void *); - -void dance_ralt_finished(tap_dance_state_t *, void *); -void dance_ralt_reset(tap_dance_state_t *, void *); - -void dance_uply_finished(tap_dance_state_t *, void *); -void dance_uply_reset(tap_dance_state_t *, void *); - -void dance_dwly_finished(tap_dance_state_t *, void *); -void dance_dwly_reset(tap_dance_state_t *, void *); - -#endif diff --git a/users/zer09/zer09.c b/users/zer09/zer09.c deleted file mode 100644 index 5e192f037a..0000000000 --- a/users/zer09/zer09.c +++ /dev/null @@ -1,89 +0,0 @@ -#include "zer09.h" -#include "lights.h" -#include "tap_dance.h" - -__attribute__((weak)) void matrix_init_keymap(void) {} - -__attribute__((weak)) void matrix_scan_keymap(void) {} - -__attribute__((weak)) bool process_record_keymap(uint16_t keycode, - keyrecord_t *record) { - return true; -} - -__attribute__((weak)) void led_set_keymap(uint8_t usb_led) {} - -static uint8_t c_lyr = 0; // current layer. - -bool shifted_layer(void) { - static bool is_shifted = false; - - if (c_lyr == _VL) { - if (!is_shifted) { - register_code(KC_LSFT); - is_shifted = true; - return true; - } - } else { - if (is_shifted) { - unregister_code(KC_LSFT); - is_shifted = false; - return true; - } - } - - return false; -} - -void matrix_init_user(void) { - eeprom_read_led_dim_lvl(); - - matrix_init_keymap(); -} - -void matrix_scan_user(void) { - static uint8_t is_leds_changes = 1; - c_lyr = get_highest_layer(layer_state); - - is_leds_changes = is_leds_changes << set_layer_led(c_lyr); - is_leds_changes = is_leds_changes << shifted_layer(); - is_leds_changes = is_leds_changes << rainbow_loop(c_lyr); - - if (is_leds_changes > 1) { - rgblight_set(); - is_leds_changes = 1; - } - - matrix_scan_keymap(); -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - set_key_led(record, c_lyr); - - if (led_brightness(keycode, record)) { - rgblight_set(); - return false; - } - - rgblight_set(); - return process_record_keymap(keycode, record); -} - -bool led_update_user(led_t led_state) { - if (led_state.caps_lock) { - rbw_led_keys[RBW_LCAP].status = ENABLED; - rbw_led_keys[RBW_RCAP].status = ENABLED; - } else { - rbw_led_keys[RBW_LCAP].status = DISABLED; - rbw_led_keys[RBW_RCAP].status = DISABLED; - } - - if (led_state.scroll_lock) { - rbw_led_keys[RBW_SCRL].status = ENABLED; - } else { - rbw_led_keys[RBW_SCRL].status = DISABLED; - } - - led_set_keymap(led_state.raw); - return false; -} diff --git a/users/zer09/zer09.h b/users/zer09/zer09.h deleted file mode 100644 index 764fed2315..0000000000 --- a/users/zer09/zer09.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef USERSPACE -#define USERSPACE - -#include QMK_KEYBOARD_H - -enum custom_keycodes { - CK_SAFE = SAFE_RANGE, - RGUP, - RGDWN, - YREG, - NEW_SAFE_RANGE -}; - -#define KC_RGUP RGUP -#define KC_RGDWN RGDWN -#define KC_YREG YREG - -#define _BL 0 // The base layer -#define _UL 1 // The up layer -#define _DL 2 // The down layer -#define _VL 3 // The shifted up layer -#define _AL 4 // The assorted layer -#define _GM 5 - -#endif |