aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPriyadi Iman Nurcahyo <priyadi@priyadi.net>2017-02-10 17:45:12 +0700
committerPriyadi Iman Nurcahyo <priyadi@priyadi.net>2017-02-10 17:45:12 +0700
commit07879bf66b29535214a147b1797f96767b1faa58 (patch)
treeab30ae27c1590661e70bd7d168c7d1dfb1edd325
parenta5b8db52a046e803c21146402e1d009f31b91508 (diff)
downloadqmk_firmware-07879bf66b29535214a147b1797f96767b1faa58.tar.gz
qmk_firmware-07879bf66b29535214a147b1797f96767b1faa58.zip
Add function to cycle backlight modes
-rw-r--r--keyboards/handwired/promethium/keymaps/priyadi/keymap.c152
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
23enum glow_modes {
24 GLOW_NONE,
25 GLOW_MIN,
26 GLOW_FULL
27};
28uint8_t glow_mode = GLOW_MIN;
29
23extern keymap_config_t keymap_config; 30extern keymap_config_t keymap_config;
24 31
25enum layers { 32enum 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
331const 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
320const uint8_t PROGMEM LED_MODS[] = { 342const 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
357void led_reset(void) { 379void 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
391void 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
371void led_layer_normal(void) { 423void 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
475void led_layer_emoji(void) { 463void 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}