1pub mod key_range {
2 pub const MAX_LAYER_N: u16 = 0xff;
3
4 pub const LAYER: u16 = 0x600;
5 pub const TOGGLE: u16 = 0x700;
6 pub const SET_LAYOUT: u16 = 0x800;
7 pub const ONESHOT: u16 = 0x900;
8 pub const REPLACE_LAYERS: u16 = 0xa00;
9 pub const LAYERS_LAST: u16 = REPLACE_LAYERS + MAX_LAYER_N;
10
11 pub const BASIC_MIN: u16 = 0x4;
12 pub const BASIC_A: u16 = 0x4;
13 pub const BASIC_1: u16 = 0x1e;
14 pub const BASIC_0: u16 = 0x27;
15 pub const BASIC_MAX: u16 = 0xfe;
16 pub const MODIFIER_MIN: u16 = 0xe0;
17 pub const MODIFIER_MAX: u16 = 0xe7;
18 pub const CONSUMER_MIN: u16 = 0x100;
19 pub const CONSUMER_MAX: u16 = 0x3a0;
20 pub const SYS_CTL_MIN: u16 = 0x3a1;
21 pub const SYS_CTL_MAX: u16 = 0x3d5;
22 pub const MOUSE_MIN: u16 = 0x400;
23 pub const MOUSE_MAX: u16 = MOUSE_MIN + 0xff;
24
25 pub const LAYER_MIN: u16 = LAYER;
26 pub const LAYER_MAX: u16 = LAYER_MIN + MAX_LAYER_N;
27 pub const TOGGLE_MIN: u16 = TOGGLE;
28 pub const TOGGLE_MAX: u16 = TOGGLE_MIN + MAX_LAYER_N;
29 pub const SET_LAYOUT_MIN: u16 = SET_LAYOUT;
30 pub const SET_LAYOUT_MAX: u16 = SET_LAYOUT_MIN + MAX_LAYER_N;
31 pub const ONESHOT_MIN: u16 = ONESHOT;
32 pub const ONESHOT_MAX: u16 = ONESHOT_MIN + MAX_LAYER_N;
33 pub const REPLACE_LAYERS_MIN: u16 = REPLACE_LAYERS;
34 pub const REPLACE_LAXERS_MAX: u16 = REPLACE_LAYERS_MIN + MAX_LAYER_N;
35
36 pub const MACROS_MIN: u16 = 0x1000;
37 pub const MACROS_MAX: u16 = 0x1fff;
38
39 pub const FIRMWARE_MIN: u16 = MACROS_MAX + 1;
40 pub const FIRMWARE_MAX: u16 = FIRMWARE_MIN + 0xff;
41
42 pub const FW_RESET_KEYBOARD: u16 = FIRMWARE_MIN;
43 pub const FW_RESET_TO_USB_BOOT: u16 = FIRMWARE_MIN + 1;
44 pub const FW_CLEAR_ALL: u16 = FIRMWARE_MIN + 2;
45 pub const FW_CLEAR_LAYERS: u16 = FIRMWARE_MIN + 3;
46 pub const FW_STOP_ACTIVE: u16 = FIRMWARE_MIN + 4;
47
48 pub const MOUSE_BUTTON: u16 = 0;
49 pub const MOUSE_BUTTON_END: u16 = 7;
50 pub const MOUSE_DELTA: u16 = MOUSE_BUTTON_END + 1;
51 pub const MOUSE_DELTA_END: u16 = MOUSE_DELTA + 7;
52 pub const MOUSE_ACCEL: u16 = MOUSE_DELTA_END + 1;
53 pub const MOUSE_ACCEL_END: u16 = MOUSE_ACCEL + 2;
54
55 pub const SYS_CTL_BASE: u16 = 0x81;
56
57 pub fn base_code(code: u16) -> u16 {
58 code & 0xff00
59 }
60}
61
62pub mod macro_types {
63 pub const MODIFIER: u16 = 0;
64 pub const DUAL_ACTION: u16 = 1;
65 pub const TAP: u16 = 2;
66 pub const HOLD_RELEASE: u16 = 3;
67 pub const HOLD: u16 = 4;
68 pub const RELEASE: u16 = 5;
69 pub const DELAY: u16 = 6;
70}