diff options
Diffstat (limited to 'keyboards/planck/ez/ez.c')
| -rw-r--r-- | keyboards/planck/ez/ez.c | 94 |
1 files changed, 86 insertions, 8 deletions
diff --git a/keyboards/planck/ez/ez.c b/keyboards/planck/ez/ez.c index 8734042a4..8369ce50c 100644 --- a/keyboards/planck/ez/ez.c +++ b/keyboards/planck/ez/ez.c | |||
| @@ -16,8 +16,8 @@ | |||
| 16 | #include "ez.h" | 16 | #include "ez.h" |
| 17 | #include "ch.h" | 17 | #include "ch.h" |
| 18 | #include "hal.h" | 18 | #include "hal.h" |
| 19 | keyboard_config_t keyboard_config; | ||
| 20 | 19 | ||
| 20 | keyboard_config_t keyboard_config; | ||
| 21 | 21 | ||
| 22 | #ifdef RGB_MATRIX_ENABLE | 22 | #ifdef RGB_MATRIX_ENABLE |
| 23 | const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { | 23 | const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { |
| @@ -106,6 +106,7 @@ led_config_t g_led_config = { { | |||
| 106 | } }; | 106 | } }; |
| 107 | 107 | ||
| 108 | void suspend_power_down_kb(void) { | 108 | void suspend_power_down_kb(void) { |
| 109 | rgb_matrix_set_color_all(0, 0, 0); | ||
| 109 | rgb_matrix_set_suspend_state(true); | 110 | rgb_matrix_set_suspend_state(true); |
| 110 | suspend_power_down_user(); | 111 | suspend_power_down_user(); |
| 111 | } | 112 | } |
| @@ -207,33 +208,65 @@ void led_initialize_hardware(void) { | |||
| 207 | } | 208 | } |
| 208 | 209 | ||
| 209 | void keyboard_pre_init_kb(void) { | 210 | void keyboard_pre_init_kb(void) { |
| 211 | if (!eeconfig_is_enabled()) { | ||
| 212 | eeconfig_init(); | ||
| 213 | } | ||
| 210 | // read kb settings from eeprom | 214 | // read kb settings from eeprom |
| 211 | keyboard_config.raw = eeconfig_read_kb(); | 215 | keyboard_config.raw = eeconfig_read_kb(); |
| 212 | 216 | #if defined(RGB_MATRIX_ENABLE) && defined(ORYX_CONFIGURATOR) | |
| 213 | // initialize settings for front LEDs | 217 | if (keyboard_config.rgb_matrix_enable) { |
| 218 | rgb_matrix_set_flags(LED_FLAG_ALL); | ||
| 219 | } else { | ||
| 220 | rgb_matrix_set_flags(LED_FLAG_NONE); | ||
| 221 | } | ||
| 222 | #endif | ||
| 214 | led_initialize_hardware(); | 223 | led_initialize_hardware(); |
| 224 | keyboard_pre_init_user(); | ||
| 225 | } | ||
| 226 | |||
| 227 | #if defined(RGB_MATRIX_ENABLE) && defined(ORYX_CONFIGURATOR) | ||
| 228 | void keyboard_post_init_kb(void) { | ||
| 229 | rgb_matrix_enable_noeeprom(); | ||
| 230 | keyboard_post_init_user(); | ||
| 215 | } | 231 | } |
| 232 | #endif | ||
| 216 | 233 | ||
| 217 | void eeconfig_init_kb(void) { // EEPROM is getting reset! | 234 | void eeconfig_init_kb(void) { // EEPROM is getting reset! |
| 218 | keyboard_config.raw = 0; | 235 | keyboard_config.raw = 0; |
| 236 | keyboard_config.rgb_matrix_enable = true; | ||
| 219 | keyboard_config.led_level = 4; | 237 | keyboard_config.led_level = 4; |
| 220 | eeconfig_update_kb(keyboard_config.raw); | 238 | eeconfig_update_kb(keyboard_config.raw); |
| 221 | eeconfig_init_user(); | 239 | eeconfig_init_user(); |
| 222 | } | 240 | } |
| 223 | 241 | ||
| 242 | |||
| 243 | #ifdef ORYX_CONFIGURATOR | ||
| 244 | |||
| 245 | #ifndef PLANCK_EZ_USER_LEDS | ||
| 246 | |||
| 247 | #ifndef PLANCK_EZ_LED_LOWER | ||
| 248 | # define PLANCK_EZ_LED_LOWER 3 | ||
| 249 | #endif | ||
| 250 | #ifndef PLANCK_EZ_LED_RAISE | ||
| 251 | # define PLANCK_EZ_LED_RAISE 4 | ||
| 252 | #endif | ||
| 253 | #ifndef PLANCK_EZ_LED_ADJUST | ||
| 254 | # define PLANCK_EZ_LED_ADJUST 6 | ||
| 255 | #endif | ||
| 256 | |||
| 224 | layer_state_t layer_state_set_kb(layer_state_t state) { | 257 | layer_state_t layer_state_set_kb(layer_state_t state) { |
| 225 | planck_ez_left_led_off(); | 258 | planck_ez_left_led_off(); |
| 226 | planck_ez_right_led_off(); | 259 | planck_ez_right_led_off(); |
| 227 | state = layer_state_set_user(state); | 260 | state = layer_state_set_user(state); |
| 228 | uint8_t layer = biton32(state); | 261 | uint8_t layer = biton32(state); |
| 229 | switch (layer) { | 262 | switch (layer) { |
| 230 | case 3: | 263 | case PLANCK_EZ_LED_LOWER: |
| 231 | planck_ez_left_led_on(); | 264 | planck_ez_left_led_on(); |
| 232 | break; | 265 | break; |
| 233 | case 4: | 266 | case PLANCK_EZ_LED_RAISE: |
| 234 | planck_ez_right_led_on(); | 267 | planck_ez_right_led_on(); |
| 235 | break; | 268 | break; |
| 236 | case 6: | 269 | case PLANCK_EZ_LED_ADJUST: |
| 237 | planck_ez_right_led_on(); | 270 | planck_ez_right_led_on(); |
| 238 | planck_ez_left_led_on(); | 271 | planck_ez_left_led_on(); |
| 239 | break; | 272 | break; |
| @@ -242,7 +275,7 @@ layer_state_t layer_state_set_kb(layer_state_t state) { | |||
| 242 | } | 275 | } |
| 243 | return state; | 276 | return state; |
| 244 | } | 277 | } |
| 245 | 278 | #endif | |
| 246 | 279 | ||
| 247 | bool process_record_kb(uint16_t keycode, keyrecord_t *record) { | 280 | bool process_record_kb(uint16_t keycode, keyrecord_t *record) { |
| 248 | switch (keycode) { | 281 | switch (keycode) { |
| @@ -258,6 +291,51 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { | |||
| 258 | layer_state_set_kb(layer_state); | 291 | layer_state_set_kb(layer_state); |
| 259 | } | 292 | } |
| 260 | break; | 293 | break; |
| 294 | #ifdef RGB_MATRIX_ENABLE | ||
| 295 | case TOGGLE_LAYER_COLOR: | ||
| 296 | if (record->event.pressed) { | ||
| 297 | keyboard_config.disable_layer_led ^= 1; | ||
| 298 | if (keyboard_config.disable_layer_led) | ||
| 299 | rgb_matrix_set_color_all(0, 0, 0); | ||
| 300 | eeconfig_update_kb(keyboard_config.raw); | ||
| 301 | } | ||
| 302 | break; | ||
| 303 | case RGB_TOG: | ||
| 304 | if (record->event.pressed) { | ||
| 305 | switch (rgb_matrix_get_flags()) { | ||
| 306 | case LED_FLAG_ALL: { | ||
| 307 | rgb_matrix_set_flags(LED_FLAG_NONE); | ||
| 308 | keyboard_config.rgb_matrix_enable = false; | ||
| 309 | rgb_matrix_set_color_all(0, 0, 0); | ||
| 310 | } | ||
| 311 | break; | ||
| 312 | default: { | ||
| 313 | rgb_matrix_set_flags(LED_FLAG_ALL); | ||
| 314 | keyboard_config.rgb_matrix_enable = true; | ||
| 315 | } | ||
| 316 | break; | ||
| 317 | } | ||
| 318 | eeconfig_update_kb(keyboard_config.raw); | ||
| 319 | } | ||
| 320 | return false; | ||
| 321 | #endif | ||
| 261 | } | 322 | } |
| 262 | return true; | 323 | return process_record_user(keycode, record); |
| 263 | } | 324 | } |
| 325 | #endif | ||
| 326 | |||
| 327 | #ifdef AUDIO_ENABLE | ||
| 328 | bool music_mask_kb(uint16_t keycode) { | ||
| 329 | switch (keycode) { | ||
| 330 | case QK_LAYER_TAP ... QK_ONE_SHOT_LAYER_MAX: | ||
| 331 | case QK_LAYER_TAP_TOGGLE ... QK_LAYER_MOD_MAX: | ||
| 332 | case QK_MOD_TAP ... QK_MOD_TAP_MAX: | ||
| 333 | case AU_ON ... MUV_DE: | ||
| 334 | case RESET: | ||
| 335 | case EEP_RST: | ||
| 336 | return false; | ||
| 337 | default: | ||
| 338 | return music_mask_user(keycode); | ||
| 339 | } | ||
| 340 | } | ||
| 341 | #endif | ||
