aboutsummaryrefslogtreecommitdiff
path: root/keyboards/planck/ez/ez.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/planck/ez/ez.c')
-rw-r--r--keyboards/planck/ez/ez.c94
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
20keyboard_config_t keyboard_config;
21 21
22#ifdef RGB_MATRIX_ENABLE 22#ifdef RGB_MATRIX_ENABLE
23const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { 23const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
@@ -106,6 +106,7 @@ led_config_t g_led_config = { {
106} }; 106} };
107 107
108void suspend_power_down_kb(void) { 108void 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
209void keyboard_pre_init_kb(void) { 210void 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)
228void keyboard_post_init_kb(void) {
229 rgb_matrix_enable_noeeprom();
230 keyboard_post_init_user();
215} 231}
232#endif
216 233
217void eeconfig_init_kb(void) { // EEPROM is getting reset! 234void 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
224layer_state_t layer_state_set_kb(layer_state_t state) { 257layer_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
247bool process_record_kb(uint16_t keycode, keyrecord_t *record) { 280bool 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
328bool 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