// This is an open source non-commercial project. Dear PVS-Studio, please check it.
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
// ******************************************************************
// *
// *  This file is part of the Cxbx project.
// *
// *  Cxbx and Cxbe are free software; you can redistribute them
// *  and/or modify them under the terms of the GNU General Public
// *  License as published by the Free Software Foundation; either
// *  version 2 of the license, or (at your option) any later version.
// *
// *  This program is distributed in the hope that it will be useful,
// *  but WITHOUT ANY WARRANTY; without even the implied warranty of
// *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// *  GNU General Public License for more details.
// *
// *  You should have recieved a copy of the GNU General Public License
// *  along with this program; see the file COPYING.
// *  If not, write to the Free Software Foundation, Inc.,
// *  59 Temple Place - Suite 330, Bostom, MA 02111-1307, USA.
// *
// *  (c) 2019 ergo720
// *
// *  All rights reserved
// *
// ******************************************************************

#pragma once

#ifndef DIK_PREVTRACK
// Not defined by MinGW
#define DIK_PREVTRACK 0x90
#endif

{DIK_A, "A"}, { DIK_B, "B" }, { DIK_C, "C" }, { DIK_D, "D" }, { DIK_E, "E" }, { DIK_F, "F" }, { DIK_G, "G" },
{ DIK_H, "H" }, { DIK_I, "I" }, { DIK_J, "J" }, { DIK_K, "K" }, { DIK_L, "L" }, { DIK_M, "M" },
{ DIK_N, "N" }, { DIK_O, "O" }, { DIK_P, "P" }, { DIK_Q, "Q" }, { DIK_R, "R" }, { DIK_S, "S" },
{ DIK_T, "T" }, { DIK_U, "U" }, { DIK_V, "V" }, { DIK_W, "W" }, { DIK_X, "X" }, { DIK_Y, "Y" },
{ DIK_Z, "Z" }, { DIK_0, "0" }, { DIK_1, "1" }, { DIK_2, "2" }, { DIK_3, "3" }, { DIK_4, "4" },
{ DIK_5, "5" }, { DIK_6, "6" }, { DIK_7, "7" }, { DIK_8, "8" }, { DIK_9, "9" }, { DIK_UP, "UP" },
{ DIK_DOWN, "DOWN" }, { DIK_LEFT, "LEFT" }, { DIK_RIGHT, "RIGHT" }, { DIK_ABNT_C1, "ABNT_C1" },
{ DIK_ABNT_C2, "ABNT_C2" }, { DIK_ADD, "ADD" }, { DIK_APOSTROPHE, "APOSTROPHE" }, { DIK_APPS, "APPS" },
{ DIK_AT, "AT" }, { DIK_AX, "AX" }, { DIK_BACK, "BACK" }, { DIK_BACKSLASH, "BACKSLASH" },
{ DIK_CALCULATOR, "CALCULATOR" }, { DIK_CAPITAL, "CAPITAL" }, { DIK_COLON, "COLON" },
{ DIK_COMMA, "COMMA" }, { DIK_CONVERT, "CONVERT" }, { DIK_DECIMAL, "DECIMAL" },
{ DIK_DELETE, "DELETE" }, { DIK_DIVIDE, "DIVIDE" }, { DIK_EQUALS, "EQUALS" }, { DIK_ESCAPE, "ESCAPE" },
{ DIK_F1, "F1" }, { DIK_F2, "F2" }, { DIK_F3, "F3" }, { DIK_F4, "F4" }, { DIK_F5, "F5" }, { DIK_F6, "F6" },
{ DIK_F7, "F7" }, { DIK_F8, "F8" }, { DIK_F9, "F9" }, { DIK_F10, "F10" }, { DIK_F11, "F11" },
{ DIK_F12, "F12" }, { DIK_F13, "F13" }, { DIK_F14, "F14" }, { DIK_F15, "F15" }, { DIK_GRAVE, "GRAVE" },
{ DIK_HOME, "HOME" }, { DIK_END, "END" }, { DIK_INSERT, "INSERT" }, { DIK_KANA, "KANA" },
{ DIK_KANJI, "KANJI" }, { DIK_MAIL, "MAIL" }, { DIK_MEDIASELECT, "MEDIASELECT" },
{ DIK_MEDIASTOP, "MEDIASTOP" }, { DIK_MINUS, "MINUS" }, { DIK_MULTIPLY, "MULTIPLY" },
{ DIK_MUTE, "MUTE" }, { DIK_MYCOMPUTER, "MYCOMPUTER" }, { DIK_NEXTTRACK, "NEXTTRACK" },
{ DIK_NOCONVERT, "NOCONVERT" }, { DIK_NUMLOCK, "NUMLOCK" }, { DIK_NUMPAD0, "NUMPAD0" },
{ DIK_NUMPAD1, "NUMPAD1" }, { DIK_NUMPAD2, "NUMPAD2" }, { DIK_NUMPAD3, "NUMPAD3" },
{ DIK_NUMPAD4, "NUMPAD4" }, { DIK_NUMPAD5, "NUMPAD5" }, { DIK_NUMPAD6, "NUMPAD6" },
{ DIK_NUMPAD7, "NUMPAD7" }, { DIK_NUMPAD8, "NUMPAD8" }, { DIK_NUMPAD9, "NUMPAD9" },
{ DIK_NUMPADCOMMA, "NUMPADCOMMA" }, { DIK_NUMPADENTER, "NUMPADENTER" },
{ DIK_NUMPADEQUALS, "NUMPADEQUALS" }, { DIK_OEM_102, "OEM_102" }, { DIK_PAUSE, "PAUSE" },
{ DIK_PERIOD, "PERIOD" }, { DIK_PLAYPAUSE, "PLAYPAUSE" }, { DIK_POWER, "POWER" },
{ DIK_PREVTRACK, "PREVTRACK" }, { DIK_PRIOR, "PRIOR" }, { DIK_NEXT, "NEXT" }, { DIK_RETURN, "RETURN" },
{ DIK_LBRACKET, "LBRACKET" }, { DIK_RBRACKET, "RBRACKET" }, { DIK_LCONTROL, "LCONTROL" },
{ DIK_RCONTROL, "RCONTROL" }, { DIK_LMENU, "LMENU" }, { DIK_RMENU, "RMENU" }, { DIK_LSHIFT, "LSHIFT" },
{ DIK_RSHIFT, "RSHIFT" }, { DIK_LWIN, "LWIN" }, { DIK_RWIN, "RWIN" }, { DIK_SCROLL, "SCROLL" },
{ DIK_SEMICOLON, "SEMICOLON" }, { DIK_SLASH, "SLASH" }, { DIK_SLEEP, "SLEEP" }, { DIK_SPACE, "SPACE" },
{ DIK_STOP, "STOP" }, { DIK_SUBTRACT, "SUBTRACT" }, { DIK_SYSRQ, "SYSRQ" }, { DIK_TAB, "TAB" },
{ DIK_UNDERLINE, "UNDERLINE" }, { DIK_UNLABELED, "UNLABELED" }, { DIK_VOLUMEDOWN, "VOLUMEDOWN" },
{ DIK_VOLUMEUP, "VOLUMEUP" }, { DIK_WAKE, "WAKE" }, { DIK_WEBBACK, "WEBBACK" },
{ DIK_WEBFAVORITES, "WEBFAVORITES" }, { DIK_WEBFORWARD, "WEBFORWARD" }, { DIK_WEBHOME, "WEBHOME" },
{ DIK_WEBREFRESH, "WEBREFRESH" }, { DIK_WEBSEARCH, "WEBSEARCH" }, { DIK_WEBSTOP, "WEBSTOP" },
{ DIK_YEN, "YEN" },

// Sdl keyboard key codes I have prepared when, in the future, we'll use sdl to handle the keyboard
/*
{ "0", SDL_SCANCODE_0 },
{ "1", SDL_SCANCODE_1 },
{ "2", SDL_SCANCODE_2 },
{ "3", SDL_SCANCODE_3 },
{ "4", SDL_SCANCODE_4 },
{ "5", SDL_SCANCODE_5 },
{ "6", SDL_SCANCODE_6 },
{ "7", SDL_SCANCODE_7 },
{ "8", SDL_SCANCODE_8 },
{ "9", SDL_SCANCODE_9 },
{ "A", SDL_SCANCODE_A },
{ "AC Back", SDL_SCANCODE_AC_BACK },
{ "AC Bookmarks", SDL_SCANCODE_AC_BOOKMARKS },
{ "AC Forward", SDL_SCANCODE_AC_FORWARD },
{ "AC Home", SDL_SCANCODE_AC_HOME },
{ "AC Refresh",	SDL_SCANCODE_AC_REFRESH },
{ "AC Search", SDL_SCANCODE_AC_SEARCH },
{ "AC Stop", SDL_SCANCODE_AC_STOP },
{ "Again", SDL_SCANCODE_AGAIN },
{ "AltErase", SDL_SCANCODE_ALTERASE },
{ "'", SDL_SCANCODE_APOSTROPHE },
{ "Application", SDL_SCANCODE_APPLICATION },
{ "AudioMute", SDL_SCANCODE_AUDIOMUTE },
{ "AudioNext", SDL_SCANCODE_AUDIONEXT },
{ "AudioPlay", SDL_SCANCODE_AUDIOPLAY },
{ "AudioPrev", SDL_SCANCODE_AUDIOPREV },
{ "AudioStop", SDL_SCANCODE_AUDIOSTOP },
{ "B", SDL_SCANCODE_B },
{ "\\", SDL_SCANCODE_BACKSLASH },
{ "Backspace", SDL_SCANCODE_BACKSPACE },
{ "BrightnessDown",	SDL_SCANCODE_BRIGHTNESSDOWN },
{ "BrightnessUp", SDL_SCANCODE_BRIGHTNESSUP },
{ "C", SDL_SCANCODE_C },
{ "Calculator",	SDL_SCANCODE_CALCULATOR },
{ "Cancel",	SDL_SCANCODE_CANCEL },
{ "CapsLock", SDL_SCANCODE_CAPSLOCK },
{ "Clear",	SDL_SCANCODE_CLEAR },
{ "ClearAgain",	SDL_SCANCODE_CLEARAGAIN },
{ ",", SDL_SCANCODE_COMMA },
{ "Computer", SDL_SCANCODE_COMPUTER },
{ "Copy", SDL_SCANCODE_COPY },
{ "CrSel", SDL_SCANCODE_CRSEL },
{ "MoneySubUnit", SDL_SCANCODE_CURRENCYSUBUNIT },
{ "MoneyUnit", SDL_SCANCODE_CURRENCYUNIT },
{ "Cut", SDL_SCANCODE_CUT },
{ "D", SDL_SCANCODE_D },
{ "DecimalSep", SDL_SCANCODE_DECIMALSEPARATOR },
{ "Delete",	SDL_SCANCODE_DELETE },
{ "DisplaySwitch", SDL_SCANCODE_DISPLAYSWITCH },
{ "Down", SDL_SCANCODE_DOWN },
{ "E",	SDL_SCANCODE_E },
{ "Eject", SDL_SCANCODE_EJECT },
{ "End", SDL_SCANCODE_END },
{ "=", SDL_SCANCODE_EQUALS },
{ "Escape", SDL_SCANCODE_ESCAPE },
{ "Execute", SDL_SCANCODE_EXECUTE },
{ "ExSel", SDL_SCANCODE_EXSEL },
{ "F", SDL_SCANCODE_F },
{ "F1",	SDL_SCANCODE_F1 },
{ "F10", SDL_SCANCODE_F10 },
{ "F11", SDL_SCANCODE_F11 },
{ "F12", SDL_SCANCODE_F12 },
{ "F13", SDL_SCANCODE_F13 },
{ "F14", SDL_SCANCODE_F14 },
{ "F15", SDL_SCANCODE_F15 },
{ "F16", SDL_SCANCODE_F16 },
{ "F17", SDL_SCANCODE_F17 },
{ "F18", SDL_SCANCODE_F18 },
{ "F19", SDL_SCANCODE_F19 },
{ "F2",	SDL_SCANCODE_F2 },
{ "F20", SDL_SCANCODE_F20 },
{ "F21", SDL_SCANCODE_F21 },
{ "F22", SDL_SCANCODE_F22 },
{ "F23", SDL_SCANCODE_F23 },
{ "F24", SDL_SCANCODE_F24 },
{ "F3",	SDL_SCANCODE_F3 },
{ "F4",	SDL_SCANCODE_F4 },
{ "F5",	SDL_SCANCODE_F5 },
{ "F6",	SDL_SCANCODE_F6 },
{ "F7",	SDL_SCANCODE_F7 },
{ "F8",	SDL_SCANCODE_F8 },
{ "F9",	SDL_SCANCODE_F9 },
{ "Find", SDL_SCANCODE_FIND },
{ "G", SDL_SCANCODE_G },
{ "`", SDL_SCANCODE_GRAVE },
{ "H", SDL_SCANCODE_H },
{ "Help", SDL_SCANCODE_HELP },
{ "Home", SDL_SCANCODE_HOME },
{ "I", SDL_SCANCODE_I },
{ "Insert", SDL_SCANCODE_INSERT },
{ "J", SDL_SCANCODE_J },
{ "K", SDL_SCANCODE_K },
{ "KBDIllumDown", SDL_SCANCODE_KBDILLUMDOWN },
{ "KBDIllumToggle",	SDL_SCANCODE_KBDILLUMTOGGLE },
{ "KBDIllumUp", SDL_SCANCODE_KBDILLUMUP },
{ "KP 0", SDL_SCANCODE_KP_0 },
{ "KP 00", SDL_SCANCODE_KP_00 },
{ "KP 000",	SDL_SCANCODE_KP_000 },
{ "KP 1", SDL_SCANCODE_KP_1 },
{ "KP 2", SDL_SCANCODE_KP_2 },
{ "KP 3", SDL_SCANCODE_KP_3 },
{ "KP 4", SDL_SCANCODE_KP_4 },
{ "KP 5", SDL_SCANCODE_KP_5 },
{ "KP 6", SDL_SCANCODE_KP_6 },
{ "KP 7", SDL_SCANCODE_KP_7 },
{ "KP 8", SDL_SCANCODE_KP_8 },
{ "KP 9", SDL_SCANCODE_KP_9 },
{ "KP A", SDL_SCANCODE_KP_A },
{ "KP &", SDL_SCANCODE_KP_AMPERSAND },
{ "KP @", SDL_SCANCODE_KP_AT },
{ "KP B", SDL_SCANCODE_KP_B },
{ "KP Backspace", SDL_SCANCODE_KP_BACKSPACE },
{ "KP Binary", SDL_SCANCODE_KP_BINARY },
{ "KP C", SDL_SCANCODE_KP_C },
{ "KP Clear", SDL_SCANCODE_KP_CLEAR },
{ "KP ClearEntry", SDL_SCANCODE_KP_CLEARENTRY },
{ "KP :", SDL_SCANCODE_KP_COLON },
{ "KP ,", SDL_SCANCODE_KP_COMMA },
{ "KP D", SDL_SCANCODE_KP_D },
{ "KP &&", SDL_SCANCODE_KP_DBLAMPERSAND },
{ "KP ||", SDL_SCANCODE_KP_DBLVERTICALBAR },
{ "KP Decimal", SDL_SCANCODE_KP_DECIMAL },
{ "KP /", SDL_SCANCODE_KP_DIVIDE },
{ "KP E", SDL_SCANCODE_KP_E },
{ "KP Enter", SDL_SCANCODE_KP_ENTER },
{ "KP =",SDL_SCANCODE_KP_EQUALS },
{ "KP = (AS400)", SDL_SCANCODE_KP_EQUALSAS400 },
{ "KP !", SDL_SCANCODE_KP_EXCLAM },
{ "KP F", SDL_SCANCODE_KP_F },
{ "KP >", SDL_SCANCODE_KP_GREATER },
{ "KP #", SDL_SCANCODE_KP_HASH },
{ "KP Hex", SDL_SCANCODE_KP_HEXADECIMAL },
{ "KP {", SDL_SCANCODE_KP_LEFTBRACE },
{ "KP (", SDL_SCANCODE_KP_LEFTPAREN },
{ "KP <", SDL_SCANCODE_KP_LESS },
{ "KP Add", SDL_SCANCODE_KP_MEMADD },
{ "KP Clear", SDL_SCANCODE_KP_MEMCLEAR },
{ "KP Divide", SDL_SCANCODE_KP_MEMDIVIDE },
{ "KP Multiply", SDL_SCANCODE_KP_MEMMULTIPLY },
{ "KP Recall", SDL_SCANCODE_KP_MEMRECALL },
{ "KP Store", SDL_SCANCODE_KP_MEMSTORE },
{ "KP Subtract", SDL_SCANCODE_KP_MEMSUBTRACT },
{ "KP -", SDL_SCANCODE_KP_MINUS },
{ "KP *", SDL_SCANCODE_KP_MULTIPLY },
{ "KP Octal", SDL_SCANCODE_KP_OCTAL },
{ "KP %", SDL_SCANCODE_KP_PERCENT },
{ "KP .", SDL_SCANCODE_KP_PERIOD },
{ "KP +", SDL_SCANCODE_KP_PLUS },
{ "KP +/-", SDL_SCANCODE_KP_PLUSMINUS },
{ "KP ^", SDL_SCANCODE_KP_POWER },
{ "KP }", SDL_SCANCODE_KP_RIGHTBRACE },
{ "KP )", SDL_SCANCODE_KP_RIGHTPAREN },
{ "KP Space", SDL_SCANCODE_KP_SPACE },
{ "KP Tab", SDL_SCANCODE_KP_TAB },
{ "KP |", SDL_SCANCODE_KP_VERTICALBAR },
{ "KP XOR", SDL_SCANCODE_KP_XOR },
{ "L", SDL_SCANCODE_L },
{ "Left Alt", SDL_SCANCODE_LALT },
{ "Left Ctrl", SDL_SCANCODE_LCTRL },
{ "Left", SDL_SCANCODE_LEFT },
{ "[", SDL_SCANCODE_LEFTBRACKET },
{ "Left GUI", SDL_SCANCODE_LGUI },
{ "Left Shift",	SDL_SCANCODE_LSHIFT },
{ "M", SDL_SCANCODE_M },
{ "Mail", SDL_SCANCODE_MAIL },
{ "MediaSelect", SDL_SCANCODE_MEDIASELECT },
{ "Menu", SDL_SCANCODE_MENU },
{ "-", SDL_SCANCODE_MINUS },
{ "ModeSwitch", SDL_SCANCODE_MODE },
{ "Mute", SDL_SCANCODE_MUTE },
{ "N", SDL_SCANCODE_N },
{ "Numlock", SDL_SCANCODE_NUMLOCKCLEAR },
{ "O", SDL_SCANCODE_O },
{ "Oper", SDL_SCANCODE_OPER },
{ "Out", SDL_SCANCODE_OUT },
{ "P", SDL_SCANCODE_P },
{ "PageDown", SDL_SCANCODE_PAGEDOWN },
{ "PageUp",	SDL_SCANCODE_PAGEUP },
{ "Paste", SDL_SCANCODE_PASTE },
{ "Pause", SDL_SCANCODE_PAUSE },
{ ".", SDL_SCANCODE_PERIOD },
{ "Power", SDL_SCANCODE_POWER },
{ "PrintScreen", SDL_SCANCODE_PRINTSCREEN },
{ "Prior", SDL_SCANCODE_PRIOR },
{ "Q", SDL_SCANCODE_Q },
{ "R", SDL_SCANCODE_R },
{ "Right Alt", SDL_SCANCODE_RALT },
{ "Right Ctrl",	SDL_SCANCODE_RCTRL },
{ "Return", SDL_SCANCODE_RETURN },
{ "Return",	SDL_SCANCODE_RETURN2 },
{ "Right GUI", SDL_SCANCODE_RGUI },
{ "Right", SDL_SCANCODE_RIGHT },
{ "]", SDL_SCANCODE_RIGHTBRACKET },
{ "Right Shift", SDL_SCANCODE_RSHIFT },
{ "S", SDL_SCANCODE_S },
{ "ScrollLock",	SDL_SCANCODE_SCROLLLOCK },
{ "Select",	SDL_SCANCODE_SELECT },
{ ";", SDL_SCANCODE_SEMICOLON },
{ "Separator", SDL_SCANCODE_SEPARATOR },
{ "/", SDL_SCANCODE_SLASH },
{ "Sleep", SDL_SCANCODE_SLEEP },
{ "Space", SDL_SCANCODE_SPACE },
{ "Stop", SDL_SCANCODE_STOP },
{ "SysReq", SDL_SCANCODE_SYSREQ },
{ "T", SDL_SCANCODE_T },
{ "Tab", SDL_SCANCODE_TAB },
{ "ThousandsSep", SDL_SCANCODE_THOUSANDSSEPARATOR },
{ "U", SDL_SCANCODE_U },
{ "Undo", SDL_SCANCODE_UNDO },
{ "", SDL_SCANCODE_UNKNOWN },
{ "Up", SDL_SCANCODE_UP },
{ "V", SDL_SCANCODE_V },
{ "VolumeDown",	SDL_SCANCODE_VOLUMEDOWN },
{ "VolumeUp", SDL_SCANCODE_VOLUMEUP },
{ "W", SDL_SCANCODE_W },
{ "WWW", SDL_SCANCODE_WWW },
{ "X", SDL_SCANCODE_X },
{ "Y", SDL_SCANCODE_Y },
{ "Z", SDL_SCANCODE_Z },
{ "International1", SDL_SCANCODE_INTERNATIONAL1 },
{ "International2", SDL_SCANCODE_INTERNATIONAL2 },
{ "International3", SDL_SCANCODE_INTERNATIONAL3 },
{ "International4", SDL_SCANCODE_INTERNATIONAL4 },
{ "International5", SDL_SCANCODE_INTERNATIONAL5 },
{ "International6", SDL_SCANCODE_INTERNATIONAL6 },
{ "International7", SDL_SCANCODE_INTERNATIONAL7 },
{ "International8", SDL_SCANCODE_INTERNATIONAL8 },
{ "International9", SDL_SCANCODE_INTERNATIONAL9 },
{ "Lang1", SDL_SCANCODE_LANG1 },
{ "Lang2", SDL_SCANCODE_LANG2 },
{ "Lang3", SDL_SCANCODE_LANG3 },
{ "Lang4", SDL_SCANCODE_LANG4 },
{ "Lang5", SDL_SCANCODE_LANG5 },
{ "Lang6", SDL_SCANCODE_LANG6 },
{ "Lang7", SDL_SCANCODE_LANG7 },
{ "Lang8", SDL_SCANCODE_LANG8 },
{ "Lang9", SDL_SCANCODE_LANG9 },
//{ "Caps Lk", SDL_SCANCODE_LOCKINGCAPSLOCK },
//{ "Num Lk", SDL_SCANCODE_LOCKINGNUMLOCK },
//{ "Scr Lk", SDL_SCANCODE_LOCKINGSCROLLLOCK },
{ "NonUsBacklash", SDL_SCANCODE_NONUSBACKSLASH },
{ "NonUsHash", SDL_SCANCODE_NONUSHASH },
*/
