diff options
| author | Priyadi Iman Nurcahyo <priyadi@priyadi.net> | 2017-02-12 00:00:01 +0700 |
|---|---|---|
| committer | Priyadi Iman Nurcahyo <priyadi@priyadi.net> | 2017-02-13 17:58:06 +0700 |
| commit | 5d5f2ff50daaef0e76e8e267a29a7ac2286f65d8 (patch) | |
| tree | 11f52453ed995920de707659eb35710dbe4eef34 | |
| parent | 4010360912125c120904e2d5294963db2d4ded65 (diff) | |
| download | qmk_firmware-5d5f2ff50daaef0e76e8e267a29a7ac2286f65d8.tar.gz qmk_firmware-5d5f2ff50daaef0e76e8e267a29a7ac2286f65d8.zip | |
Some space optimization and housekeeping
| -rw-r--r-- | keyboards/handwired/promethium/keymaps/priyadi/keymap.c | 74 |
1 files changed, 30 insertions, 44 deletions
diff --git a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c index 1ad34612e..e35e42488 100644 --- a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c +++ b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c | |||
| @@ -41,6 +41,7 @@ enum glow_modes { | |||
| 41 | }; | 41 | }; |
| 42 | uint8_t glow_mode = GLOW_MIN; | 42 | uint8_t glow_mode = GLOW_MIN; |
| 43 | 43 | ||
| 44 | void turn_off_capslock(void); | ||
| 44 | extern keymap_config_t keymap_config; | 45 | extern keymap_config_t keymap_config; |
| 45 | 46 | ||
| 46 | enum layers { | 47 | enum layers { |
| @@ -49,6 +50,7 @@ enum layers { | |||
| 49 | _COLEMAK, | 50 | _COLEMAK, |
| 50 | _WORKMAN, | 51 | _WORKMAN, |
| 51 | _NORMAN, | 52 | _NORMAN, |
| 53 | _DEFAULT_LAYER_MAX = _NORMAN, | ||
| 52 | 54 | ||
| 53 | _PUNC, | 55 | _PUNC, |
| 54 | _NUM, | 56 | _NUM, |
| @@ -444,7 +446,7 @@ void led_set_layer_indicator(void) { | |||
| 444 | 446 | ||
| 445 | oldlayer = layer; | 447 | oldlayer = layer; |
| 446 | 448 | ||
| 447 | if (layer <= _NORMAN) { | 449 | if (layer <= _DEFAULT_LAYER_MAX) { |
| 448 | rgbsps_send(); | 450 | rgbsps_send(); |
| 449 | return; | 451 | return; |
| 450 | } | 452 | } |
| @@ -461,7 +463,7 @@ void led_set_layer_indicator(void) { | |||
| 461 | break; | 463 | break; |
| 462 | default: | 464 | default: |
| 463 | rgbsps_set(LED_IND_FUNC, 3, 3, 3); | 465 | rgbsps_set(LED_IND_FUNC, 3, 3, 3); |
| 464 | rgbsps_set(LED_IND_NUM, 3, 3, 3); | 466 | // rgbsps_set(LED_IND_NUM, 3, 3, 3); |
| 465 | rgbsps_set(LED_IND_EMOJI, 3, 3, 3); | 467 | rgbsps_set(LED_IND_EMOJI, 3, 3, 3); |
| 466 | } | 468 | } |
| 467 | 469 | ||
| @@ -753,6 +755,30 @@ void persistant_default_layer_set(uint16_t default_layer) { | |||
| 753 | default_layer_set(default_layer); | 755 | default_layer_set(default_layer); |
| 754 | } | 756 | } |
| 755 | 757 | ||
| 758 | void process_doublespace(bool pressed, bool *isactive, bool *otheractive, bool *isemitted) { | ||
| 759 | if (pressed) { | ||
| 760 | *isactive = true; | ||
| 761 | if (*otheractive) { | ||
| 762 | layer_on(_SPACE); | ||
| 763 | space_layer_entered = true; | ||
| 764 | } | ||
| 765 | } else { | ||
| 766 | *isactive = false; | ||
| 767 | if (space_layer_entered) { | ||
| 768 | layer_off(_SPACE); | ||
| 769 | if (!*otheractive) { | ||
| 770 | space_layer_entered = false; | ||
| 771 | } | ||
| 772 | } else { | ||
| 773 | if (!*isemitted) { | ||
| 774 | register_code(KC_SPC); | ||
| 775 | unregister_code(KC_SPC); | ||
| 776 | } | ||
| 777 | *isemitted = false; | ||
| 778 | } | ||
| 779 | } | ||
| 780 | } | ||
| 781 | |||
| 756 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | 782 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
| 757 | bool lshift = keyboard_report->mods & MOD_BIT(KC_LSFT); | 783 | bool lshift = keyboard_report->mods & MOD_BIT(KC_LSFT); |
| 758 | bool rshift = keyboard_report->mods & MOD_BIT(KC_RSFT); | 784 | bool rshift = keyboard_report->mods & MOD_BIT(KC_RSFT); |
| @@ -786,51 +812,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 786 | #ifdef DOUBLESPACE_LAYER_ENABLE | 812 | #ifdef DOUBLESPACE_LAYER_ENABLE |
| 787 | // double-space enter space layer | 813 | // double-space enter space layer |
| 788 | case LSPACE: | 814 | case LSPACE: |
| 789 | if (record->event.pressed) { | 815 | process_doublespace(record->event.pressed, &lspace_active, &rspace_active, &lspace_emitted); |
| 790 | lspace_active = true; | ||
| 791 | if (rspace_active) { | ||
| 792 | layer_on(_SPACE); | ||
| 793 | space_layer_entered = true; | ||
| 794 | } | ||
| 795 | } else { | ||
| 796 | lspace_active = false; | ||
| 797 | if (space_layer_entered) { | ||
| 798 | layer_off(_SPACE); | ||
| 799 | if (!rspace_active) { | ||
| 800 | space_layer_entered = false; | ||
| 801 | } | ||
| 802 | } else { | ||
| 803 | if (!lspace_emitted) { | ||
| 804 | register_code(KC_SPC); | ||
| 805 | unregister_code(KC_SPC); | ||
| 806 | } | ||
| 807 | lspace_emitted = false; | ||
| 808 | } | ||
| 809 | } | ||
| 810 | return false; | 816 | return false; |
| 811 | break; | 817 | break; |
| 812 | case RSPACE: | 818 | case RSPACE: |
| 813 | if (record->event.pressed) { | 819 | process_doublespace(record->event.pressed, &rspace_active, &lspace_active, &rspace_emitted); |
| 814 | rspace_active = true; | ||
| 815 | if (lspace_active) { | ||
| 816 | layer_on(_SPACE); | ||
| 817 | space_layer_entered = true; | ||
| 818 | } | ||
| 819 | } else { | ||
| 820 | rspace_active = false; | ||
| 821 | if (space_layer_entered) { | ||
| 822 | layer_off(_SPACE); | ||
| 823 | if (!lspace_active) { | ||
| 824 | space_layer_entered = false; | ||
| 825 | } | ||
| 826 | } else { | ||
| 827 | if (!rspace_emitted) { | ||
| 828 | register_code(KC_SPC); | ||
| 829 | unregister_code(KC_SPC); | ||
| 830 | } | ||
| 831 | rspace_emitted = false; | ||
| 832 | } | ||
| 833 | } | ||
| 834 | return false; | 820 | return false; |
| 835 | break; | 821 | break; |
| 836 | #endif | 822 | #endif |
