LCOV - code coverage report
Current view: top level - engine/input/keyboard - scancode.hpp (source / functions) Coverage Total Hit
Test: coverage.info Lines: 100.0 % 246 246
Test Date: 2026-03-11 04:45:14 Functions: 100.0 % 1 1

            Line data    Source code
       1              : #pragma once
       2              : 
       3              : #include <cstdint>
       4              : #include <string_view>
       5              : 
       6              : namespace jage::engine::input::keyboard {
       7              : enum class scancode : std::uint16_t {
       8              :   unidentified = 0,
       9              :   a = 0x04,
      10              :   b = 0x05,
      11              :   c = 0x06,
      12              :   d = 0x07,
      13              :   e = 0x08,
      14              :   f = 0x09,
      15              :   g = 0x0A,
      16              :   h = 0x0B,
      17              :   i = 0x0C,
      18              :   j = 0x0D,
      19              :   k = 0x0E,
      20              :   l = 0x0F,
      21              :   m = 0x10,
      22              :   n = 0x11,
      23              :   o = 0x12,
      24              :   p = 0x13,
      25              :   q = 0x14,
      26              :   r = 0x15,
      27              :   s = 0x16,
      28              :   t = 0x17,
      29              :   u = 0x18,
      30              :   v = 0x19,
      31              :   w = 0x1A,
      32              :   x = 0x1B,
      33              :   y = 0x1C,
      34              :   z = 0x1D,
      35              :   _1 = 0x1E,
      36              :   _2 = 0x1F,
      37              :   _3 = 0x20,
      38              :   _4 = 0x21,
      39              :   _5 = 0x22,
      40              :   _6 = 0x23,
      41              :   _7 = 0x24,
      42              :   _8 = 0x25,
      43              :   _9 = 0x26,
      44              :   _0 = 0x27,
      45              :   enter = 0x28,
      46              :   escape = 0x29,
      47              :   backspace = 0x2A,
      48              :   tab = 0x2B,
      49              :   spacebar = 0x2C,
      50              :   minus = 0x2D,
      51              :   equal = 0x2E,
      52              :   left_bracket = 0x2F,
      53              :   right_bracket = 0x30,
      54              :   backslash = 0x31,
      55              :   semicolon = 0x33,
      56              :   apostrophe = 0x34,
      57              :   grave_accent = 0x35,
      58              :   comma = 0x36,
      59              :   period = 0x37,
      60              :   slash = 0x38,
      61              :   caps_lock = 0x39,
      62              :   F1 = 0x3A,
      63              :   F2 = 0x3B,
      64              :   F3 = 0x3C,
      65              :   F4 = 0x3D,
      66              :   F5 = 0x3E,
      67              :   F6 = 0x3F,
      68              :   F7 = 0x40,
      69              :   F8 = 0x41,
      70              :   F9 = 0x42,
      71              :   F10 = 0x43,
      72              :   F11 = 0x44,
      73              :   F12 = 0x45,
      74              :   print_screen = 0x46,
      75              :   scroll_lock = 0x47,
      76              :   pause = 0x48,
      77              :   insert = 0x49,
      78              :   home = 0x4A,
      79              :   page_up = 0x4B,
      80              :   delete_key = 0x4C,
      81              :   end = 0x4D,
      82              :   page_down = 0x4E,
      83              :   arrow_right = 0x4F,
      84              :   arrow_left = 0x50,
      85              :   arrow_down = 0x51,
      86              :   arrow_up = 0x52,
      87              :   num_lock = 0x53,
      88              :   kp_divide = 0x54,
      89              :   kp_multiply = 0x55,
      90              :   kp_subtract = 0x56,
      91              :   kp_add = 0x57,
      92              :   kp_enter = 0x58,
      93              :   kp_1 = 0x59,
      94              :   kp_2 = 0x5A,
      95              :   kp_3 = 0x5B,
      96              :   kp_4 = 0x5C,
      97              :   kp_5 = 0x5D,
      98              :   kp_6 = 0x5E,
      99              :   kp_7 = 0x5F,
     100              :   kp_8 = 0x60,
     101              :   kp_9 = 0x61,
     102              :   kp_0 = 0x62,
     103              :   kp_decimal = 0x63,
     104              :   world_1 = 0x87,
     105              :   world_2 = 0x88,
     106              :   kp_equal = 0x67,
     107              :   menu = 0x65,
     108              :   F13 = 0x68,
     109              :   F14 = 0x69,
     110              :   F15 = 0x6A,
     111              :   F16 = 0x6B,
     112              :   F17 = 0x6C,
     113              :   F18 = 0x6D,
     114              :   F19 = 0x6E,
     115              :   F20 = 0x6F,
     116              :   F21 = 0x70,
     117              :   F22 = 0x71,
     118              :   F23 = 0x72,
     119              :   F24 = 0x73,
     120              :   execute = 0x74,
     121              :   left_control = 0xE0,
     122              :   left_shift = 0xE1,
     123              :   left_alt = 0xE2,
     124              :   left_super = 0xE3,
     125              :   right_control = 0xE4,
     126              :   right_shift = 0xE5,
     127              :   right_alt = 0xE6,
     128              :   right_super = 0xE7,
     129              : };
     130              : 
     131              : [[nodiscard]] constexpr auto
     132          129 : serialize(const scancode input_scancode) -> std::string_view {
     133          129 :   switch (input_scancode) {
     134            1 :   case scancode::unidentified:
     135            1 :     return "unidentified";
     136            3 :   case scancode::a:
     137            3 :     return "a";
     138            1 :   case scancode::b:
     139            1 :     return "b";
     140            1 :   case scancode::c:
     141            1 :     return "c";
     142            1 :   case scancode::d:
     143            1 :     return "d";
     144            1 :   case scancode::e:
     145            1 :     return "e";
     146            1 :   case scancode::f:
     147            1 :     return "f";
     148            1 :   case scancode::g:
     149            1 :     return "g";
     150            1 :   case scancode::h:
     151            1 :     return "h";
     152            1 :   case scancode::i:
     153            1 :     return "i";
     154            1 :   case scancode::j:
     155            1 :     return "j";
     156            1 :   case scancode::k:
     157            1 :     return "k";
     158            1 :   case scancode::l:
     159            1 :     return "l";
     160            1 :   case scancode::m:
     161            1 :     return "m";
     162            1 :   case scancode::n:
     163            1 :     return "n";
     164            1 :   case scancode::o:
     165            1 :     return "o";
     166            1 :   case scancode::p:
     167            1 :     return "p";
     168            1 :   case scancode::q:
     169            1 :     return "q";
     170            1 :   case scancode::r:
     171            1 :     return "r";
     172            1 :   case scancode::s:
     173            1 :     return "s";
     174            1 :   case scancode::t:
     175            1 :     return "t";
     176            1 :   case scancode::u:
     177            1 :     return "u";
     178            1 :   case scancode::v:
     179            1 :     return "v";
     180            1 :   case scancode::w:
     181            1 :     return "w";
     182            1 :   case scancode::x:
     183            1 :     return "x";
     184            1 :   case scancode::y:
     185            1 :     return "y";
     186            1 :   case scancode::z:
     187            1 :     return "z";
     188            1 :   case scancode::_1:
     189            1 :     return "1";
     190            1 :   case scancode::_2:
     191            1 :     return "2";
     192            1 :   case scancode::_3:
     193            1 :     return "3";
     194            1 :   case scancode::_4:
     195            1 :     return "4";
     196            1 :   case scancode::_5:
     197            1 :     return "5";
     198            1 :   case scancode::_6:
     199            1 :     return "6";
     200            1 :   case scancode::_7:
     201            1 :     return "7";
     202            1 :   case scancode::_8:
     203            1 :     return "8";
     204            1 :   case scancode::_9:
     205            1 :     return "9";
     206            1 :   case scancode::_0:
     207            1 :     return "0";
     208            2 :   case scancode::enter:
     209            2 :     return "enter";
     210            3 :   case scancode::escape:
     211            3 :     return "escape";
     212            1 :   case scancode::backspace:
     213            1 :     return "backspace";
     214            1 :   case scancode::tab:
     215            1 :     return "tab";
     216            1 :   case scancode::spacebar:
     217            1 :     return "spacebar";
     218            1 :   case scancode::minus:
     219            1 :     return "minus";
     220            1 :   case scancode::equal:
     221            1 :     return "equal";
     222            1 :   case scancode::left_bracket:
     223            1 :     return "left_bracket";
     224            1 :   case scancode::right_bracket:
     225            1 :     return "right_bracket";
     226            1 :   case scancode::backslash:
     227            1 :     return "backslash";
     228            1 :   case scancode::semicolon:
     229            1 :     return "semicolon";
     230            1 :   case scancode::apostrophe:
     231            1 :     return "apostrophe";
     232            1 :   case scancode::grave_accent:
     233            1 :     return "grave_accent";
     234            1 :   case scancode::comma:
     235            1 :     return "comma";
     236            1 :   case scancode::period:
     237            1 :     return "period";
     238            1 :   case scancode::slash:
     239            1 :     return "slash";
     240            1 :   case scancode::caps_lock:
     241            1 :     return "caps_lock";
     242            1 :   case scancode::F1:
     243            1 :     return "F1";
     244            1 :   case scancode::F2:
     245            1 :     return "F2";
     246            1 :   case scancode::F3:
     247            1 :     return "F3";
     248            1 :   case scancode::F4:
     249            1 :     return "F4";
     250            1 :   case scancode::F5:
     251            1 :     return "F5";
     252            1 :   case scancode::F6:
     253            1 :     return "F6";
     254            1 :   case scancode::F7:
     255            1 :     return "F7";
     256            1 :   case scancode::F8:
     257            1 :     return "F8";
     258            1 :   case scancode::F9:
     259            1 :     return "F9";
     260            1 :   case scancode::F10:
     261            1 :     return "F10";
     262            1 :   case scancode::F11:
     263            1 :     return "F11";
     264            2 :   case scancode::F12:
     265            2 :     return "F12";
     266            1 :   case scancode::print_screen:
     267            1 :     return "print_screen";
     268            1 :   case scancode::scroll_lock:
     269            1 :     return "scroll_lock";
     270            1 :   case scancode::pause:
     271            1 :     return "pause";
     272            1 :   case scancode::insert:
     273            1 :     return "insert";
     274            1 :   case scancode::home:
     275            1 :     return "home";
     276            1 :   case scancode::page_up:
     277            1 :     return "page_up";
     278            1 :   case scancode::delete_key:
     279            1 :     return "delete_key";
     280            1 :   case scancode::end:
     281            1 :     return "end";
     282            1 :   case scancode::page_down:
     283            1 :     return "page_down";
     284            1 :   case scancode::arrow_right:
     285            1 :     return "arrow_right";
     286            1 :   case scancode::arrow_left:
     287            1 :     return "arrow_left";
     288            1 :   case scancode::arrow_down:
     289            1 :     return "arrow_down";
     290            1 :   case scancode::arrow_up:
     291            1 :     return "arrow_up";
     292            1 :   case scancode::num_lock:
     293            1 :     return "num_lock";
     294            1 :   case scancode::kp_divide:
     295            1 :     return "kp_divide";
     296            1 :   case scancode::kp_multiply:
     297            1 :     return "kp_multiply";
     298            1 :   case scancode::kp_subtract:
     299            1 :     return "kp_subtract";
     300            1 :   case scancode::kp_add:
     301            1 :     return "kp_add";
     302            1 :   case scancode::kp_enter:
     303            1 :     return "kp_enter";
     304            1 :   case scancode::kp_1:
     305            1 :     return "kp_1";
     306            1 :   case scancode::kp_2:
     307            1 :     return "kp_2";
     308            1 :   case scancode::kp_3:
     309            1 :     return "kp_3";
     310            1 :   case scancode::kp_4:
     311            1 :     return "kp_4";
     312            1 :   case scancode::kp_5:
     313            1 :     return "kp_5";
     314            1 :   case scancode::kp_6:
     315            1 :     return "kp_6";
     316            1 :   case scancode::kp_7:
     317            1 :     return "kp_7";
     318            1 :   case scancode::kp_8:
     319            1 :     return "kp_8";
     320            1 :   case scancode::kp_9:
     321            1 :     return "kp_9";
     322            1 :   case scancode::kp_0:
     323            1 :     return "kp_0";
     324            1 :   case scancode::kp_decimal:
     325            1 :     return "kp_decimal";
     326            1 :   case scancode::world_1:
     327            1 :     return "world_1";
     328            1 :   case scancode::world_2:
     329            1 :     return "world_2";
     330            1 :   case scancode::kp_equal:
     331            1 :     return "kp_equal";
     332            1 :   case scancode::menu:
     333            1 :     return "menu";
     334            1 :   case scancode::F13:
     335            1 :     return "F13";
     336            1 :   case scancode::F14:
     337            1 :     return "F14";
     338            1 :   case scancode::F15:
     339            1 :     return "F15";
     340            1 :   case scancode::F16:
     341            1 :     return "F16";
     342            1 :   case scancode::F17:
     343            1 :     return "F17";
     344            1 :   case scancode::F18:
     345            1 :     return "F18";
     346            1 :   case scancode::F19:
     347            1 :     return "F19";
     348            1 :   case scancode::F20:
     349            1 :     return "F20";
     350            1 :   case scancode::F21:
     351            1 :     return "F21";
     352            1 :   case scancode::F22:
     353            1 :     return "F22";
     354            1 :   case scancode::F23:
     355            1 :     return "F23";
     356            1 :   case scancode::F24:
     357            1 :     return "F24";
     358            1 :   case scancode::execute:
     359            1 :     return "execute";
     360            1 :   case scancode::left_control:
     361            1 :     return "left_control";
     362            1 :   case scancode::left_shift:
     363            1 :     return "left_shift";
     364            1 :   case scancode::left_alt:
     365            1 :     return "left_alt";
     366            1 :   case scancode::left_super:
     367            1 :     return "left_super";
     368            1 :   case scancode::right_control:
     369            1 :     return "right_control";
     370            1 :   case scancode::right_shift:
     371            1 :     return "right_shift";
     372            1 :   case scancode::right_alt:
     373            1 :     return "right_alt";
     374            1 :   case scancode::right_super:
     375            1 :     return "right_super";
     376            2 :   default:
     377            2 :     return "unknown enumerator";
     378              :   }
     379              : }
     380              : 
     381              : } // namespace jage::engine::input::keyboard
        

Generated by: LCOV version 2.0-1