UNPKG

@kmamal/sdl

Version:
229 lines (220 loc) 4.67 kB
const Bindings = require('../bindings') const mapping = { 'A': 'a', 'AC Back': 'back', 'AC Bookmarks': 'bookmarks', 'AC Forward': 'forward', 'AC Home': 'home', 'AC Refresh': 'refresh', 'AC Search': 'search', 'AC Stop': 'stop', 'Again': 'again', 'AltErase': 'altErase', 'App1': 'app1', 'App2': 'app2', 'Application': 'application', 'AudioFastForward': 'audioFastForward', 'AudioMute': 'audioMute', 'AudioNext': 'audioNext', 'AudioPlay': 'audioPlay', 'AudioPrev': 'audioPrev', 'AudioRewind': 'audioRewind', 'AudioStop': 'audioStop', 'B': 'b', 'Backspace': 'backspace', 'BrightnessDown': 'brightnessDown', 'BrightnessUp': 'brightnessUp', 'C': 'c', 'Calculator': 'calculator', 'Cancel': 'cancel', 'CapsLock': 'capsLock', 'Clear / Again': 'clear/again', 'Clear': 'clear', 'Computer': 'computer', 'Copy': 'copy', 'CrSel': 'crSel', 'CurrencySubUnit': 'currencySubUnit', 'CurrencyUnit': 'currencyUnit', 'Cut': 'cut', 'D': 'd', 'DecimalSeparator': 'decimalSeparator', 'Delete': 'delete', 'DisplaySwitch': 'displaySwitch', 'Down': 'down', 'E': 'e', 'Eject': 'eject', 'End': 'end', 'Escape': 'escape', 'Execute': 'execute', 'ExSel': 'exSel', 'F': 'f', 'F1': 'f1', 'F10': 'f10', 'F11': 'f11', 'F12': 'f12', 'F13': 'f13', 'F14': 'f14', 'F15': 'f15', 'F16': 'f16', 'F17': 'f17', 'F18': 'f18', 'F19': 'f19', 'F2': 'f2', 'F20': 'f20', 'F21': 'f21', 'F22': 'f22', 'F23': 'f23', 'F24': 'f24', 'F3': 'f3', 'F4': 'f4', 'F5': 'f5', 'F6': 'f6', 'F7': 'f7', 'F8': 'f8', 'F9': 'f9', 'Find': 'find', 'G': 'g', 'H': 'h', 'Help': 'help', 'Home': 'home', 'I': 'i', 'Insert': 'insert', 'J': 'j', 'K': 'k', 'KBDIllumDown': 'illumDown', 'KBDIllumToggle': 'illumToggle', 'KBDIllumUp': 'illumUp', 'Keypad -': '-', 'Keypad ,': ',', 'Keypad :': ':', 'Keypad !': '!', 'Keypad .': '.', 'Keypad (': '(', 'Keypad )': ')', 'Keypad {': '{', 'Keypad }': '}', 'Keypad @': '@', 'Keypad *': '*', 'Keypad /': '/', 'Keypad &': '&', 'Keypad &&': '&&', 'Keypad #': '#', 'Keypad %': '%', 'Keypad ^': '^', 'Keypad +': '+', 'Keypad +/-': '+/-', 'Keypad <': '<', 'Keypad = (AS400)': '=', 'Keypad =': '=', 'Keypad >': '>', 'Keypad |': '|', 'Keypad ||': '||', 'Keypad 0': '0', 'Keypad 00': '00', 'Keypad 000': '000', 'Keypad 1': '1', 'Keypad 2': '2', 'Keypad 3': '3', 'Keypad 4': '4', 'Keypad 5': '5', 'Keypad 6': '6', 'Keypad 7': '7', 'Keypad 8': '8', 'Keypad 9': '9', 'Keypad A': 'a', 'Keypad B': 'b', 'Keypad Backspace': 'backspace', 'Keypad Binary': 'binary', 'Keypad C': 'c', 'Keypad Clear': 'clear', 'Keypad ClearEntry': 'clearEntry', 'Keypad D': 'd', 'Keypad Decimal': 'decimal', 'Keypad E': 'e', 'Keypad Enter': 'enter', 'Keypad F': 'f', 'Keypad Hexadecimal': 'hexadecimal', 'Keypad MemAdd': 'memAdd', 'Keypad MemClear': 'memClear', 'Keypad MemDivide': 'memDivide', 'Keypad MemMultiply': 'memMultiply', 'Keypad MemRecall': 'memRecall', 'Keypad MemStore': 'memStore', 'Keypad MemSubtract': 'memSubtract', 'Keypad Octal': 'octal', 'Keypad Space': ' ', 'Keypad Tab': 'tab', 'Keypad XOR': 'xor', 'L': 'l', 'Left Alt': 'alt', 'Left Ctrl': 'ctrl', 'Left GUI': 'gui', 'Left Shift': 'shift', 'Left': 'left', 'M': 'm', 'Mail': 'mail', 'MediaSelect': 'mediaSelect', 'Menu': 'menu', 'ModeSwitch': 'modeSwitch', 'Mute': 'mute', 'N': 'n', 'Numlock': 'numlock', 'O': 'o', 'Oper': 'oper', 'Out': 'out', 'P': 'p', 'PageDown': 'pageDown', 'PageUp': 'pageUp', 'Paste': 'paste', 'Pause': 'pause', 'Power': 'power', 'PrintScreen': 'printScreen', 'Prior': 'prior', 'Q': 'q', 'R': 'r', 'Return': 'return', 'Right Alt': 'alt', 'Right Ctrl': 'ctrl', 'Right GUI': 'gUI', 'Right Shift': 'shift', 'Right': 'right', 'S': 's', 'ScrollLock': 'scrollLock', 'Select': 'select', 'Separator': 'separator', 'Sleep': 'sleep', 'Space': 'space', 'Stop': 'stop', 'SysReq': 'sysReq', 'T': 't', 'Tab': 'tab', 'ThousandsSeparator': 'thousandsSeparator', 'U': 'u', 'Undo': 'undo', 'Up': 'up', 'V': 'v', 'VolumeDown': 'volumeDown', 'VolumeUp': 'volumeUp', 'W': 'w', 'WWW': 'www', 'X': 'x', 'Y': 'y', 'Z': 'z', } const reverseMapping = {} for (const [ key, value ] of Object.entries(mapping)) { maybeSkip: { const existing = reverseMapping[value] if (existing === undefined) { break maybeSkip } const keyScancode = Bindings.keyboard_getScancode(key) if (keyScancode === null) { continue } const existingScancode = Bindings.keyboard_getScancode(existing) if (existingScancode === null) { break maybeSkip } if (existingScancode < keyScancode) { continue } } reverseMapping[value] = key } module.exports = { mapping, reverseMapping, }