diff options
| author | Priyadi Iman Nurcahyo <priyadi@priyadi.net> | 2017-02-10 17:45:12 +0700 |
|---|---|---|
| committer | Priyadi Iman Nurcahyo <priyadi@priyadi.net> | 2017-02-10 17:45:12 +0700 |
| commit | 07879bf66b29535214a147b1797f96767b1faa58 (patch) | |
| tree | ab30ae27c1590661e70bd7d168c7d1dfb1edd325 | |
| parent | a5b8db52a046e803c21146402e1d009f31b91508 (diff) | |
| download | qmk_firmware-07879bf66b29535214a147b1797f96767b1faa58.tar.gz qmk_firmware-07879bf66b29535214a147b1797f96767b1faa58.zip | |
Add function to cycle backlight modes
| -rw-r--r-- | keyboards/handwired/promethium/keymaps/priyadi/keymap.c | 152 |
1 files changed, 74 insertions, 78 deletions
diff --git a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c index eee859e31..65fa14dd3 100644 --- a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c +++ b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c | |||
| @@ -20,6 +20,13 @@ | |||
| 20 | #define KC_WWWB KC_WWW_BACK | 20 | #define KC_WWWB KC_WWW_BACK |
| 21 | #define KC_WWWF KC_WWW_FORWARD | 21 | #define KC_WWWF KC_WWW_FORWARD |
| 22 | 22 | ||
| 23 | enum glow_modes { | ||
| 24 | GLOW_NONE, | ||
| 25 | GLOW_MIN, | ||
| 26 | GLOW_FULL | ||
| 27 | }; | ||
| 28 | uint8_t glow_mode = GLOW_MIN; | ||
| 29 | |||
| 23 | extern keymap_config_t keymap_config; | 30 | extern keymap_config_t keymap_config; |
| 24 | 31 | ||
| 25 | enum layers { | 32 | enum layers { |
| @@ -61,6 +68,10 @@ enum planck_keycodes { | |||
| 61 | LINUX, | 68 | LINUX, |
| 62 | WIN, | 69 | WIN, |
| 63 | OSX, | 70 | OSX, |
| 71 | |||
| 72 | // others | ||
| 73 | GLOW, | ||
| 74 | AUDIO | ||
| 64 | }; | 75 | }; |
| 65 | 76 | ||
| 66 | // unicode map | 77 | // unicode map |
| @@ -317,6 +328,17 @@ const uint8_t PROGMEM LED_ALNUM[] = { | |||
| 317 | LED_RSPC | 328 | LED_RSPC |
| 318 | }; | 329 | }; |
| 319 | 330 | ||
| 331 | const uint8_t PROGMEM LED_HOMING[] = { | ||
| 332 | LED_A, | ||
| 333 | LED_S, | ||
| 334 | LED_D, | ||
| 335 | LED_F, | ||
| 336 | LED_J, | ||
| 337 | LED_K, | ||
| 338 | LED_L, | ||
| 339 | LED_SCLN | ||
| 340 | }; | ||
| 341 | |||
| 320 | const uint8_t PROGMEM LED_MODS[] = { | 342 | const uint8_t PROGMEM LED_MODS[] = { |
| 321 | LED_TAB, | 343 | LED_TAB, |
| 322 | LED_ESC, | 344 | LED_ESC, |
| @@ -354,20 +376,50 @@ const uint8_t PROGMEM LED_TRACKPOINT[] = { | |||
| 354 | LED_TRACKPOINT3, | 376 | LED_TRACKPOINT3, |
| 355 | }; | 377 | }; |
| 356 | 378 | ||
| 357 | void led_reset(void) { | 379 | void led_turnoff_keys(void) { |
| 358 | for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) { | 380 | for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) { |
| 359 | rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), 0, 0, 0); | 381 | rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), 0, 0, 0); |
| 360 | } | 382 | } |
| 361 | |||
| 362 | for(uint8_t i = 0; i < COUNT(LED_MODS); i++) { | 383 | for(uint8_t i = 0; i < COUNT(LED_MODS); i++) { |
| 363 | rgbsps_set(pgm_read_byte(&LED_MODS[i]), 0, 0, 0); | 384 | rgbsps_set(pgm_read_byte(&LED_MODS[i]), 0, 0, 0); |
| 364 | } | 385 | } |
| 365 | |||
| 366 | for(uint8_t i = 0; i < COUNT(LED_FN); i++) { | 386 | for(uint8_t i = 0; i < COUNT(LED_FN); i++) { |
| 367 | rgbsps_set(pgm_read_byte(&LED_FN[i]), 0, 0, 0); | 387 | rgbsps_set(pgm_read_byte(&LED_FN[i]), 0, 0, 0); |
| 368 | } | 388 | } |
| 369 | } | 389 | } |
| 370 | 390 | ||
| 391 | void led_reset(void) { | ||
| 392 | switch (glow_mode) { | ||
| 393 | case GLOW_NONE: | ||
| 394 | led_turnoff_keys(); | ||
| 395 | break; | ||
| 396 | case GLOW_MIN: | ||
| 397 | led_turnoff_keys(); | ||
| 398 | for(uint8_t i = 0; i < COUNT(LED_HOMING); i++) { | ||
| 399 | rgbsps_set(pgm_read_byte(&LED_HOMING[i]), 8, 8, 8); | ||
| 400 | } | ||
| 401 | rgbsps_set(LED_F, 15, 0, 0); | ||
| 402 | rgbsps_set(LED_J, 15, 0, 0); | ||
| 403 | break; | ||
| 404 | case GLOW_FULL: | ||
| 405 | for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) { | ||
| 406 | rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), 8, 8, 8); | ||
| 407 | } | ||
| 408 | for(uint8_t i = 0; i < COUNT(LED_MODS); i++) { | ||
| 409 | rgbsps_set(pgm_read_byte(&LED_MODS[i]), 0, 15, 0); | ||
| 410 | } | ||
| 411 | for(uint8_t i = 0; i < COUNT(LED_FN); i++) { | ||
| 412 | rgbsps_set(pgm_read_byte(&LED_FN[i]), 0, 0, 15); | ||
| 413 | } | ||
| 414 | for(uint8_t i = 0; i < COUNT(LED_HOMING); i++) { | ||
| 415 | rgbsps_set(pgm_read_byte(&LED_HOMING[i]), 15, 0, 0); | ||
| 416 | } | ||
| 417 | rgbsps_set(LED_F, 15, 15, 0); | ||
| 418 | rgbsps_set(LED_J, 15, 15, 0); | ||
| 419 | break; | ||
| 420 | } | ||
| 421 | } | ||
| 422 | |||
| 371 | void led_layer_normal(void) { | 423 | void led_layer_normal(void) { |
| 372 | rgbsps_set(LED_IND_FUNC, 0, 0, 0); | 424 | rgbsps_set(LED_IND_FUNC, 0, 0, 0); |
| 373 | rgbsps_set(LED_IND_NUM, 0, 0, 0); | 425 | rgbsps_set(LED_IND_NUM, 0, 0, 0); |
| @@ -385,35 +437,6 @@ void led_layer_func(void) { | |||
| 385 | 437 | ||
| 386 | led_reset(); | 438 | led_reset(); |
| 387 | 439 | ||
| 388 | for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) { | ||
| 389 | rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), 0, 0, 0); | ||
| 390 | } | ||
| 391 | |||
| 392 | // rgbsps_set(LED_I, 15, 0, 15); | ||
| 393 | // rgbsps_set(LED_J, 15, 0, 15); | ||
| 394 | // rgbsps_set(LED_K, 15, 0, 15); | ||
| 395 | // rgbsps_set(LED_L, 15, 0, 15); | ||
| 396 | |||
| 397 | // rgbsps_set(LED_U, 15, 0, 0); | ||
| 398 | // rgbsps_set(LED_O, 15, 0, 0); | ||
| 399 | // rgbsps_set(LED_COMM, 15, 0, 0); | ||
| 400 | // rgbsps_set(LED_DOT, 15, 0, 0); | ||
| 401 | // rgbsps_set(LED_SCLN, 15, 0, 0); | ||
| 402 | // rgbsps_set(LED_P, 15, 0, 0); | ||
| 403 | |||
| 404 | // rgbsps_set(LED_Q, 0, 15, 0); | ||
| 405 | // rgbsps_set(LED_W, 0, 15, 0); | ||
| 406 | // rgbsps_set(LED_E, 0, 15, 0); | ||
| 407 | // rgbsps_set(LED_R, 0, 15, 0); | ||
| 408 | // rgbsps_set(LED_A, 0, 15, 0); | ||
| 409 | // rgbsps_set(LED_S, 0, 15, 0); | ||
| 410 | // rgbsps_set(LED_D, 0, 15, 0); | ||
| 411 | // rgbsps_set(LED_F, 0, 15, 0); | ||
| 412 | // rgbsps_set(LED_Z, 0, 15, 0); | ||
| 413 | // rgbsps_set(LED_X, 0, 15, 0); | ||
| 414 | // rgbsps_set(LED_C, 0, 15, 0); | ||
| 415 | // rgbsps_set(LED_V, 0, 15, 0); | ||
| 416 | |||
| 417 | rgbsps_send(); | 440 | rgbsps_send(); |
| 418 | } | 441 | } |
| 419 | 442 | ||
| @@ -434,55 +457,10 @@ void led_layer_num(void) { | |||
| 434 | 457 | ||
| 435 | led_reset(); | 458 | led_reset(); |
| 436 | 459 | ||
| 437 | // for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) { | ||
| 438 | // rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), 0, 0, 0); | ||
| 439 | // } | ||
| 440 | |||
| 441 | // rgbsps_set(LED_U, 0, 5, 15); | ||
| 442 | // rgbsps_set(LED_I, 0, 5, 15); | ||
| 443 | // rgbsps_set(LED_O, 0, 5, 15); | ||
| 444 | // rgbsps_set(LED_J, 0, 5, 15); | ||
| 445 | // rgbsps_set(LED_K, 0, 5, 15); | ||
| 446 | // rgbsps_set(LED_L, 0, 5, 15); | ||
| 447 | // rgbsps_set(LED_M, 0, 5, 15); | ||
| 448 | // rgbsps_set(LED_COMM, 0, 5, 15); | ||
| 449 | // rgbsps_set(LED_DOT, 0, 5, 15); | ||
| 450 | // rgbsps_set(LED_FUNC, 0, 5, 15); | ||
| 451 | |||
| 452 | // rgbsps_set(LED_EMOJI, 0, 10, 15); | ||
| 453 | // rgbsps_set(LED_RALT, 0, 10, 15); | ||
| 454 | |||
| 455 | // rgbsps_set(LED_Q, 0, 10, 15); | ||
| 456 | // rgbsps_set(LED_W, 0, 10, 15); | ||
| 457 | // rgbsps_set(LED_E, 0, 10, 15); | ||
| 458 | // rgbsps_set(LED_R, 0, 10, 15); | ||
| 459 | // rgbsps_set(LED_T, 0, 10, 15); | ||
| 460 | // rgbsps_set(LED_Y, 0, 10, 15); | ||
| 461 | // rgbsps_set(LED_P, 0, 10, 15); | ||
| 462 | |||
| 463 | // rgbsps_set(LED_A, 0, 15, 15); | ||
| 464 | // rgbsps_set(LED_S, 0, 15, 15); | ||
| 465 | // rgbsps_set(LED_D, 0, 15, 15); | ||
| 466 | // rgbsps_set(LED_F, 0, 15, 15); | ||
| 467 | // rgbsps_set(LED_Z, 0, 15, 15); | ||
| 468 | // rgbsps_set(LED_X, 0, 15, 15); | ||
| 469 | // rgbsps_set(LED_C, 0, 15, 15); | ||
| 470 | // rgbsps_set(LED_V, 0, 15, 15); | ||
| 471 | |||
| 472 | rgbsps_send(); | 460 | rgbsps_send(); |
| 473 | } | 461 | } |
| 474 | 462 | ||
| 475 | void led_layer_emoji(void) { | 463 | void led_layer_emoji(void) { |
| 476 | // for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) { | ||
| 477 | // rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), 15, 15, 0); | ||
| 478 | // } | ||
| 479 | // for(uint8_t i = 0; i < COUNT(LED_MODS); i++) { | ||
| 480 | // rgbsps_set(pgm_read_byte(&LED_MODS[i]), 15, 15, 0); | ||
| 481 | // } | ||
| 482 | // for(uint8_t i = 0; i < COUNT(LED_FN); i++) { | ||
| 483 | // rgbsps_set(pgm_read_byte(&LED_FN[i]), 15, 15, 0); | ||
| 484 | // } | ||
| 485 | |||
| 486 | rgbsps_set(LED_IND_FUNC, 0, 0, 0); | 464 | rgbsps_set(LED_IND_FUNC, 0, 0, 0); |
| 487 | rgbsps_set(LED_IND_NUM, 0, 0, 0); | 465 | rgbsps_set(LED_IND_NUM, 0, 0, 0); |
| 488 | rgbsps_set(LED_IND_EMOJI, 15, 15, 0); | 466 | rgbsps_set(LED_IND_EMOJI, 15, 15, 0); |
| @@ -769,7 +747,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 769 | */ | 747 | */ |
| 770 | [_SYS] = KEYMAP( | 748 | [_SYS] = KEYMAP( |
| 771 | XXXXXXX, QWERTY, WIN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, OUT_USB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | 749 | XXXXXXX, QWERTY, WIN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, OUT_USB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
| 772 | XXXXXXX, XXXXXXX, XXXXXXX, DVORAK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, WORKMAN, LINUX, XXXXXXX, XXXXXXX, | 750 | XXXXXXX, AUDIO, XXXXXXX, DVORAK, XXXXXXX, GLOW, XXXXXXX, XXXXXXX, WORKMAN, LINUX, XXXXXXX, XXXXXXX, |
| 773 | XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, XXXXXXX, OUT_BLE, NORMAN, OSX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | 751 | XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, XXXXXXX, OUT_BLE, NORMAN, OSX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
| 774 | _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______ | 752 | _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______ |
| 775 | ), | 753 | ), |
| @@ -968,6 +946,24 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 968 | set_unicode_input_mode(UC_OSX); | 946 | set_unicode_input_mode(UC_OSX); |
| 969 | return false; | 947 | return false; |
| 970 | break; | 948 | break; |
| 949 | |||
| 950 | // glow mode changer | ||
| 951 | case GLOW: | ||
| 952 | if (record->event.pressed) { | ||
| 953 | glow_mode++; | ||
| 954 | if (glow_mode > GLOW_FULL) { | ||
| 955 | glow_mode = GLOW_NONE; | ||
| 956 | } | ||
| 957 | led_reset(); | ||
| 958 | rgbsps_send(); | ||
| 959 | } | ||
| 960 | return false; | ||
| 961 | break; | ||
| 962 | |||
| 963 | // faux clicky toggle, TBD | ||
| 964 | case AUDIO: | ||
| 965 | return false; | ||
| 966 | break; | ||
| 971 | } | 967 | } |
| 972 | return true; | 968 | return true; |
| 973 | } | 969 | } |
