| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- /**
- * noah.c
- */
- #include "quantum.h"
- void bootloader_jump(void) {
- // This board doesn't use the standard DFU bootloader, and no information is available regarding how to enter bootloader mode. All we can do here is reset.
- NVIC_SystemReset();
- }
- #ifdef RGBLIGHT_ENABLE
- #include <string.h>
- #include "rgblight.h"
- #include "ws2812.h"
- extern rgblight_config_t rgblight_config;
- // led 0 for caps lock, led 1 for scroll lock, led 3 for num lock
- // led 4 for layer 1, led 5 for layer 2, led 6 for layer 3, led 7 for layer 4
- #if RGBLIGHT_LED_COUNT < 7
- #error "MUST set the RGBLIGHT_LED_COUNT bigger than 7"
- #endif
- rgb_led_t noah_leds[RGBLIGHT_LED_COUNT];
- static bool noah_led_mode = false;
- void setleds_custom(rgb_led_t *ledarray, uint16_t num_leds) {
- memset(&noah_leds[0], 0, sizeof(noah_leds));
- if (!rgblight_config.enable) {
- for (uint8_t i = 0; i < RGBLIGHT_LED_COUNT; i++) {
- ledarray[i].r = 0;
- ledarray[i].g = 0;
- ledarray[i].b = 0;
- }
- }
- if (noah_led_mode) {
- led_t led_state = host_keyboard_led_state();
- if (led_state.caps_lock) {
- noah_leds[0] = ledarray[0];
- }
- if (led_state.scroll_lock) {
- noah_leds[1] = ledarray[1];
- }
- if (led_state.num_lock) {
- noah_leds[2] = ledarray[2];
- }
- for (int32_t i = 0; i < 4; i++) {
- if(layer_state_is(i+1)) {
- noah_leds[i + 3] = ledarray[i + 3];
- }
- }
- } else {
- memcpy(&noah_leds[0], &ledarray[0], sizeof(noah_leds));
- }
- ws2812_setleds(noah_leds, RGBLIGHT_LED_COUNT);
- }
- const rgblight_driver_t rgblight_driver = {
- .init = ws2812_init,
- .setleds = setleds_custom,
- };
- #endif
- #ifdef RGB_MATRIX_ENABLE
- const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
- /* Refer to IS31 manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, C1_10, C2_10, C4_11}, // RGB101
- {0, C1_11, C2_11, C3_11}, // RGB102
- {0, C1_12, C2_12, C3_12}, // RGB103
- {0, C1_13, C2_13, C3_13}, // RGB104
- {0, C1_14, C2_14, C3_14}, // RGB105
- {0, C1_15, C2_15, C3_15}, // RGB106
- {0, C1_16, C2_16, C3_16}, // RGB107
- {1, C1_1, C3_2, C4_2}, // RGB108
- {1, C1_2, C2_2, C4_3}, // RGB109
- {1, C1_3, C2_3, C3_3}, // RGB1010
- {1, C1_4, C2_4, C3_4}, // RGB1011
- {1, C1_5, C2_5, C3_5}, // RGB1012
- {1, C1_6, C2_6, C3_6}, // RGB1013
- {1, C1_7, C2_7, C3_7}, // RGB1015
- {1, C1_8, C2_8, C3_8}, // RGB1016
- {0, C1_9, C3_10, C4_10}, // RGB201
- {0, C5_9, C4_9, C6_9}, // RGB202
- {0, C9_9, C8_9, C7_9}, // RGB203
- {0, C9_10, C8_10, C7_10}, // RGB204
- {0, C9_11, C8_11, C7_11}, // RGB205
- {0, C9_12, C8_12, C7_12}, // RGB206
- {0, C9_13, C8_13, C7_13}, // RGB207
- {1, C5_1, C4_1, C6_1}, // RGB208
- {1, C9_1, C8_1, C7_1}, // RGB209
- {1, C9_2, C8_2, C7_2}, // RGB2010
- {1, C9_3, C8_3, C7_3}, // RGB2011
- {1, C9_4, C8_4, C7_4}, // RGB2012
- {1, C9_5, C8_5, C7_5}, // RGB2013
- {1, C9_6, C8_6, C7_6}, // RGB2014
- {1, C5_8, C4_8, C6_8}, // RGB2015
- {0, C9_1, C8_1, C7_1}, // RGB301
- {0, C1_1, C3_2, C4_2}, // RGB302
- {0, C5_1, C4_1, C6_1}, // RGB303
- {0, C5_16, C4_16, C6_16}, // RGB304
- {0, C1_2, C2_2, C4_3}, // RGB305
- {0, C9_14, C8_14, C7_14}, // RGB306
- {0, C9_15, C8_15, C6_14}, // RGB307
- {0, C9_16, C7_15, C6_15}, // RGB308
- {1, C1_10, C2_10, C4_11}, // RGB309
- {1, C1_11, C2_11, C3_11}, // RGB3010
- {1, C1_12, C2_12, C3_12}, // RGB3011
- {1, C1_13, C2_13, C3_13}, // RGB3012
- {1, C1_14, C2_14, C3_14}, // RGB3014
- {1, C9_7, C8_7, C6_6}, // RGB3013-2
- {1, C1_15, C2_15, C3_15}, // RGB3013
- {1, C9_8, C7_7, C6_7}, // RGB3015
- {0, C9_3, C8_3, C7_3}, // RGB401-2
- {0, C9_2, C8_2, C7_2}, // RGB401
- {0, C9_4, C8_4, C7_4}, // RGB4014
- {0, C9_5, C8_5, C7_5}, // RGB402
- {0, C9_6, C8_6, C7_6}, // RGB403
- {0, C1_3, C2_3, C3_3}, // RGB404
- {0, C1_4, C2_4, C3_4}, // RGB405
- {0, C1_6, C2_6, C3_6}, // RGB406
- {0, C1_5, C2_5, C3_5}, // RGB407
- {1, C1_9, C3_10, C4_10}, // RGB408
- {1, C5_9, C4_9, C6_9}, // RGB409
- {1, C9_9, C8_9, C7_9}, // RGB4010
- {1, C9_10, C8_10, C7_10}, // RGB4011
- {1, C9_11, C8_11, C7_11}, // RGB4012
- {1, C5_16, C4_16, C6_16}, // RGB4013
- {1, C1_16, C2_16, C3_16}, // RGB4015
- {0, C9_7, C8_7, C6_6}, // RGB501
- {0, C9_8, C7_7, C6_7}, // RGB502
- {0, C5_8, C4_8, C6_8}, // RGB503
- {0, C1_8, C2_8, C3_8}, // RGB506
- {0, C1_7, C2_7, C3_7}, // RGB506-2
- {1, C9_12, C8_12, C7_12}, // RGB507
- {1, C9_13, C8_13, C7_13}, // RGB508
- {1, C9_14, C8_14, C7_14}, // RGB5010
- {1, C9_15, C8_15, C6_14}, // RGB5011
- {1, C9_16, C7_15, C6_15}, // RGB5012
- };
- #endif
- bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- switch(keycode) {
- #ifdef RGBLIGHT_ENABLE
- case KC_F24: // switch the led mode on or off
- noah_led_mode = !noah_led_mode;
- return false;
- #ifdef RGB_MATRIX_ENABLE
- case KC_F13: // toggle rgb matrix
- rgb_matrix_toggle();
- return false;
- case KC_F14:
- rgb_matrix_step();
- return false;
- #endif
- #endif
- default:
- break;
- }
- }
- return process_record_user(keycode, record);
- }
|