]> git.donarmstrong.com Git - qmk_firmware.git/blob - users/edvorakjp/edvorakjp.h
Merge branch 'master' of github.com:qmk/qmk_firmware into hf/shinydox
[qmk_firmware.git] / users / edvorakjp / edvorakjp.h
1 #ifndef USERSPACE
2 #define USERSPACE
3
4 #include "quantum.h"
5 #include "action_layer.h"
6
7 #define EECONFIG_EDVORAK (uint8_t *)20
8
9 extern keymap_config_t keymap_config;
10
11 typedef union {
12   uint8_t raw;
13   struct {
14     bool enable_jp_extra_layer : 1;
15     bool enable_kc_lang        : 1;  // for macOS
16   };
17 } edvorakjp_config_t;
18
19 enum edvorakjp_layers {
20   _EDVORAK = 0,
21   _EDVORAKJ1,
22   _EDVORAKJ2,
23   _QWERTY,
24   _LOWER,
25   _RAISE,
26   _ADJUST,
27   _EXTRA,
28 };
29
30 enum edvorakjp_keycodes {
31   EDVORAK = SAFE_RANGE,
32   QWERTY,
33   LOWER,
34   RAISE,
35   KC_MAC,
36   KC_WIN,
37   KC_EXTON,
38   KC_EXTOFF,
39   KC_JPN,
40   KC_ENG,
41   KC_AI,
42   KC_OU,
43   KC_EI,
44   KC_ANN,
45   KC_ONN,
46   KC_ENN,
47   KC_INN,
48   KC_UNN,
49   NEW_SAFE_RANGE
50 };
51
52 uint8_t eeconfig_read_edvorakjp(void);
53 void eeconfig_update_edvorakjp(uint8_t val);
54
55 void dvorakj_layer_off(void);
56 void update_japanese_mode(bool new_state);
57 void matrix_init_user(void);
58 void matrix_init_keymap(void);
59 uint32_t layer_state_set_user(uint32_t state);
60 uint32_t layer_state_set_keymap(uint32_t state);
61
62 /*
63  * Each process_record_* methods defined here are
64  * return false if processed, or return true if not processed.
65  * You can add your original macros in process_record_keymap() in keymap.c.
66  */
67 bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
68 bool process_record_edvorakjp_ext(uint16_t keycode, keyrecord_t *record);
69 bool process_record_edvorakjp_config(uint16_t keycode, keyrecord_t *record);
70 bool process_record_layer(uint16_t keycode, keyrecord_t *record);
71 bool process_record_ime(uint16_t keycode, keyrecord_t *record);
72 bool process_record_user(uint16_t keycode, keyrecord_t *record);
73
74 #endif