aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPriyadi Iman Nurcahyo <priyadi@priyadi.net>2017-02-12 00:00:01 +0700
committerPriyadi Iman Nurcahyo <priyadi@priyadi.net>2017-02-13 17:58:06 +0700
commit5d5f2ff50daaef0e76e8e267a29a7ac2286f65d8 (patch)
tree11f52453ed995920de707659eb35710dbe4eef34
parent4010360912125c120904e2d5294963db2d4ded65 (diff)
downloadqmk_firmware-5d5f2ff50daaef0e76e8e267a29a7ac2286f65d8.tar.gz
qmk_firmware-5d5f2ff50daaef0e76e8e267a29a7ac2286f65d8.zip
Some space optimization and housekeeping
-rw-r--r--keyboards/handwired/promethium/keymaps/priyadi/keymap.c74
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};
42uint8_t glow_mode = GLOW_MIN; 42uint8_t glow_mode = GLOW_MIN;
43 43
44void turn_off_capslock(void);
44extern keymap_config_t keymap_config; 45extern keymap_config_t keymap_config;
45 46
46enum layers { 47enum 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
758void 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
756bool process_record_user(uint16_t keycode, keyrecord_t *record) { 782bool 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