mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2026-02-23 18:02:36 +00:00
Add QK_CR_0-QK_CR_51 custom keycode
These keycodes are used by Keychron Quick Start
This commit is contained in:
@@ -69,6 +69,8 @@ void get_support_feature(uint8_t *data) {
|
||||
| FEATURE_KEYCHRON_RGB
|
||||
# endif
|
||||
;
|
||||
|
||||
data[2] = (FEATURE_QUICK_START >> 8);
|
||||
}
|
||||
|
||||
void get_firmware_version(uint8_t *data) {
|
||||
@@ -151,12 +153,13 @@ bool kc_raw_hid_rx(uint8_t src, uint8_t *data, uint8_t length) {
|
||||
# ifdef USB_REPORT_INTERVAL_ENABLE
|
||||
| MISC_REPORT_REATE
|
||||
# endif
|
||||
;
|
||||
| MISC_QUICK_START;
|
||||
break;
|
||||
|
||||
case DFU_INFO_GET:
|
||||
dfu_info_rx(data, length);
|
||||
break;
|
||||
|
||||
case LANGUAGE_GET ... LANGUAGE_SET:
|
||||
language_rx(data, length);
|
||||
break;
|
||||
|
||||
@@ -41,6 +41,8 @@ enum {
|
||||
FEATURE_DYNAMIC_DEBOUNCE = 0x01U << 5,
|
||||
FEATURE_SNAP_CLICK = 0x01U << 6,
|
||||
FEATURE_KEYCHRON_RGB = 0x01U << 7,
|
||||
|
||||
FEATURE_QUICK_START = 0x01 << 8
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -50,6 +52,7 @@ enum {
|
||||
MISC_SNAP_CLICK = 0x01 << 3,
|
||||
MISC_WIRELESS_LPM = 0x01 << 4,
|
||||
MISC_REPORT_REATE = 0x01 << 5,
|
||||
MISC_QUICK_START = 0x01 << 6
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -71,4 +74,3 @@ enum {
|
||||
};
|
||||
|
||||
void kc_raw_hid_send(uint8_t src, uint8_t *data, uint8_t len);
|
||||
|
||||
|
||||
@@ -972,7 +972,7 @@ __attribute__((weak)) void register_code(uint8_t code) {
|
||||
#ifdef EXTRAKEY_ENABLE
|
||||
} else if (IS_SYSTEM_KEYCODE(code)) {
|
||||
host_system_send(KEYCODE2SYSTEM(code));
|
||||
} else if (IS_CONSUMER_KEYCODE(code)) {
|
||||
} else if (IS_CONSUMER_KEYCODE(code) || IS_CONSUMER_RESERVED_KEYCODE(code)) {
|
||||
host_consumer_send(KEYCODE2CONSUMER(code));
|
||||
#endif
|
||||
|
||||
@@ -1029,7 +1029,7 @@ __attribute__((weak)) void unregister_code(uint8_t code) {
|
||||
#ifdef EXTRAKEY_ENABLE
|
||||
} else if (IS_SYSTEM_KEYCODE(code)) {
|
||||
host_system_send(0);
|
||||
} else if (IS_CONSUMER_KEYCODE(code)) {
|
||||
} else if (IS_CONSUMER_KEYCODE(code) || IS_CONSUMER_RESERVED_KEYCODE(code)) {
|
||||
host_consumer_send(0);
|
||||
#endif
|
||||
|
||||
|
||||
@@ -834,6 +834,58 @@ enum qk_keycode_defines {
|
||||
QK_USER_29 = 0x7E5D,
|
||||
QK_USER_30 = 0x7E5E,
|
||||
QK_USER_31 = 0x7E5F,
|
||||
QK_CONSUMER_RESERVED_0 = 0x07F00,
|
||||
QK_CONSUMER_RESERVED_1 = 0x07F01,
|
||||
QK_CONSUMER_RESERVED_2 = 0x07F02,
|
||||
QK_CONSUMER_RESERVED_3 = 0x07F03,
|
||||
QK_CONSUMER_RESERVED_4 = 0x07F04,
|
||||
QK_CONSUMER_RESERVED_5 = 0x07F05,
|
||||
QK_CONSUMER_RESERVED_6 = 0x07F06,
|
||||
QK_CONSUMER_RESERVED_7 = 0x07F07,
|
||||
QK_CONSUMER_RESERVED_8 = 0x07F08,
|
||||
QK_CONSUMER_RESERVED_9 = 0x07F09,
|
||||
QK_CONSUMER_RESERVED_10 = 0x07F0A,
|
||||
QK_CONSUMER_RESERVED_11 = 0x07F0B,
|
||||
QK_CONSUMER_RESERVED_12 = 0x07F0C,
|
||||
QK_CONSUMER_RESERVED_13 = 0x07F0D,
|
||||
QK_CONSUMER_RESERVED_14 = 0x07F0E,
|
||||
QK_CONSUMER_RESERVED_15 = 0x07F0F,
|
||||
QK_CONSUMER_RESERVED_16 = 0x07F10,
|
||||
QK_CONSUMER_RESERVED_17 = 0x07F11,
|
||||
QK_CONSUMER_RESERVED_18 = 0x07F12,
|
||||
QK_CONSUMER_RESERVED_19 = 0x07F13,
|
||||
QK_CONSUMER_RESERVED_20 = 0x07F14,
|
||||
QK_CONSUMER_RESERVED_21 = 0x07F15,
|
||||
QK_CONSUMER_RESERVED_22 = 0x07F16,
|
||||
QK_CONSUMER_RESERVED_23 = 0x07F17,
|
||||
QK_CONSUMER_RESERVED_24 = 0x07F18,
|
||||
QK_CONSUMER_RESERVED_25 = 0x07F19,
|
||||
QK_CONSUMER_RESERVED_26 = 0x07F1A,
|
||||
QK_CONSUMER_RESERVED_27 = 0x07F1B,
|
||||
QK_CONSUMER_RESERVED_28 = 0x07F1C,
|
||||
QK_CONSUMER_RESERVED_29 = 0x07F1D,
|
||||
QK_CONSUMER_RESERVED_30 = 0x07F1E,
|
||||
QK_CONSUMER_RESERVED_31 = 0x07F1F,
|
||||
QK_CONSUMER_RESERVED_32 = 0x07F20,
|
||||
QK_CONSUMER_RESERVED_33 = 0x07F21,
|
||||
QK_CONSUMER_RESERVED_34 = 0x07F22,
|
||||
QK_CONSUMER_RESERVED_35 = 0x07F23,
|
||||
QK_CONSUMER_RESERVED_36 = 0x07F24,
|
||||
QK_CONSUMER_RESERVED_37 = 0x07F25,
|
||||
QK_CONSUMER_RESERVED_38 = 0x07F26,
|
||||
QK_CONSUMER_RESERVED_39 = 0x07F27,
|
||||
QK_CONSUMER_RESERVED_40 = 0x07F28,
|
||||
QK_CONSUMER_RESERVED_41 = 0x07F29,
|
||||
QK_CONSUMER_RESERVED_42 = 0x07F2A,
|
||||
QK_CONSUMER_RESERVED_43 = 0x07F2B,
|
||||
QK_CONSUMER_RESERVED_44 = 0x07F2C,
|
||||
QK_CONSUMER_RESERVED_45 = 0x07F2D,
|
||||
QK_CONSUMER_RESERVED_46 = 0x07F2E,
|
||||
QK_CONSUMER_RESERVED_47 = 0x07F2F,
|
||||
QK_CONSUMER_RESERVED_48 = 0x07F30,
|
||||
QK_CONSUMER_RESERVED_49 = 0x07F31,
|
||||
QK_CONSUMER_RESERVED_50 = 0x07F32,
|
||||
QK_CONSUMER_RESERVED_51 = 0x07F33,
|
||||
|
||||
// Alias
|
||||
XXXXXXX = KC_NO,
|
||||
@@ -1457,6 +1509,58 @@ enum qk_keycode_defines {
|
||||
QK_REP = QK_REPEAT_KEY,
|
||||
QK_AREP = QK_ALT_REPEAT_KEY,
|
||||
QK_LLCK = QK_LAYER_LOCK,
|
||||
QK_CR_0 = QK_CONSUMER_RESERVED_0,
|
||||
QK_CR_1 = QK_CONSUMER_RESERVED_1,
|
||||
QK_CR_2 = QK_CONSUMER_RESERVED_2,
|
||||
QK_CR_3 = QK_CONSUMER_RESERVED_3,
|
||||
QK_CR_4 = QK_CONSUMER_RESERVED_4,
|
||||
QK_CR_5 = QK_CONSUMER_RESERVED_5,
|
||||
QK_CR_6 = QK_CONSUMER_RESERVED_6,
|
||||
QK_CR_7 = QK_CONSUMER_RESERVED_7,
|
||||
QK_CR_8 = QK_CONSUMER_RESERVED_8,
|
||||
QK_CR_9 = QK_CONSUMER_RESERVED_9,
|
||||
QK_CR_10 = QK_CONSUMER_RESERVED_10,
|
||||
QK_CR_11 = QK_CONSUMER_RESERVED_11,
|
||||
QK_CR_12 = QK_CONSUMER_RESERVED_12,
|
||||
QK_CR_13 = QK_CONSUMER_RESERVED_13,
|
||||
QK_CR_14 = QK_CONSUMER_RESERVED_14,
|
||||
QK_CR_15 = QK_CONSUMER_RESERVED_15,
|
||||
QK_CR_16 = QK_CONSUMER_RESERVED_16,
|
||||
QK_CR_17 = QK_CONSUMER_RESERVED_17,
|
||||
QK_CR_18 = QK_CONSUMER_RESERVED_18,
|
||||
QK_CR_19 = QK_CONSUMER_RESERVED_19,
|
||||
QK_CR_20 = QK_CONSUMER_RESERVED_20,
|
||||
QK_CR_21 = QK_CONSUMER_RESERVED_21,
|
||||
QK_CR_22 = QK_CONSUMER_RESERVED_22,
|
||||
QK_CR_23 = QK_CONSUMER_RESERVED_23,
|
||||
QK_CR_24 = QK_CONSUMER_RESERVED_24,
|
||||
QK_CR_25 = QK_CONSUMER_RESERVED_25,
|
||||
QK_CR_26 = QK_CONSUMER_RESERVED_26,
|
||||
QK_CR_27 = QK_CONSUMER_RESERVED_27,
|
||||
QK_CR_28 = QK_CONSUMER_RESERVED_28,
|
||||
QK_CR_29 = QK_CONSUMER_RESERVED_29,
|
||||
QK_CR_30 = QK_CONSUMER_RESERVED_30,
|
||||
QK_CR_31 = QK_CONSUMER_RESERVED_31,
|
||||
QK_CR_32 = QK_CONSUMER_RESERVED_32,
|
||||
QK_CR_33 = QK_CONSUMER_RESERVED_33,
|
||||
QK_CR_34 = QK_CONSUMER_RESERVED_34,
|
||||
QK_CR_35 = QK_CONSUMER_RESERVED_35,
|
||||
QK_CR_36 = QK_CONSUMER_RESERVED_36,
|
||||
QK_CR_37 = QK_CONSUMER_RESERVED_37,
|
||||
QK_CR_38 = QK_CONSUMER_RESERVED_38,
|
||||
QK_CR_39 = QK_CONSUMER_RESERVED_39,
|
||||
QK_CR_40 = QK_CONSUMER_RESERVED_40,
|
||||
QK_CR_41 = QK_CONSUMER_RESERVED_41,
|
||||
QK_CR_42 = QK_CONSUMER_RESERVED_42,
|
||||
QK_CR_43 = QK_CONSUMER_RESERVED_43,
|
||||
QK_CR_44 = QK_CONSUMER_RESERVED_44,
|
||||
QK_CR_45 = QK_CONSUMER_RESERVED_45,
|
||||
QK_CR_46 = QK_CONSUMER_RESERVED_46,
|
||||
QK_CR_47 = QK_CONSUMER_RESERVED_47,
|
||||
QK_CR_48 = QK_CONSUMER_RESERVED_48,
|
||||
QK_CR_49 = QK_CONSUMER_RESERVED_49,
|
||||
QK_CR_50 = QK_CONSUMER_RESERVED_50,
|
||||
QK_CR_51 = QK_CONSUMER_RESERVED_51,
|
||||
};
|
||||
|
||||
// Range Helpers
|
||||
@@ -1518,6 +1622,7 @@ enum qk_keycode_defines {
|
||||
#define IS_QUANTUM_KEYCODE(code) ((code) >= QK_BOOTLOADER && (code) <= QK_LAYER_LOCK)
|
||||
#define IS_KB_KEYCODE(code) ((code) >= QK_KB_0 && (code) <= QK_KB_31)
|
||||
#define IS_USER_KEYCODE(code) ((code) >= QK_USER_0 && (code) <= QK_USER_31)
|
||||
#define IS_CONSUMER_RESERVED_KEYCODE(code) ((code) >= QK_CONSUMER_RESERVED_0 && (code) <= QK_CONSUMER_RESERVED_51)
|
||||
|
||||
// Switch statement Helpers
|
||||
#define INTERNAL_KEYCODE_RANGE KC_NO ... KC_TRANSPARENT
|
||||
@@ -1544,3 +1649,4 @@ enum qk_keycode_defines {
|
||||
#define QUANTUM_KEYCODE_RANGE QK_BOOTLOADER ... QK_LAYER_LOCK
|
||||
#define KB_KEYCODE_RANGE QK_KB_0 ... QK_KB_31
|
||||
#define USER_KEYCODE_RANGE QK_USER_0 ... QK_USER_31
|
||||
#define RESERVED_KEYCODE_RAGE QK_CONSUMER_RESERVED_0 ... QK_CONSUMER_RESERVED_51
|
||||
|
||||
@@ -74,6 +74,9 @@ action_t action_for_keycode(uint16_t keycode) {
|
||||
case CONSUMER_KEYCODE_RANGE:
|
||||
action.code = ACTION_USAGE_CONSUMER(KEYCODE2CONSUMER(keycode));
|
||||
break;
|
||||
case RESERVED_KEYCODE_RAGE:
|
||||
action.code = ACTION_USAGE_CONSUMER(KEYCODE2CONSUMER(keycode));
|
||||
break;
|
||||
#endif
|
||||
case MOUSE_KEYCODE_RANGE:
|
||||
action.code = ACTION_MOUSEKEY(keycode);
|
||||
|
||||
@@ -288,7 +288,7 @@ static inline uint16_t KEYCODE2SYSTEM(uint8_t key) {
|
||||
}
|
||||
|
||||
/* keycode to consumer usage */
|
||||
static inline uint16_t KEYCODE2CONSUMER(uint8_t key) {
|
||||
static inline uint16_t KEYCODE2CONSUMER(uint16_t key) {
|
||||
switch (key) {
|
||||
case KC_AUDIO_MUTE:
|
||||
return AUDIO_MUTE;
|
||||
@@ -344,6 +344,8 @@ static inline uint16_t KEYCODE2CONSUMER(uint8_t key) {
|
||||
return AC_DESKTOP_SHOW_ALL_WINDOWS;
|
||||
case KC_LAUNCHPAD:
|
||||
return AC_SOFT_KEY_LEFT;
|
||||
case RESERVED_KEYCODE_RAGE:
|
||||
return 0x1CC + (key - QK_CONSUMER_RESERVED_0);
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user