@kmamal/sdl
Version:
SDL bindings for Node.js
229 lines (220 loc) • 4.67 kB
JavaScript
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,
}