]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
add unicode common file, get names right
authorJack Humbert <jack.humb@gmail.com>
Wed, 15 Feb 2017 22:09:35 +0000 (17:09 -0500)
committerJack Humbert <jack.humb@gmail.com>
Wed, 15 Feb 2017 22:09:35 +0000 (17:09 -0500)
build_keyboard.mk
quantum/process_keycode/process_ucis.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h
quantum/process_keycode/process_unicode_common.h [new file with mode: 0644]
quantum/process_keycode/process_unicodemap.c
quantum/process_keycode/process_unicodemap.h

index 9d2eaec1ffeefde07fa1174507d2559aa9bb2835..4a6fc0980f3771cee239cd75bef82664c3a3c718 100644 (file)
@@ -168,16 +168,19 @@ endif
 
 ifeq ($(strip $(UCIS_ENABLE)), yes)
        OPT_DEFS += -DUCIS_ENABLE
+       SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
        SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c
 endif
 
 ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
        OPT_DEFS += -DUNICODEMAP_ENABLE
+       SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
        SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c
 endif
 
 ifeq ($(strip $(UNICODE_ENABLE)), yes)
     OPT_DEFS += -DUNICODE_ENABLE
+       SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
        SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c
 endif
 
index 520db8042b540ce8288856772ef2f1417685cc17..4332f57b35a1ab9dad0a310da7ed530ceb2e76d0 100644 (file)
@@ -2,6 +2,7 @@
 #define PROCESS_UCIS_H
 
 #include "quantum.h"
+#include "process_unicode_common.h"
 
 #ifndef UCIS_MAX_SYMBOL_LENGTH
 #define UCIS_MAX_SYMBOL_LENGTH 32
index 898e168a30badf7d7b675ca8a3c4711169ae8470..ccae6fdcad5c54a021238bf02af261573d2e0114 100644 (file)
@@ -1,91 +1,6 @@
 #include "process_unicode.h"
 #include "action_util.h"
 
-static uint8_t input_mode;
-uint8_t mods;
-
-void set_unicode_input_mode(uint8_t os_target)
-{
-  input_mode = os_target;
-}
-
-uint8_t get_unicode_input_mode(void) {
-  return input_mode;
-}
-
-__attribute__((weak))
-void unicode_input_start (void) {
-  // save current mods
-  mods = keyboard_report->mods;
-
-  // unregister all mods to start from clean state
-  if (mods & MOD_BIT(KC_LSFT)) unregister_code(KC_LSFT);
-  if (mods & MOD_BIT(KC_RSFT)) unregister_code(KC_RSFT);
-  if (mods & MOD_BIT(KC_LCTL)) unregister_code(KC_LCTL);
-  if (mods & MOD_BIT(KC_RCTL)) unregister_code(KC_RCTL);
-  if (mods & MOD_BIT(KC_LALT)) unregister_code(KC_LALT);
-  if (mods & MOD_BIT(KC_RALT)) unregister_code(KC_RALT);
-  if (mods & MOD_BIT(KC_LGUI)) unregister_code(KC_LGUI);
-  if (mods & MOD_BIT(KC_RGUI)) unregister_code(KC_RGUI);
-
-  switch(input_mode) {
-  case UC_OSX:
-    register_code(KC_LALT);
-    break;
-  case UC_LNX:
-    register_code(KC_LCTL);
-    register_code(KC_LSFT);
-    register_code(KC_U);
-    unregister_code(KC_U);
-    unregister_code(KC_LSFT);
-    unregister_code(KC_LCTL);
-    break;
-  case UC_WIN:
-    register_code(KC_LALT);
-    register_code(KC_PPLS);
-    unregister_code(KC_PPLS);
-    break;
-  case UC_WINC:
-    register_code(KC_RALT);
-    unregister_code(KC_RALT);
-    register_code(KC_U);
-    unregister_code(KC_U);
-  }
-  wait_ms(UNICODE_TYPE_DELAY);
-}
-
-__attribute__((weak))
-void unicode_input_finish (void) {
-  switch(input_mode) {
-    case UC_OSX:
-    case UC_WIN:
-      unregister_code(KC_LALT);
-      break;
-    case UC_LNX:
-      register_code(KC_SPC);
-      unregister_code(KC_SPC);
-      break;
-  }
-
-  // reregister previously set mods
-  if (mods & MOD_BIT(KC_LSFT)) register_code(KC_LSFT);
-  if (mods & MOD_BIT(KC_RSFT)) register_code(KC_RSFT);
-  if (mods & MOD_BIT(KC_LCTL)) register_code(KC_LCTL);
-  if (mods & MOD_BIT(KC_RCTL)) register_code(KC_RCTL);
-  if (mods & MOD_BIT(KC_LALT)) register_code(KC_LALT);
-  if (mods & MOD_BIT(KC_RALT)) register_code(KC_RALT);
-  if (mods & MOD_BIT(KC_LGUI)) register_code(KC_LGUI);
-  if (mods & MOD_BIT(KC_RGUI)) register_code(KC_RGUI);
-}
-
-void register_hex(uint16_t hex) {
-  for(int i = 3; i >= 0; i--) {
-    uint8_t digit = ((hex >> (i*4)) & 0xF);
-    register_code(hex_to_keycode(digit));
-    unregister_code(hex_to_keycode(digit));
-  }
-}
-
 bool process_unicode(uint16_t keycode, keyrecord_t *record) {
   if (keycode > QK_UNICODE && record->event.pressed) {
     uint16_t unicode = keycode & 0x7FFF;
index 7ed9e54d5090068c1c31ff4e2d1075474d1fbb87..4c21f11eb976babb425e3ac8ca8fb6447075e0ec 100644 (file)
@@ -2,130 +2,8 @@
 #define PROCESS_UNICODE_H
 
 #include "quantum.h"
-
-#define UC_OSX 0  // Mac OS X
-#define UC_LNX 1  // Linux
-#define UC_WIN 2  // Windows 'HexNumpad'
-#define UC_BSD 3  // BSD (not implemented)
-#define UC_WINC 4 // WinCompose https://github.com/samhocevar/wincompose
-
-#ifndef UNICODE_TYPE_DELAY
-#define UNICODE_TYPE_DELAY 10
-#endif
-
-void set_unicode_input_mode(uint8_t os_target);
-uint8_t get_unicode_input_mode(void);
-void unicode_input_start(void);
-void unicode_input_finish(void);
-void register_hex(uint16_t hex);
+#include "process_unicode_common.h"
 
 bool process_unicode(uint16_t keycode, keyrecord_t *record);
 
-#define UC_BSPC        UC(0x0008)
-
-#define UC_SPC UC(0x0020)
-
-#define UC_EXLM        UC(0x0021)
-#define UC_DQUT        UC(0x0022)
-#define UC_HASH        UC(0x0023)
-#define UC_DLR UC(0x0024)
-#define UC_PERC        UC(0x0025)
-#define UC_AMPR        UC(0x0026)
-#define UC_QUOT        UC(0x0027)
-#define UC_LPRN        UC(0x0028)
-#define UC_RPRN        UC(0x0029)
-#define UC_ASTR        UC(0x002A)
-#define UC_PLUS        UC(0x002B)
-#define UC_COMM        UC(0x002C)
-#define UC_DASH        UC(0x002D)
-#define UC_DOT UC(0x002E)
-#define UC_SLSH        UC(0x002F)
-
-#define UC_0   UC(0x0030)
-#define UC_1   UC(0x0031)
-#define UC_2   UC(0x0032)
-#define UC_3   UC(0x0033)
-#define UC_4   UC(0x0034)
-#define UC_5   UC(0x0035)
-#define UC_6   UC(0x0036)
-#define UC_7   UC(0x0037)
-#define UC_8   UC(0x0038)
-#define UC_9   UC(0x0039)
-
-#define UC_COLN UC(0x003A)
-#define UC_SCLN UC(0x003B)
-#define UC_LT  UC(0x003C)
-#define UC_EQL UC(0x003D)
-#define UC_GT  UC(0x003E)
-#define UC_QUES        UC(0x003F)
-#define UC_AT  UC(0x0040)
-
-#define UC_A   UC(0x0041)
-#define UC_B   UC(0x0042)
-#define UC_C   UC(0x0043)
-#define UC_D   UC(0x0044)
-#define UC_E   UC(0x0045)
-#define UC_F   UC(0x0046)
-#define UC_G   UC(0x0047)
-#define UC_H   UC(0x0048)
-#define UC_I   UC(0x0049)
-#define UC_J   UC(0x004A)
-#define UC_K   UC(0x004B)
-#define UC_L   UC(0x004C)
-#define UC_M   UC(0x004D)
-#define UC_N   UC(0x004E)
-#define UC_O   UC(0x004F)
-#define UC_P   UC(0x0050)
-#define UC_Q   UC(0x0051)
-#define UC_R   UC(0x0052)
-#define UC_S   UC(0x0053)
-#define UC_T   UC(0x0054)
-#define UC_U   UC(0x0055)
-#define UC_V   UC(0x0056)
-#define UC_W   UC(0x0057)
-#define UC_X   UC(0x0058)
-#define UC_Y   UC(0x0059)
-#define UC_Z   UC(0x005A)
-
-#define UC_LBRC        UC(0x005B)
-#define UC_BSLS        UC(0x005C)
-#define UC_RBRC        UC(0x005D)
-#define UC_CIRM        UC(0x005E)
-#define UC_UNDR        UC(0x005F)
-
-#define UC_GRV         UC(0x0060)
-
-#define UC_a   UC(0x0061)
-#define UC_b   UC(0x0062)
-#define UC_c   UC(0x0063)
-#define UC_d   UC(0x0064)
-#define UC_e   UC(0x0065)
-#define UC_f   UC(0x0066)
-#define UC_g   UC(0x0067)
-#define UC_h   UC(0x0068)
-#define UC_i   UC(0x0069)
-#define UC_j   UC(0x006A)
-#define UC_k   UC(0x006B)
-#define UC_l   UC(0x006C)
-#define UC_m   UC(0x006D)
-#define UC_n   UC(0x006E)
-#define UC_o   UC(0x006F)
-#define UC_p   UC(0x0070)
-#define UC_q   UC(0x0071)
-#define UC_r   UC(0x0072)
-#define UC_s   UC(0x0073)
-#define UC_t   UC(0x0074)
-#define UC_u   UC(0x0075)
-#define UC_v   UC(0x0076)
-#define UC_w   UC(0x0077)
-#define UC_x   UC(0x0078)
-#define UC_y   UC(0x0079)
-#define UC_z   UC(0x007A)
-
-#define UC_LCBR        UC(0x007B)
-#define UC_PIPE        UC(0x007C)
-#define UC_RCBR        UC(0x007D)
-#define UC_TILD        UC(0x007E)
-#define UC_DEL UC(0x007F)
-
 #endif
diff --git a/quantum/process_keycode/process_unicode_common.h b/quantum/process_keycode/process_unicode_common.h
new file mode 100644 (file)
index 0000000..171ecbc
--- /dev/null
@@ -0,0 +1,130 @@
+#ifndef PROCESS_UNICODE_COMMON_H
+#define PROCESS_UNICODE_COMMON_H
+
+#include "quantum.h"
+
+#ifndef UNICODE_TYPE_DELAY
+#define UNICODE_TYPE_DELAY 10
+#endif
+
+void set_unicode_input_mode(uint8_t os_target);
+uint8_t get_unicode_input_mode(void);
+void unicode_input_start(void);
+void unicode_input_finish(void);
+void register_hex(uint16_t hex);
+
+
+#define UC_OSX 0  // Mac OS X
+#define UC_LNX 1  // Linux
+#define UC_WIN 2  // Windows 'HexNumpad'
+#define UC_BSD 3  // BSD (not implemented)
+#define UC_WINC 4 // WinCompose https://github.com/samhocevar/wincompose
+
+#define UC_BSPC        UC(0x0008)
+
+#define UC_SPC UC(0x0020)
+
+#define UC_EXLM        UC(0x0021)
+#define UC_DQUT        UC(0x0022)
+#define UC_HASH        UC(0x0023)
+#define UC_DLR UC(0x0024)
+#define UC_PERC        UC(0x0025)
+#define UC_AMPR        UC(0x0026)
+#define UC_QUOT        UC(0x0027)
+#define UC_LPRN        UC(0x0028)
+#define UC_RPRN        UC(0x0029)
+#define UC_ASTR        UC(0x002A)
+#define UC_PLUS        UC(0x002B)
+#define UC_COMM        UC(0x002C)
+#define UC_DASH        UC(0x002D)
+#define UC_DOT UC(0x002E)
+#define UC_SLSH        UC(0x002F)
+
+#define UC_0   UC(0x0030)
+#define UC_1   UC(0x0031)
+#define UC_2   UC(0x0032)
+#define UC_3   UC(0x0033)
+#define UC_4   UC(0x0034)
+#define UC_5   UC(0x0035)
+#define UC_6   UC(0x0036)
+#define UC_7   UC(0x0037)
+#define UC_8   UC(0x0038)
+#define UC_9   UC(0x0039)
+
+#define UC_COLN UC(0x003A)
+#define UC_SCLN UC(0x003B)
+#define UC_LT  UC(0x003C)
+#define UC_EQL UC(0x003D)
+#define UC_GT  UC(0x003E)
+#define UC_QUES        UC(0x003F)
+#define UC_AT  UC(0x0040)
+
+#define UC_A   UC(0x0041)
+#define UC_B   UC(0x0042)
+#define UC_C   UC(0x0043)
+#define UC_D   UC(0x0044)
+#define UC_E   UC(0x0045)
+#define UC_F   UC(0x0046)
+#define UC_G   UC(0x0047)
+#define UC_H   UC(0x0048)
+#define UC_I   UC(0x0049)
+#define UC_J   UC(0x004A)
+#define UC_K   UC(0x004B)
+#define UC_L   UC(0x004C)
+#define UC_M   UC(0x004D)
+#define UC_N   UC(0x004E)
+#define UC_O   UC(0x004F)
+#define UC_P   UC(0x0050)
+#define UC_Q   UC(0x0051)
+#define UC_R   UC(0x0052)
+#define UC_S   UC(0x0053)
+#define UC_T   UC(0x0054)
+#define UC_U   UC(0x0055)
+#define UC_V   UC(0x0056)
+#define UC_W   UC(0x0057)
+#define UC_X   UC(0x0058)
+#define UC_Y   UC(0x0059)
+#define UC_Z   UC(0x005A)
+
+#define UC_LBRC        UC(0x005B)
+#define UC_BSLS        UC(0x005C)
+#define UC_RBRC        UC(0x005D)
+#define UC_CIRM        UC(0x005E)
+#define UC_UNDR        UC(0x005F)
+
+#define UC_GRV         UC(0x0060)
+
+#define UC_a   UC(0x0061)
+#define UC_b   UC(0x0062)
+#define UC_c   UC(0x0063)
+#define UC_d   UC(0x0064)
+#define UC_e   UC(0x0065)
+#define UC_f   UC(0x0066)
+#define UC_g   UC(0x0067)
+#define UC_h   UC(0x0068)
+#define UC_i   UC(0x0069)
+#define UC_j   UC(0x006A)
+#define UC_k   UC(0x006B)
+#define UC_l   UC(0x006C)
+#define UC_m   UC(0x006D)
+#define UC_n   UC(0x006E)
+#define UC_o   UC(0x006F)
+#define UC_p   UC(0x0070)
+#define UC_q   UC(0x0071)
+#define UC_r   UC(0x0072)
+#define UC_s   UC(0x0073)
+#define UC_t   UC(0x0074)
+#define UC_u   UC(0x0075)
+#define UC_v   UC(0x0076)
+#define UC_w   UC(0x0077)
+#define UC_x   UC(0x0078)
+#define UC_y   UC(0x0079)
+#define UC_z   UC(0x007A)
+
+#define UC_LCBR        UC(0x007B)
+#define UC_PIPE        UC(0x007C)
+#define UC_RCBR        UC(0x007D)
+#define UC_TILD        UC(0x007E)
+#define UC_DEL UC(0x007F)
+
+#endif
\ No newline at end of file
index b8cdeaa97937af373cc0f1c3b5ac3b306a24e236..37f10df866668cd756611c6e13800b024cd8d144 100644 (file)
@@ -1,4 +1,4 @@
-#include "process_unicode_map.h"
+#include "process_unicodemap.h"
 
 __attribute__((weak))
 const uint32_t PROGMEM unicode_map[] = {
index 291bd8de031e77c05d6250f26b6ab61bd4cb74b4..64a7a01090c4e08976f5dd9c88c8c45256178d83 100644 (file)
@@ -2,6 +2,7 @@
 #define PROCESS_UNICODEMAP_H
 
 #include "quantum.h"
+#include "process_unicode_common.h"
 
 void unicode_map_input_error(void);
 bool process_unicode_map(uint16_t keycode, keyrecord_t *record);