#pragma once
#include "common/types.h"

// Generic scan code system
enum GenScanCode : u8
{
  GenScanCode_None,

  GenScanCode_Escape,
  GenScanCode_F1,
  GenScanCode_F2,
  GenScanCode_F3,
  GenScanCode_F4,
  GenScanCode_F5,
  GenScanCode_F6,
  GenScanCode_F7,
  GenScanCode_F8,
  GenScanCode_F9,
  GenScanCode_F10,
  GenScanCode_F11,
  GenScanCode_F12,
  GenScanCode_Backtick,
  GenScanCode_1,
  GenScanCode_2,
  GenScanCode_3,
  GenScanCode_4,
  GenScanCode_5,
  GenScanCode_6,
  GenScanCode_7,
  GenScanCode_8,
  GenScanCode_9,
  GenScanCode_0,
  GenScanCode_Minus,
  GenScanCode_Equals,
  GenScanCode_Backspace,
  GenScanCode_Tab,
  GenScanCode_Q,
  GenScanCode_W,
  GenScanCode_E,
  GenScanCode_R,
  GenScanCode_T,
  GenScanCode_Y,
  GenScanCode_U,
  GenScanCode_I,
  GenScanCode_O,
  GenScanCode_P,
  GenScanCode_LeftBracket,
  GenScanCode_RightBracket,
  GenScanCode_Backslash,
  GenScanCode_CapsLock,
  GenScanCode_A,
  GenScanCode_S,
  GenScanCode_D,
  GenScanCode_F,
  GenScanCode_G,
  GenScanCode_H,
  GenScanCode_J,
  GenScanCode_K,
  GenScanCode_L,
  GenScanCode_Semicolon,
  GenScanCode_Quote,
  GenScanCode_Return,
  GenScanCode_LeftShift,
  GenScanCode_Z,
  GenScanCode_X,
  GenScanCode_C,
  GenScanCode_V,
  GenScanCode_B,
  GenScanCode_N,
  GenScanCode_M,
  GenScanCode_Comma,
  GenScanCode_Period,
  GenScanCode_Slash,
  GenScanCode_RightShift,
  GenScanCode_LeftControl,
  GenScanCode_LeftSuper,
  GenScanCode_LeftAlt,
  GenScanCode_Space,
  GenScanCode_RightAlt,
  GenScanCode_RightSuper,
  GenScanCode_RightMenu,
  GenScanCode_RightControl,
  GenScanCode_PrintScreen,
  GenScanCode_ScrollLock,
  GenScanCode_PauseBreak,
  GenScanCode_Insert,
  GenScanCode_Home,
  GenScanCode_PageUp,
  GenScanCode_Delete,
  GenScanCode_End,
  GenScanCode_PageDown,
  GenScanCode_Up,
  GenScanCode_Left,
  GenScanCode_Down,
  GenScanCode_Right,
  GenScanCode_Numpad_NumLock,
  GenScanCode_Numpad_Divide,
  GenScanCode_Numpad_Multiply,
  GenScanCode_Numpad_Minus,
  GenScanCode_Numpad_Plus,
  GenScanCode_Numpad_Enter,
  GenScanCode_Numpad_1,
  GenScanCode_Numpad_2,
  GenScanCode_Numpad_3,
  GenScanCode_Numpad_4,
  GenScanCode_Numpad_5,
  GenScanCode_Numpad_6,
  GenScanCode_Numpad_7,
  GenScanCode_Numpad_8,
  GenScanCode_Numpad_9,
  GenScanCode_Numpad_0,
  GenScanCode_Numpad_Decimal,

  NumGenScanCodes
};
