receiver: add USB scan codes

This commit is contained in:
Peter F. Patel-Schneider 2020-07-05 18:35:08 -04:00
parent 4c683457f9
commit e3788f3d1f
1 changed files with 222 additions and 0 deletions

View File

@ -19,6 +19,7 @@
# Reprogrammable keys information # Reprogrammable keys information
# Mostly from Logitech documentation, but with some edits for better Lunix compatability # Mostly from Logitech documentation, but with some edits for better Lunix compatability
from .common import NamedInt as _NamedInt
from .common import NamedInts as _NamedInts from .common import NamedInts as _NamedInts
# <controls.xml awk -F\" '/<Control /{sub(/^LD_FINFO_(CTRLID_)?/, "", $2);printf("\t%s=0x%04X,\n", $2, $4)}' | sort -t= -k2 # <controls.xml awk -F\" '/<Control /{sub(/^LD_FINFO_(CTRLID_)?/, "", $2);printf("\t%s=0x%04X,\n", $2, $4)}' | sort -t= -k2
@ -595,3 +596,224 @@ DISABLE = _NamedInts(
Win=0x10, # aka Super Win=0x10, # aka Super
) )
DISABLE._fallback = lambda x: 'unknown:%02X' % x DISABLE._fallback = lambda x: 'unknown:%02X' % x
##
## Information for x1c00 Persistent from https://drive.google.com/drive/folders/0BxbRzx7vEV7eWmgwazJ3NUFfQ28
##
KEYMOD = _NamedInts(CTRL=0x01, SHIFT=0x02, ALT=0x04, META=0x08, RCTRL=0x10, RSHIFT=0x20, RALT=0x40, RMETA=0x80)
ACTIONID = _NamedInts(
Empty=0x00,
Key=0x01,
Mouse=0x02,
Xdisp=0x03,
Ydisp=0x04,
Vscroll=0x05,
Hscroll=0x06,
Control=0x07,
Internal=0x08,
Power=0x09
)
MOUSE_BUTTONS = _NamedInts(
Left=0x01,
Right=0x02,
Middle=0x04,
Back=0x08,
Forward=0x10,
)
MOUSE_BUTTONS._fallback = lambda x: 'unknown:%02X' % x
# HID USB Keycodes from https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf
USB_HID_KEYCODES = _NamedInts(
NONE=0x00,
ERR_OVF=0x01,
A=0x04,
B=0x05,
C=0x06,
D=0x07,
E=0x08,
F=0x09,
G=0x0a,
H=0x0b,
I=0x0c,
J=0x0d,
K=0x0e,
L=0x0f,
M=0x10,
N=0x11,
O=0x12,
P=0x13,
Q=0x14,
R=0x15,
S=0x16,
T=0x17,
U=0x18,
V=0x19,
W=0x1a,
X=0x1b,
Y=0x1c,
Z=0x1d,
ENTER=0x28,
ESC=0x29,
BACKSPACE=0x2a,
TAB=0x2b,
SPACE=0x2c,
MINUS=0x2d,
EQUAL=0x2e,
LEFTBRACE=0x2f,
RIGHTBRACE=0x30,
BACKSLASH=0x31,
HASHTILDE=0x32,
SEMICOLON=0x33,
APOSTROPHE=0x34,
GRAVE=0x35,
COMMA=0x36,
DOT=0x37,
SLASH=0x38,
CAPSLOCK=0x39,
F1=0x3a,
F2=0x3b,
F3=0x3c,
F4=0x3d,
F5=0x3e,
F6=0x3f,
F7=0x40,
F8=0x41,
F9=0x42,
F10=0x43,
F11=0x44,
F12=0x45,
SYSRQ=0x46,
SCROLLLOCK=0x47,
PAUSE=0x48,
INSERT=0x49,
HOME=0x4a,
PAGEUP=0x4b,
DELETE=0x4c,
END=0x4d,
PAGEDOWN=0x4e,
RIGHT=0x4f,
LEFT=0x50,
DOWN=0x51,
UP=0x52,
NUMLOCK=0x53,
KPSLASH=0x54,
KPASTERISK=0x55,
KPMINUS=0x56,
KPPLUS=0x57,
KPENTER=0x58,
KP1=0x59,
KP2=0x5a,
KP3=0x5b,
KP4=0x5c,
KP5=0x5d,
KP6=0x5e,
KP7=0x5f,
KP8=0x60,
KP9=0x61,
KP0=0x62,
KPDOT=0x63,
COMPOSE=0x65,
POWER=0x66,
KPEQUAL=0x67,
F13=0x68,
F14=0x69,
F15=0x6a,
F16=0x6b,
F17=0x6c,
F18=0x6d,
F19=0x6e,
F20=0x6f,
F21=0x70,
F22=0x71,
F23=0x72,
F24=0x73,
OPEN=0x74,
HELP=0x75,
PROPS=0x76,
FRONT=0x77,
STOP=0x78,
AGAIN=0x79,
UNDO=0x7a,
CUT=0x7b,
COPY=0x7c,
PASTE=0x7d,
FIND=0x7e,
MUTE=0x7f,
VOLUMEUP=0x80,
VOLUMEDOWN=0x81,
KPCOMMA=0x85,
RO=0x87,
KATAKANAHIRAGANA=0x88,
YEN=0x89,
HENKAN=0x8a,
MUHENKAN=0x8b,
KPJPCOMMA=0x8c,
HANGEUL=0x90,
HANJA=0x91,
KATAKANA=0x92,
HIRAGANA=0x93,
ZENKAKUHANKAKU=0x94,
KPLEFTPAREN=0xb6,
KPRIGHTPAREN=0xb7,
LEFTCTRL=0xe0,
LEFTSHIFT=0xe1,
LEFTALT=0xe2,
LEFTWINDOWS=0xe3,
RIGHTCTRL=0xe4,
RIGHTSHIFT=0xe5,
RIGHTALT=0xe6,
RIGHTMETA=0xe7,
MEDIA_PLAYPAUSE=0xe8,
MEDIA_STOPCD=0xe9,
MEDIA_PREVIOUSSONG=0xea,
MEDIA_NEXTSONG=0xeb,
MEDIA_EJECTCD=0xec,
MEDIA_VOLUMEUP=0xed,
MEDIA_VOLUMEDOWN=0xee,
MEDIA_MUTE=0xef,
MEDIA_WWW=0xf0,
MEDIA_BACK=0xf1,
MEDIA_FORWARD=0xf2,
MEDIA_STOP=0xf3,
MEDIA_FIND=0xf4,
MEDIA_SCROLLUP=0xf5,
MEDIA_SCROLLDOWN=0xf6,
MEDIA_EDIT=0xf7,
MEDIA_SLEEP=0xf8,
MEDIA_COFFEE=0xf9,
MEDIA_REFRESH=0xfa,
MEDIA_CALC=0xfb,
)
USB_HID_KEYCODES[0x1e] = '1'
USB_HID_KEYCODES[0x1f] = '2'
USB_HID_KEYCODES[0x20] = '3'
USB_HID_KEYCODES[0x21] = '4'
USB_HID_KEYCODES[0x22] = '5'
USB_HID_KEYCODES[0x23] = '6'
USB_HID_KEYCODES[0x24] = '7'
USB_HID_KEYCODES[0x25] = '8'
USB_HID_KEYCODES[0x26] = '9'
USB_HID_KEYCODES[0x27] = '0'
USB_HID_KEYCODES[0x64] = '102ND'
# Construct keys plus modifiers
modifiers = {
0x0: '',
0x1: 'Cntrl+',
0x2: 'Shift+',
0x4: 'Alt+',
0x8: 'Meta+',
0x3: 'Cntrl+Shift+',
0x5: 'Cntrl+Alt+',
0x9: 'Cntrl+Meta+',
0x6: 'Shift+Alt+',
0xA: 'Shift+Meta+',
0xC: 'Alt+Meta+'
}
KEYS = []
for val, name in modifiers.items():
for key in USB_HID_KEYCODES:
KEYS.append(_NamedInt((int(key) << 8) + val, name + str(key)))