github.com/rajveermalviya/gamen@v0.1.2-0.20220930195403-9be15877c1aa/internal/android/keycodes.go (about)

     1  //go:build android
     2  
     3  package android
     4  
     5  /*
     6  
     7  #include <game-activity/native_app_glue/android_native_app_glue.h>
     8  
     9  */
    10  import "C"
    11  import "github.com/rajveermalviya/gamen/events"
    12  
    13  // https://android.googlesource.com/platform/frameworks/native/+/master/include/android/keycodes.h
    14  
    15  func mapKeycode(k C.int32_t) events.VirtualKey {
    16  	switch k {
    17  	// case 0:
    18  	// 	return events.VirtualKeyCancel
    19  	case C.AKEYCODE_HELP:
    20  		return events.VirtualKeyHelp
    21  	case C.AKEYCODE_DEL:
    22  		return events.VirtualKeyBackSpace
    23  	case C.AKEYCODE_TAB:
    24  		return events.VirtualKeyTab
    25  	case C.AKEYCODE_CLEAR:
    26  		return events.VirtualKeyClear
    27  	case C.AKEYCODE_ENTER:
    28  		return events.VirtualKeyReturn
    29  	case C.AKEYCODE_SHIFT_LEFT:
    30  		return events.VirtualKeyLShift
    31  	case C.AKEYCODE_SHIFT_RIGHT:
    32  		return events.VirtualKeyRShift
    33  	case C.AKEYCODE_CTRL_LEFT:
    34  		return events.VirtualKeyLControl
    35  	case C.AKEYCODE_CTRL_RIGHT:
    36  		return events.VirtualKeyRControl
    37  	case C.AKEYCODE_ALT_LEFT:
    38  		return events.VirtualKeyLAlt
    39  	case C.AKEYCODE_ALT_RIGHT:
    40  		return events.VirtualKeyRAlt
    41  	case C.AKEYCODE_BREAK:
    42  		return events.VirtualKeyPause
    43  	case C.AKEYCODE_CAPS_LOCK:
    44  		return events.VirtualKeyCapsLock
    45  	case C.AKEYCODE_KANA:
    46  		return events.VirtualKeyKana
    47  	// case 0:
    48  	// 	return events.VirtualKeyJunja
    49  	// case 0:
    50  	// 	return events.VirtualKeyFinal
    51  	// case 0:
    52  	// 	return events.VirtualKeyKanji
    53  	case C.AKEYCODE_ESCAPE:
    54  		return events.VirtualKeyEscape
    55  	case C.AKEYCODE_HENKAN:
    56  		return events.VirtualKeyConvert
    57  	case C.AKEYCODE_MUHENKAN:
    58  		return events.VirtualKeyNonconvert
    59  	// case 0:
    60  	// 	return events.VirtualKeyAccept
    61  	// case 0:
    62  	// 	return events.VirtualKeyModechange
    63  	case C.AKEYCODE_SPACE:
    64  		return events.VirtualKeySpace
    65  	case C.AKEYCODE_PAGE_UP:
    66  		return events.VirtualKeyPageUp
    67  	case C.AKEYCODE_PAGE_DOWN:
    68  		return events.VirtualKeyPageDown
    69  	case C.AKEYCODE_MOVE_END:
    70  		return events.VirtualKeyEnd
    71  	case C.AKEYCODE_MOVE_HOME:
    72  		return events.VirtualKeyHome
    73  	case C.AKEYCODE_DPAD_LEFT:
    74  		return events.VirtualKeyLeft
    75  	case C.AKEYCODE_DPAD_UP:
    76  		return events.VirtualKeyUp
    77  	case C.AKEYCODE_DPAD_RIGHT:
    78  		return events.VirtualKeyRight
    79  	case C.AKEYCODE_DPAD_DOWN:
    80  		return events.VirtualKeyDown
    81  	// case 0:
    82  	// 	return events.VirtualKeySelect
    83  	case C.AKEYCODE_SYSRQ:
    84  		return events.VirtualKeyPrint
    85  	// case 0:
    86  	// 	return events.VirtualKeyExecute
    87  	case C.AKEYCODE_INSERT:
    88  		return events.VirtualKeyInsert
    89  	case C.AKEYCODE_FORWARD_DEL:
    90  		return events.VirtualKeyDelete
    91  	case C.AKEYCODE_0:
    92  		return events.VirtualKey0
    93  	case C.AKEYCODE_1:
    94  		return events.VirtualKey1
    95  	case C.AKEYCODE_2:
    96  		return events.VirtualKey2
    97  	case C.AKEYCODE_3:
    98  		return events.VirtualKey3
    99  	case C.AKEYCODE_4:
   100  		return events.VirtualKey4
   101  	case C.AKEYCODE_5:
   102  		return events.VirtualKey5
   103  	case C.AKEYCODE_6:
   104  		return events.VirtualKey6
   105  	case C.AKEYCODE_7:
   106  		return events.VirtualKey7
   107  	case C.AKEYCODE_8:
   108  		return events.VirtualKey8
   109  	case C.AKEYCODE_9:
   110  		return events.VirtualKey9
   111  	case C.AKEYCODE_SEMICOLON:
   112  		return events.VirtualKeySemicolon
   113  	case C.AKEYCODE_EQUALS:
   114  		return events.VirtualKeyEquals
   115  	case C.AKEYCODE_A:
   116  		return events.VirtualKeyA
   117  	case C.AKEYCODE_B:
   118  		return events.VirtualKeyB
   119  	case C.AKEYCODE_C:
   120  		return events.VirtualKeyC
   121  	case C.AKEYCODE_D:
   122  		return events.VirtualKeyD
   123  	case C.AKEYCODE_E:
   124  		return events.VirtualKeyE
   125  	case C.AKEYCODE_F:
   126  		return events.VirtualKeyF
   127  	case C.AKEYCODE_G:
   128  		return events.VirtualKeyG
   129  	case C.AKEYCODE_H:
   130  		return events.VirtualKeyH
   131  	case C.AKEYCODE_I:
   132  		return events.VirtualKeyI
   133  	case C.AKEYCODE_J:
   134  		return events.VirtualKeyJ
   135  	case C.AKEYCODE_K:
   136  		return events.VirtualKeyK
   137  	case C.AKEYCODE_L:
   138  		return events.VirtualKeyL
   139  	case C.AKEYCODE_M:
   140  		return events.VirtualKeyM
   141  	case C.AKEYCODE_N:
   142  		return events.VirtualKeyN
   143  	case C.AKEYCODE_O:
   144  		return events.VirtualKeyO
   145  	case C.AKEYCODE_P:
   146  		return events.VirtualKeyP
   147  	case C.AKEYCODE_Q:
   148  		return events.VirtualKeyQ
   149  	case C.AKEYCODE_R:
   150  		return events.VirtualKeyR
   151  	case C.AKEYCODE_S:
   152  		return events.VirtualKeyS
   153  	case C.AKEYCODE_T:
   154  		return events.VirtualKeyT
   155  	case C.AKEYCODE_U:
   156  		return events.VirtualKeyU
   157  	case C.AKEYCODE_V:
   158  		return events.VirtualKeyV
   159  	case C.AKEYCODE_W:
   160  		return events.VirtualKeyW
   161  	case C.AKEYCODE_X:
   162  		return events.VirtualKeyX
   163  	case C.AKEYCODE_Y:
   164  		return events.VirtualKeyY
   165  	case C.AKEYCODE_Z:
   166  		return events.VirtualKeyZ
   167  	case C.AKEYCODE_META_LEFT:
   168  		return events.VirtualKeyLWin
   169  	case C.AKEYCODE_META_RIGHT:
   170  		return events.VirtualKeyRWin
   171  	case 0:
   172  		return events.VirtualKeyContextMenu
   173  	case C.AKEYCODE_SLEEP:
   174  		return events.VirtualKeySleep
   175  	case C.AKEYCODE_NUMPAD_0:
   176  		return events.VirtualKeyNumpad0
   177  	case C.AKEYCODE_NUMPAD_1:
   178  		return events.VirtualKeyNumpad1
   179  	case C.AKEYCODE_NUMPAD_2:
   180  		return events.VirtualKeyNumpad2
   181  	case C.AKEYCODE_NUMPAD_3:
   182  		return events.VirtualKeyNumpad3
   183  	case C.AKEYCODE_NUMPAD_4:
   184  		return events.VirtualKeyNumpad4
   185  	case C.AKEYCODE_NUMPAD_5:
   186  		return events.VirtualKeyNumpad5
   187  	case C.AKEYCODE_NUMPAD_6:
   188  		return events.VirtualKeyNumpad6
   189  	case C.AKEYCODE_NUMPAD_7:
   190  		return events.VirtualKeyNumpad7
   191  	case C.AKEYCODE_NUMPAD_8:
   192  		return events.VirtualKeyNumpad8
   193  	case C.AKEYCODE_NUMPAD_9:
   194  		return events.VirtualKeyNumpad9
   195  	case C.AKEYCODE_NUMPAD_MULTIPLY:
   196  		return events.VirtualKeyMultiply
   197  	case C.AKEYCODE_NUMPAD_ADD:
   198  		return events.VirtualKeyAdd
   199  	case C.AKEYCODE_NUMPAD_SUBTRACT:
   200  		return events.VirtualKeySubtract
   201  	case C.AKEYCODE_NUMPAD_DOT, C.AKEYCODE_NUMPAD_COMMA:
   202  		return events.VirtualKeyDecimal
   203  	case C.AKEYCODE_NUMPAD_DIVIDE:
   204  		return events.VirtualKeyDivide
   205  	case C.AKEYCODE_F1:
   206  		return events.VirtualKeyF1
   207  	case C.AKEYCODE_F2:
   208  		return events.VirtualKeyF2
   209  	case C.AKEYCODE_F3:
   210  		return events.VirtualKeyF3
   211  	case C.AKEYCODE_F4:
   212  		return events.VirtualKeyF4
   213  	case C.AKEYCODE_F5:
   214  		return events.VirtualKeyF5
   215  	case C.AKEYCODE_F6:
   216  		return events.VirtualKeyF6
   217  	case C.AKEYCODE_F7:
   218  		return events.VirtualKeyF7
   219  	case C.AKEYCODE_F8:
   220  		return events.VirtualKeyF8
   221  	case C.AKEYCODE_F9:
   222  		return events.VirtualKeyF9
   223  	case C.AKEYCODE_F10:
   224  		return events.VirtualKeyF10
   225  	case C.AKEYCODE_F11:
   226  		return events.VirtualKeyF11
   227  	case C.AKEYCODE_F12:
   228  		return events.VirtualKeyF12
   229  	// case 0:
   230  	// 	return events.VirtualKeyF13
   231  	// case 0:
   232  	// 	return events.VirtualKeyF14
   233  	// case 0:
   234  	// 	return events.VirtualKeyF15
   235  	// case 0:
   236  	// 	return events.VirtualKeyF16
   237  	// case 0:
   238  	// 	return events.VirtualKeyF17
   239  	// case 0:
   240  	// 	return events.VirtualKeyF18
   241  	// case 0:
   242  	// 	return events.VirtualKeyF19
   243  	// case 0:
   244  	// 	return events.VirtualKeyF20
   245  	// case 0:
   246  	// 	return events.VirtualKeyF21
   247  	// case 0:
   248  	// 	return events.VirtualKeyF22
   249  	// case 0:
   250  	// 	return events.VirtualKeyF23
   251  	// case 0:
   252  	// 	return events.VirtualKeyF24
   253  	case C.AKEYCODE_NUM_LOCK:
   254  		return events.VirtualKeyNumLock
   255  	case C.AKEYCODE_SCROLL_LOCK:
   256  		return events.VirtualKeyScrollLock
   257  	case C.AKEYCODE_MINUS:
   258  		return events.VirtualKeyHyphenMinus
   259  	case C.AKEYCODE_VOLUME_MUTE:
   260  		return events.VirtualKeyVolumeMute
   261  	case C.AKEYCODE_VOLUME_DOWN:
   262  		return events.VirtualKeyVolumeDown
   263  	case C.AKEYCODE_VOLUME_UP:
   264  		return events.VirtualKeyVolumeUp
   265  	case C.AKEYCODE_COMMA:
   266  		return events.VirtualKeyComma
   267  	case C.AKEYCODE_PERIOD:
   268  		return events.VirtualKeyPeriod
   269  	case C.AKEYCODE_SLASH:
   270  		return events.VirtualKeySlash
   271  	case C.AKEYCODE_GRAVE:
   272  		return events.VirtualKeyBackQuote
   273  	case C.AKEYCODE_LEFT_BRACKET:
   274  		return events.VirtualKeyOpenBracket
   275  	case C.AKEYCODE_BACKSLASH:
   276  		return events.VirtualKeyBackSlash
   277  	case C.AKEYCODE_RIGHT_BRACKET:
   278  		return events.VirtualKeyCloseBracket
   279  	case C.AKEYCODE_APOSTROPHE:
   280  		return events.VirtualKeyQuote
   281  		// case 0:
   282  		// 	return events.VirtualKeyAltgr
   283  	}
   284  
   285  	return events.VirtualKey(k)
   286  }