node-sdl2
Version:
Bindings for SDL2 in Node
314 lines (310 loc) • 8.83 kB
JavaScript
var FFI = require('ffi')
var ArrayType = require('ref-array')
var Struct = require('ref-struct')
var Union = require('ref-union');
var ref = require('ref')
var SDL_keycode_lib = require('./SDL_keycode')
var SDL_stdinc_lib = require('./SDL_stdinc')
var SDL_video_lib = require('./SDL_video')
var SDL_rect_lib = require('./SDL_rect')
var SDL_Scancode = exports.SDL_Scancode = {
SDL_SCANCODE_UNKNOWN: 0,
SDL_SCANCODE_A: 4,
SDL_SCANCODE_B: 5,
SDL_SCANCODE_C: 6,
SDL_SCANCODE_D: 7,
SDL_SCANCODE_E: 8,
SDL_SCANCODE_F: 9,
SDL_SCANCODE_G: 10,
SDL_SCANCODE_H: 11,
SDL_SCANCODE_I: 12,
SDL_SCANCODE_J: 13,
SDL_SCANCODE_K: 14,
SDL_SCANCODE_L: 15,
SDL_SCANCODE_M: 16,
SDL_SCANCODE_N: 17,
SDL_SCANCODE_O: 18,
SDL_SCANCODE_P: 19,
SDL_SCANCODE_Q: 20,
SDL_SCANCODE_R: 21,
SDL_SCANCODE_S: 22,
SDL_SCANCODE_T: 23,
SDL_SCANCODE_U: 24,
SDL_SCANCODE_V: 25,
SDL_SCANCODE_W: 26,
SDL_SCANCODE_X: 27,
SDL_SCANCODE_Y: 28,
SDL_SCANCODE_Z: 29,
SDL_SCANCODE_1: 30,
SDL_SCANCODE_2: 31,
SDL_SCANCODE_3: 32,
SDL_SCANCODE_4: 33,
SDL_SCANCODE_5: 34,
SDL_SCANCODE_6: 35,
SDL_SCANCODE_7: 36,
SDL_SCANCODE_8: 37,
SDL_SCANCODE_9: 38,
SDL_SCANCODE_0: 39,
SDL_SCANCODE_RETURN: 40,
SDL_SCANCODE_ESCAPE: 41,
SDL_SCANCODE_BACKSPACE: 42,
SDL_SCANCODE_TAB: 43,
SDL_SCANCODE_SPACE: 44,
SDL_SCANCODE_MINUS: 45,
SDL_SCANCODE_EQUALS: 46,
SDL_SCANCODE_LEFTBRACKET: 47,
SDL_SCANCODE_RIGHTBRACKET: 48,
SDL_SCANCODE_BACKSLASH: 49,
SDL_SCANCODE_NONUSHASH: 50,
SDL_SCANCODE_SEMICOLON: 51,
SDL_SCANCODE_APOSTROPHE: 52,
SDL_SCANCODE_GRAVE: 53,
SDL_SCANCODE_COMMA: 54,
SDL_SCANCODE_PERIOD: 55,
SDL_SCANCODE_SLASH: 56,
SDL_SCANCODE_CAPSLOCK: 57,
SDL_SCANCODE_F1: 58,
SDL_SCANCODE_F2: 59,
SDL_SCANCODE_F3: 60,
SDL_SCANCODE_F4: 61,
SDL_SCANCODE_F5: 62,
SDL_SCANCODE_F6: 63,
SDL_SCANCODE_F7: 64,
SDL_SCANCODE_F8: 65,
SDL_SCANCODE_F9: 66,
SDL_SCANCODE_F10: 67,
SDL_SCANCODE_F11: 68,
SDL_SCANCODE_F12: 69,
SDL_SCANCODE_PRINTSCREEN: 70,
SDL_SCANCODE_SCROLLLOCK: 71,
SDL_SCANCODE_PAUSE: 72,
SDL_SCANCODE_INSERT: 73,
SDL_SCANCODE_HOME: 74,
SDL_SCANCODE_PAGEUP: 75,
SDL_SCANCODE_DELETE: 76,
SDL_SCANCODE_END: 77,
SDL_SCANCODE_PAGEDOWN: 78,
SDL_SCANCODE_RIGHT: 79,
SDL_SCANCODE_LEFT: 80,
SDL_SCANCODE_DOWN: 81,
SDL_SCANCODE_UP: 82,
SDL_SCANCODE_NUMLOCKCLEAR: 83,
SDL_SCANCODE_KP_DIVIDE: 84,
SDL_SCANCODE_KP_MULTIPLY: 85,
SDL_SCANCODE_KP_MINUS: 86,
SDL_SCANCODE_KP_PLUS: 87,
SDL_SCANCODE_KP_ENTER: 88,
SDL_SCANCODE_KP_1: 89,
SDL_SCANCODE_KP_2: 90,
SDL_SCANCODE_KP_3: 91,
SDL_SCANCODE_KP_4: 92,
SDL_SCANCODE_KP_5: 93,
SDL_SCANCODE_KP_6: 94,
SDL_SCANCODE_KP_7: 95,
SDL_SCANCODE_KP_8: 96,
SDL_SCANCODE_KP_9: 97,
SDL_SCANCODE_KP_0: 98,
SDL_SCANCODE_KP_PERIOD: 99,
SDL_SCANCODE_NONUSBACKSLASH: 100,
SDL_SCANCODE_APPLICATION: 101,
SDL_SCANCODE_POWER: 102,
SDL_SCANCODE_KP_EQUALS: 103,
SDL_SCANCODE_F13: 104,
SDL_SCANCODE_F14: 105,
SDL_SCANCODE_F15: 106,
SDL_SCANCODE_F16: 107,
SDL_SCANCODE_F17: 108,
SDL_SCANCODE_F18: 109,
SDL_SCANCODE_F19: 110,
SDL_SCANCODE_F20: 111,
SDL_SCANCODE_F21: 112,
SDL_SCANCODE_F22: 113,
SDL_SCANCODE_F23: 114,
SDL_SCANCODE_F24: 115,
SDL_SCANCODE_EXECUTE: 116,
SDL_SCANCODE_HELP: 117,
SDL_SCANCODE_MENU: 118,
SDL_SCANCODE_SELECT: 119,
SDL_SCANCODE_STOP: 120,
SDL_SCANCODE_AGAIN: 121,
SDL_SCANCODE_UNDO: 122,
SDL_SCANCODE_CUT: 123,
SDL_SCANCODE_COPY: 124,
SDL_SCANCODE_PASTE: 125,
SDL_SCANCODE_FIND: 126,
SDL_SCANCODE_MUTE: 127,
SDL_SCANCODE_VOLUMEUP: 128,
SDL_SCANCODE_VOLUMEDOWN: 129,
SDL_SCANCODE_KP_COMMA: 133,
SDL_SCANCODE_KP_EQUALSAS400: 134,
SDL_SCANCODE_INTERNATIONAL1: 135,
SDL_SCANCODE_INTERNATIONAL2: 136,
SDL_SCANCODE_INTERNATIONAL3: 137,
SDL_SCANCODE_INTERNATIONAL4: 138,
SDL_SCANCODE_INTERNATIONAL5: 139,
SDL_SCANCODE_INTERNATIONAL6: 140,
SDL_SCANCODE_INTERNATIONAL7: 141,
SDL_SCANCODE_INTERNATIONAL8: 142,
SDL_SCANCODE_INTERNATIONAL9: 143,
SDL_SCANCODE_LANG1: 144,
SDL_SCANCODE_LANG2: 145,
SDL_SCANCODE_LANG3: 146,
SDL_SCANCODE_LANG4: 147,
SDL_SCANCODE_LANG5: 148,
SDL_SCANCODE_LANG6: 149,
SDL_SCANCODE_LANG7: 150,
SDL_SCANCODE_LANG8: 151,
SDL_SCANCODE_LANG9: 152,
SDL_SCANCODE_ALTERASE: 153,
SDL_SCANCODE_SYSREQ: 154,
SDL_SCANCODE_CANCEL: 155,
SDL_SCANCODE_CLEAR: 156,
SDL_SCANCODE_PRIOR: 157,
SDL_SCANCODE_RETURN2: 158,
SDL_SCANCODE_SEPARATOR: 159,
SDL_SCANCODE_OUT: 160,
SDL_SCANCODE_OPER: 161,
SDL_SCANCODE_CLEARAGAIN: 162,
SDL_SCANCODE_CRSEL: 163,
SDL_SCANCODE_EXSEL: 164,
SDL_SCANCODE_KP_00: 176,
SDL_SCANCODE_KP_000: 177,
SDL_SCANCODE_THOUSANDSSEPARATOR: 178,
SDL_SCANCODE_DECIMALSEPARATOR: 179,
SDL_SCANCODE_CURRENCYUNIT: 180,
SDL_SCANCODE_CURRENCYSUBUNIT: 181,
SDL_SCANCODE_KP_LEFTPAREN: 182,
SDL_SCANCODE_KP_RIGHTPAREN: 183,
SDL_SCANCODE_KP_LEFTBRACE: 184,
SDL_SCANCODE_KP_RIGHTBRACE: 185,
SDL_SCANCODE_KP_TAB: 186,
SDL_SCANCODE_KP_BACKSPACE: 187,
SDL_SCANCODE_KP_A: 188,
SDL_SCANCODE_KP_B: 189,
SDL_SCANCODE_KP_C: 190,
SDL_SCANCODE_KP_D: 191,
SDL_SCANCODE_KP_E: 192,
SDL_SCANCODE_KP_F: 193,
SDL_SCANCODE_KP_XOR: 194,
SDL_SCANCODE_KP_POWER: 195,
SDL_SCANCODE_KP_PERCENT: 196,
SDL_SCANCODE_KP_LESS: 197,
SDL_SCANCODE_KP_GREATER: 198,
SDL_SCANCODE_KP_AMPERSAND: 199,
SDL_SCANCODE_KP_DBLAMPERSAND: 200,
SDL_SCANCODE_KP_VERTICALBAR: 201,
SDL_SCANCODE_KP_DBLVERTICALBAR: 202,
SDL_SCANCODE_KP_COLON: 203,
SDL_SCANCODE_KP_HASH: 204,
SDL_SCANCODE_KP_SPACE: 205,
SDL_SCANCODE_KP_AT: 206,
SDL_SCANCODE_KP_EXCLAM: 207,
SDL_SCANCODE_KP_MEMSTORE: 208,
SDL_SCANCODE_KP_MEMRECALL: 209,
SDL_SCANCODE_KP_MEMCLEAR: 210,
SDL_SCANCODE_KP_MEMADD: 211,
SDL_SCANCODE_KP_MEMSUBTRACT: 212,
SDL_SCANCODE_KP_MEMMULTIPLY: 213,
SDL_SCANCODE_KP_MEMDIVIDE: 214,
SDL_SCANCODE_KP_PLUSMINUS: 215,
SDL_SCANCODE_KP_CLEAR: 216,
SDL_SCANCODE_KP_CLEARENTRY: 217,
SDL_SCANCODE_KP_BINARY: 218,
SDL_SCANCODE_KP_OCTAL: 219,
SDL_SCANCODE_KP_DECIMAL: 220,
SDL_SCANCODE_KP_HEXADECIMAL: 221,
SDL_SCANCODE_LCTRL: 224,
SDL_SCANCODE_LSHIFT: 225,
SDL_SCANCODE_LALT: 226,
SDL_SCANCODE_LGUI: 227,
SDL_SCANCODE_RCTRL: 228,
SDL_SCANCODE_RSHIFT: 229,
SDL_SCANCODE_RALT: 230,
SDL_SCANCODE_RGUI: 231,
SDL_SCANCODE_MODE: 257,
SDL_SCANCODE_AUDIONEXT: 258,
SDL_SCANCODE_AUDIOPREV: 259,
SDL_SCANCODE_AUDIOSTOP: 260,
SDL_SCANCODE_AUDIOPLAY: 261,
SDL_SCANCODE_AUDIOMUTE: 262,
SDL_SCANCODE_MEDIASELECT: 263,
SDL_SCANCODE_WWW: 264,
SDL_SCANCODE_MAIL: 265,
SDL_SCANCODE_CALCULATOR: 266,
SDL_SCANCODE_COMPUTER: 267,
SDL_SCANCODE_AC_SEARCH: 268,
SDL_SCANCODE_AC_HOME: 269,
SDL_SCANCODE_AC_BACK: 270,
SDL_SCANCODE_AC_FORWARD: 271,
SDL_SCANCODE_AC_STOP: 272,
SDL_SCANCODE_AC_REFRESH: 273,
SDL_SCANCODE_AC_BOOKMARKS: 274,
SDL_SCANCODE_BRIGHTNESSDOWN: 275,
SDL_SCANCODE_BRIGHTNESSUP: 276,
SDL_SCANCODE_DISPLAYSWITCH: 277,
SDL_SCANCODE_KBDILLUMTOGGLE: 278,
SDL_SCANCODE_KBDILLUMDOWN: 279,
SDL_SCANCODE_KBDILLUMUP: 280,
SDL_SCANCODE_EJECT: 281,
SDL_SCANCODE_SLEEP: 282,
SDL_SCANCODE_APP1: 283,
SDL_SCANCODE_APP2: 284,
SDL_NUM_SCANCODES: 512,
}
var SDL_Keymod = exports.SDL_Keymod = {
KMOD_NONE: 0,
KMOD_LSHIFT: 1,
KMOD_RSHIFT: 2,
KMOD_LCTRL: 64,
KMOD_RCTRL: 128,
KMOD_LALT: 256,
KMOD_RALT: 512,
KMOD_LGUI: 1024,
KMOD_RGUI: 2048,
KMOD_NUM: 4096,
KMOD_CAPS: 8192,
KMOD_MODE: 16384,
KMOD_RESERVED: 32768,
}
var SDL_bool = exports.SDL_bool = {
SDL_FALSE: 0,
SDL_TRUE: 1,
}
var voit = exports.voit = ref.types.void
var uint32 = exports.uint32 = ref.types.uint32
var SDL_Keycode = SDL_keycode_lib.SDL_Keycode
var Uint16 = SDL_stdinc_lib.Uint16
var Uint32 = SDL_stdinc_lib.Uint32
var SDL_Keysym = exports.SDL_Keysym = Struct({
scancode: uint32,
sym: SDL_Keycode,
mod: Uint16,
unused: Uint32,
})
var SDL_Window = SDL_video_lib.SDL_Window
var SDL_Window_ptr = exports.SDL_Window_ptr = ref.refType(SDL_Window)
var Uint8 = SDL_stdinc_lib.Uint8
var Uint8_ptr = exports.Uint8_ptr = ref.refType(Uint8)
var int32 = exports.int32 = ref.types.int32
var int32_ptr = exports.int32_ptr = ref.refType(int32)
var string = exports.string = ref.types.CString
var SDL_Rect = SDL_rect_lib.SDL_Rect
var SDL_Rect_ptr = exports.SDL_Rect_ptr = ref.refType(SDL_Rect)
FFI.Library(process.platform == 'win32' ? 'SDL2' : 'libSDL2', {
SDL_GetKeyboardFocus: [ SDL_Window_ptr, [ ] ],
SDL_GetKeyboardState: [ Uint8_ptr, [ int32_ptr, ] ],
SDL_GetModState: [ uint32, [ ] ],
SDL_SetModState: [ voit, [ uint32, ] ],
SDL_GetKeyFromScancode: [ SDL_Keycode, [ uint32, ] ],
SDL_GetScancodeFromKey: [ uint32, [ SDL_Keycode, ] ],
SDL_GetScancodeName: [ string, [ uint32, ] ],
SDL_GetScancodeFromName: [ uint32, [ string, ] ],
SDL_GetKeyName: [ string, [ SDL_Keycode, ] ],
SDL_GetKeyFromName: [ SDL_Keycode, [ string, ] ],
SDL_StartTextInput: [ voit, [ ] ],
SDL_IsTextInputActive: [ uint32, [ ] ],
SDL_StopTextInput: [ voit, [ ] ],
SDL_SetTextInputRect: [ voit, [ SDL_Rect_ptr, ] ],
SDL_HasScreenKeyboardSupport: [ uint32, [ ] ],
SDL_IsScreenKeyboardShown: [ uint32, [ SDL_Window_ptr, ] ],
}, exports)