audio keys

This commit is contained in:
Maxim Devaev 2025-05-01 06:09:45 +03:00
parent ebbd55ee17
commit 63a1933342
7 changed files with 32 additions and 1 deletions

View File

@ -108,7 +108,9 @@ def _parse_usb_key(key: str) -> _UsbKey:
return _UsbKey(code, is_modifier)
def _parse_ps2_key(key: str) -> _Ps2Key:
def _parse_ps2_key(key: str) -> (_Ps2Key | None):
if ":" not in key:
return None
(code_type, raw_code) = key.split(":")
return _Ps2Key(
code=int(raw_code, 16),

View File

@ -148,5 +148,8 @@ void keymapPs2(uint8_t code, Ps2KeyType *ps2_type, uint8_t *ps2_code) {
case 109: *ps2_type = PS2_KEY_TYPE_REG; *ps2_code = 19; return; // KanaMode
case 110: *ps2_type = PS2_KEY_TYPE_REG; *ps2_code = 100; return; // Convert
case 111: *ps2_type = PS2_KEY_TYPE_REG; *ps2_code = 103; return; // NonConvert
case 112: *ps2_type = PS2_KEY_TYPE_SPEC; *ps2_code = 35; return; // AudioVolumeMute
case 113: *ps2_type = PS2_KEY_TYPE_SPEC; *ps2_code = 50; return; // AudioVolumeUp
case 114: *ps2_type = PS2_KEY_TYPE_SPEC; *ps2_code = 33; return; // AudioVolumeDown
}
}

View File

@ -38,7 +38,9 @@ void keymapPs2(uint8_t code, Ps2KeyType *ps2_type, uint8_t *ps2_code) {
switch (code) {
% for km in sorted(keymap, key=operator.attrgetter("mcu_code")):
% if km.ps2_key is not None:
case ${km.mcu_code}: *ps2_type = PS2_KEY_TYPE_${km.ps2_key.type.upper()}; *ps2_code = ${km.ps2_key.code}; return; // ${km.web_name}
% endif
% endfor
}
}

View File

@ -136,6 +136,10 @@ uint8_t keymapUsb(uint8_t code) {
case 109: return 136; // KanaMode
case 110: return 138; // Convert
case 111: return 139; // NonConvert
case 112: return 127; // AudioVolumeMute
case 113: return 128; // AudioVolumeUp
case 114: return 129; // AudioVolumeDown
case 115: return 111; // F20
default: return 0;
}
}

View File

@ -138,6 +138,10 @@ inline u8 ph_usb_keymap(u8 key) {
case 109: return 136; // KanaMode
case 110: return 138; // Convert
case 111: return 139; // NonConvert
case 112: return 127; // AudioVolumeMute
case 113: return 128; // AudioVolumeUp
case 114: return 129; // AudioVolumeDown
case 115: return 111; // F20
}
return 0;
}

View File

@ -110,3 +110,7 @@ IntlRo,KEY_RO,108,0x87,reg:0x51,0x73,
KanaMode,KEY_KATAKANA,109,0x88,reg:0x13,0x70,
Convert,KEY_HENKAN,110,0x8a,reg:0x64,0x79,
NonConvert,KEY_MUHENKAN,111,0x8b,reg:0x67,0x7b,
AudioVolumeMute,KEY_MUTE,112,0x7f,spec:0x23,0xe020,
AudioVolumeUp,KEY_VOLUMEUP,113,0x80,spec:0x32,0xe030,
AudioVolumeDown,KEY_VOLUMEDOWN,114,0x81,spec:0x21,0xe02e,
F20,KEY_F20,115,0x6f,,0x5a,

1 web_name evdev_name mcu_code usb_key ps2_key at1_code x11_names
110 KanaMode KEY_KATAKANA 109 0x88 reg:0x13 0x70
111 Convert KEY_HENKAN 110 0x8a reg:0x64 0x79
112 NonConvert KEY_MUHENKAN 111 0x8b reg:0x67 0x7b
113 AudioVolumeMute KEY_MUTE 112 0x7f spec:0x23 0xe020
114 AudioVolumeUp KEY_VOLUMEUP 113 0x80 spec:0x32 0xe030
115 AudioVolumeDown KEY_VOLUMEDOWN 114 0x81 spec:0x21 0xe02e
116 F20 KEY_F20 115 0x6f 0x5a

View File

@ -155,6 +155,10 @@ KEYMAP: dict[int, Key] = {
ecodes.KEY_KATAKANA: Key(mcu=McuKey(code=109), usb=UsbKey(code=136, is_modifier=False)),
ecodes.KEY_HENKAN: Key(mcu=McuKey(code=110), usb=UsbKey(code=138, is_modifier=False)),
ecodes.KEY_MUHENKAN: Key(mcu=McuKey(code=111), usb=UsbKey(code=139, is_modifier=False)),
ecodes.KEY_MUTE: Key(mcu=McuKey(code=112), usb=UsbKey(code=127, is_modifier=False)),
ecodes.KEY_VOLUMEUP: Key(mcu=McuKey(code=113), usb=UsbKey(code=128, is_modifier=False)),
ecodes.KEY_VOLUMEDOWN: Key(mcu=McuKey(code=114), usb=UsbKey(code=129, is_modifier=False)),
ecodes.KEY_F20: Key(mcu=McuKey(code=115), usb=UsbKey(code=111, is_modifier=False)),
}
@ -270,6 +274,10 @@ WEB_TO_EVDEV = {
"KanaMode": ecodes.KEY_KATAKANA,
"Convert": ecodes.KEY_HENKAN,
"NonConvert": ecodes.KEY_MUHENKAN,
"AudioVolumeMute": ecodes.KEY_MUTE,
"AudioVolumeUp": ecodes.KEY_VOLUMEUP,
"AudioVolumeDown": ecodes.KEY_VOLUMEDOWN,
"F20": ecodes.KEY_F20,
}
@ -562,6 +570,7 @@ AT1_TO_EVDEV = {
86: ecodes.KEY_102ND,
87: ecodes.KEY_F11,
88: ecodes.KEY_F12,
90: ecodes.KEY_F20,
112: ecodes.KEY_KATAKANA,
115: ecodes.KEY_RO,
121: ecodes.KEY_HENKAN,
@ -569,6 +578,9 @@ AT1_TO_EVDEV = {
125: ecodes.KEY_YEN,
57372: ecodes.KEY_KPENTER,
57373: ecodes.KEY_RIGHTCTRL,
57376: ecodes.KEY_MUTE,
57390: ecodes.KEY_VOLUMEDOWN,
57392: ecodes.KEY_VOLUMEUP,
57397: ecodes.KEY_KPSLASH,
57400: ecodes.KEY_RIGHTALT,
57414: ecodes.KEY_PAUSE,