mirror of https://github.com/red-prig/fpPS4.git
This commit is contained in:
parent
260b053c5c
commit
70804604de
|
@ -51,7 +51,228 @@ const
|
|||
SCE_IME_ERROR_INVALID_TIMING =-2135162829; // 0x80BC0033
|
||||
SCE_IME_ERROR_INTERNAL =-2135162625; // 0x80BC00FF
|
||||
|
||||
//USB HID USAGE ID
|
||||
SCE_IME_KEYCODE_NOEVENT =$0000; // No Event
|
||||
SCE_IME_KEYCODE_ERRORROLLOVER =$0001; // Error Rollover
|
||||
SCE_IME_KEYCODE_POSTFAIL =$0002; // Pos Fail
|
||||
SCE_IME_KEYCODE_ERRORUNDEFINED =$0003; // Error Undefined
|
||||
SCE_IME_KEYCODE_A =$0004; // a and A
|
||||
SCE_IME_KEYCODE_B =$0005; // b and B
|
||||
SCE_IME_KEYCODE_C =$0006; // c and C
|
||||
SCE_IME_KEYCODE_D =$0007; // d and D
|
||||
SCE_IME_KEYCODE_E =$0008; // e and E
|
||||
SCE_IME_KEYCODE_F =$0009; // f and F
|
||||
SCE_IME_KEYCODE_G =$000A; // g and G
|
||||
SCE_IME_KEYCODE_H =$000B; // h and H
|
||||
SCE_IME_KEYCODE_I =$000C; // i and I
|
||||
SCE_IME_KEYCODE_J =$000D; // j and J
|
||||
SCE_IME_KEYCODE_K =$000E; // k and K
|
||||
SCE_IME_KEYCODE_L =$000F; // l and L
|
||||
SCE_IME_KEYCODE_M =$0010; // m and M
|
||||
SCE_IME_KEYCODE_N =$0011; // n and N
|
||||
SCE_IME_KEYCODE_O =$0012; // o and O
|
||||
SCE_IME_KEYCODE_P =$0013; // p and P
|
||||
SCE_IME_KEYCODE_Q =$0014; // q and Q
|
||||
SCE_IME_KEYCODE_R =$0015; // r and R
|
||||
SCE_IME_KEYCODE_S =$0016; // s and S
|
||||
SCE_IME_KEYCODE_T =$0017; // t and T
|
||||
SCE_IME_KEYCODE_U =$0018; // u and U
|
||||
SCE_IME_KEYCODE_V =$0019; // v and V
|
||||
SCE_IME_KEYCODE_W =$001A; // w and W
|
||||
SCE_IME_KEYCODE_X =$001B; // x and X
|
||||
SCE_IME_KEYCODE_Y =$001C; // y and Y
|
||||
SCE_IME_KEYCODE_Z =$001D; // z and Z
|
||||
SCE_IME_KEYCODE_1 =$001E; // 1 and !
|
||||
SCE_IME_KEYCODE_2 =$001F; // 2 and @
|
||||
SCE_IME_KEYCODE_3 =$0020; // 3 and #
|
||||
SCE_IME_KEYCODE_4 =$0021; // 4 and $
|
||||
SCE_IME_KEYCODE_5 =$0022; // 5 and %
|
||||
SCE_IME_KEYCODE_6 =$0023; // 6 and ^
|
||||
SCE_IME_KEYCODE_7 =$0024; // 7 and &
|
||||
SCE_IME_KEYCODE_8 =$0025; // 8 and *
|
||||
SCE_IME_KEYCODE_9 =$0026; // 9 and (
|
||||
SCE_IME_KEYCODE_0 =$0027; // 0 and )
|
||||
SCE_IME_KEYCODE_RETURN =$0028; // Return (Enter)
|
||||
SCE_IME_KEYCODE_ESCAPE =$0029; // Escape
|
||||
SCE_IME_KEYCODE_BACKSPACE =$002A; // Delete and Backspace
|
||||
SCE_IME_KEYCODE_TAB =$002B; // Tab
|
||||
SCE_IME_KEYCODE_SPACEBAR =$002C; // Spacebar
|
||||
SCE_IME_KEYCODE_MINUS =$002D; // - and _
|
||||
SCE_IME_KEYCODE_EQUAL =$002E; // = and +
|
||||
SCE_IME_KEYCODE_LEFTBRACKET =$002F; // [ and {
|
||||
SCE_IME_KEYCODE_RIGHTBRACKET =$0030; // ] and }
|
||||
SCE_IME_KEYCODE_BACKSLASH =$0031; // \ and |
|
||||
SCE_IME_KEYCODE_NONUS_POUND =$0032; // Non US # and ~
|
||||
SCE_IME_KEYCODE_SEMICOLON =$0033; // ; and :
|
||||
SCE_IME_KEYCODE_SINGLEQUOTE =$0034; // ' and "
|
||||
SCE_IME_KEYCODE_BACKQUOTE =$0035; // ` and ~
|
||||
SCE_IME_KEYCODE_COMMA =$0036; // , and <
|
||||
SCE_IME_KEYCODE_PERIOD =$0037; // . and >
|
||||
SCE_IME_KEYCODE_SLASH =$0038; // / and ?
|
||||
SCE_IME_KEYCODE_CAPSLOCK =$0039; // Caps Lock
|
||||
SCE_IME_KEYCODE_F1 =$003A; // F1
|
||||
SCE_IME_KEYCODE_F2 =$003B; // F2
|
||||
SCE_IME_KEYCODE_F3 =$003C; // F3
|
||||
SCE_IME_KEYCODE_F4 =$003D; // F4
|
||||
SCE_IME_KEYCODE_F5 =$003E; // F5
|
||||
SCE_IME_KEYCODE_F6 =$003F; // F6
|
||||
SCE_IME_KEYCODE_F7 =$0040; // F7
|
||||
SCE_IME_KEYCODE_F8 =$0041; // F8
|
||||
SCE_IME_KEYCODE_F9 =$0042; // F9
|
||||
SCE_IME_KEYCODE_F10 =$0043; // F10
|
||||
SCE_IME_KEYCODE_F11 =$0044; // F11
|
||||
SCE_IME_KEYCODE_F12 =$0045; // F12
|
||||
SCE_IME_KEYCODE_PRINTSCREEN =$0046; // Print Screen
|
||||
SCE_IME_KEYCODE_SCROLLLOCK =$0047; // Scroll Lock
|
||||
SCE_IME_KEYCODE_PAUSE =$0048; // Break
|
||||
SCE_IME_KEYCODE_INSERT =$0049; // Insert
|
||||
SCE_IME_KEYCODE_HOME =$004A; // Home
|
||||
SCE_IME_KEYCODE_PAGEUP =$004B; // Page Up
|
||||
SCE_IME_KEYCODE_DELETE =$004C; // Delete Forward
|
||||
SCE_IME_KEYCODE_END =$004D; // End
|
||||
SCE_IME_KEYCODE_PAGEDOWN =$004E; // Page Down
|
||||
SCE_IME_KEYCODE_RIGHTARROW =$004F; // RIght Arrow
|
||||
SCE_IME_KEYCODE_LEFTARROW =$0050; // Left Arrow
|
||||
SCE_IME_KEYCODE_DOWNARROW =$0051; // Down Arrow
|
||||
SCE_IME_KEYCODE_UPARROW =$0052; // Up Arrow
|
||||
SCE_IME_KEYCODE_KEYPAD_NUMLOCK =$0053; // NumLock and Clear
|
||||
SCE_IME_KEYCODE_KEYPAD_SLASH =$0054; // Keypad /
|
||||
SCE_IME_KEYCODE_KEYPAD_ASTERISK =$0055; // Keypad *
|
||||
SCE_IME_KEYCODE_KEYPAD_MINUS =$0056; // Keypad -
|
||||
SCE_IME_KEYCODE_KEYPAD_PLUS =$0057; // Keypad +
|
||||
SCE_IME_KEYCODE_KEYPAD_ENTER =$0058; // Keypad Enter
|
||||
SCE_IME_KEYCODE_KEYPAD_1 =$0059; // Keypad 1 and End
|
||||
SCE_IME_KEYCODE_KEYPAD_2 =$005A; // Keypad 2 and Down Arrow
|
||||
SCE_IME_KEYCODE_KEYPAD_3 =$005B; // Keypad 3 and Page Down
|
||||
SCE_IME_KEYCODE_KEYPAD_4 =$005C; // Keypad 4 and Left Arrow
|
||||
SCE_IME_KEYCODE_KEYPAD_5 =$005D; // Keypad 5
|
||||
SCE_IME_KEYCODE_KEYPAD_6 =$005E; // Keypad 6 and Right Arrow
|
||||
SCE_IME_KEYCODE_KEYPAD_7 =$005F; // Keypad 7 and Home
|
||||
SCE_IME_KEYCODE_KEYPAD_8 =$0060; // Keypad 8 and Up Arrow
|
||||
SCE_IME_KEYCODE_KEYPAD_9 =$0061; // Keypad 9 and Page Up
|
||||
SCE_IME_KEYCODE_KEYPAD_0 =$0062; // Keypad 0 and Insert
|
||||
SCE_IME_KEYCODE_KEYPAD_PERIOD =$0063; // Keypad . and Delete
|
||||
SCE_IME_KEYCODE_NONUS_BACKSLASH =$0064; // Non US \ and |
|
||||
SCE_IME_KEYCODE_APPLICATION =$0065; // Application
|
||||
SCE_IME_KEYCODE_POWER =$0066; // Power
|
||||
SCE_IME_KEYCODE_KEYPAD_EQUAL =$0067; // Keypad =
|
||||
SCE_IME_KEYCODE_F13 =$0068; // F13
|
||||
SCE_IME_KEYCODE_F14 =$0069; // F14
|
||||
SCE_IME_KEYCODE_F15 =$006A; // F15
|
||||
SCE_IME_KEYCODE_F16 =$006B; // F16
|
||||
SCE_IME_KEYCODE_F17 =$006C; // F17
|
||||
SCE_IME_KEYCODE_F18 =$006D; // F18
|
||||
SCE_IME_KEYCODE_F19 =$006E; // F19
|
||||
SCE_IME_KEYCODE_F20 =$006F; // F20
|
||||
SCE_IME_KEYCODE_F21 =$0070; // F21
|
||||
SCE_IME_KEYCODE_F22 =$0071; // F22
|
||||
SCE_IME_KEYCODE_F23 =$0072; // F23
|
||||
SCE_IME_KEYCODE_F24 =$0073; // F24
|
||||
SCE_IME_KEYCODE_EXECUTE =$0074; // Execute
|
||||
SCE_IME_KEYCODE_HELP =$0075; // Help
|
||||
SCE_IME_KEYCODE_MENU =$0076; // Menu
|
||||
SCE_IME_KEYCODE_SELECT =$0077; // Select
|
||||
SCE_IME_KEYCODE_STOP =$0078; // Stop
|
||||
SCE_IME_KEYCODE_AGAIN =$0079; // Again
|
||||
SCE_IME_KEYCODE_UNDO =$007A; // Undo
|
||||
SCE_IME_KEYCODE_CUT =$007B; // Cut
|
||||
SCE_IME_KEYCODE_COPY =$007C; // Copy
|
||||
SCE_IME_KEYCODE_PASTE =$007D; // Paste
|
||||
SCE_IME_KEYCODE_FIND =$007E; // Find
|
||||
SCE_IME_KEYCODE_MUTE =$007F; // Mute
|
||||
SCE_IME_KEYCODE_VOLUMEUP =$0080; // Volume Up
|
||||
SCE_IME_KEYCODE_VOLUMEDOWN =$0081; // Volume Down
|
||||
SCE_IME_KEYCODE_LOCKING_CAPSLOCK =$0082; // Locking Caps Lock
|
||||
SCE_IME_KEYCODE_LOCKING_NUMLOCK =$0083; // Locking Num Lock
|
||||
SCE_IME_KEYCODE_LOCKING_SCROLLLOCK =$0084; // Locking Scroll Lock
|
||||
SCE_IME_KEYCODE_KEYPAD_COMMA =$0085; // Keypad ,
|
||||
SCE_IME_KEYCODE_KEYPAD_EQUALSIGN =$0086; // Keypad Equal Sign
|
||||
SCE_IME_KEYCODE_INTERNATIONAL1 =$0087; // International 1
|
||||
SCE_IME_KEYCODE_INTERNATIONAL2 =$0088; // International 2
|
||||
SCE_IME_KEYCODE_INTERNATIONAL3 =$0089; // International 3
|
||||
SCE_IME_KEYCODE_INTERNATIONAL4 =$008A; // International 4
|
||||
SCE_IME_KEYCODE_INTERNATIONAL5 =$008B; // International 5
|
||||
SCE_IME_KEYCODE_INTERNATIONAL6 =$008C; // International 6
|
||||
SCE_IME_KEYCODE_INTERNATIONAL7 =$008D; // International 7
|
||||
SCE_IME_KEYCODE_INTERNATIONAL8 =$008E; // International 8
|
||||
SCE_IME_KEYCODE_INTERNATIONAL9 =$008F; // International 9
|
||||
SCE_IME_KEYCODE_LANG1 =$0090; // Language 1
|
||||
SCE_IME_KEYCODE_LANG2 =$0091; // Language 2
|
||||
SCE_IME_KEYCODE_LANG3 =$0092; // Language 3
|
||||
SCE_IME_KEYCODE_LANG4 =$0093; // Language 4
|
||||
SCE_IME_KEYCODE_LANG5 =$0094; // Language 5
|
||||
SCE_IME_KEYCODE_LANG6 =$0095; // Language 6
|
||||
SCE_IME_KEYCODE_LANG7 =$0096; // Language 7
|
||||
SCE_IME_KEYCODE_LANG8 =$0097; // Language 8
|
||||
SCE_IME_KEYCODE_LANG9 =$0098; // Language 9
|
||||
SCE_IME_KEYCODE_ALTERASE =$0099; // Alternate Erase
|
||||
SCE_IME_KEYCODE_SYSREQ =$009A; // SysReq / Attention
|
||||
SCE_IME_KEYCODE_CANCEL =$009B; // Cancel
|
||||
SCE_IME_KEYCODE_CLEAR =$009C; // Clear
|
||||
SCE_IME_KEYCODE_PRIOR =$009D; // Prior
|
||||
SCE_IME_KEYCODE_RETURN2 =$009E; // Return
|
||||
SCE_IME_KEYCODE_SEPARATOR =$009F; // Separator
|
||||
SCE_IME_KEYCODE_OUT =$00A0; // Out
|
||||
SCE_IME_KEYCODE_OPER =$00A1; // Oper
|
||||
SCE_IME_KEYCODE_CLEAR_AGAIN =$00A2; // Clear/Again
|
||||
SCE_IME_KEYCODE_CRSEL_PROPS =$00A3; // CrSel/Props
|
||||
SCE_IME_KEYCODE_EXSEL =$00A4; // ExSel
|
||||
SCE_IME_KEYCODE_KEYPAD_00 =$00B0; // Keypad 00
|
||||
SCE_IME_KEYCODE_KEYPAD_000 =$00B1; // Keypad 000
|
||||
SCE_IME_KEYCODE_THOUSANDSSEPARATOR =$00B2; // Thousands Separator
|
||||
SCE_IME_KEYCODE_DECIMALSEPARATOR =$00B3; // Decimal Separator
|
||||
SCE_IME_KEYCODE_CURRENCYUNIT =$00B4; // Currency Unit
|
||||
SCE_IME_KEYCODE_CURRENCYSUBUNIT =$00B5; // Currency Sub-Unit
|
||||
SCE_IME_KEYCODE_KEYPAD_LEFTPARENTHESIS =$00B6; // Keypad (
|
||||
SCE_IME_KEYCODE_KEYPAD_RIGHTPARENTHESIS =$00B7; // Keypad )
|
||||
SCE_IME_KEYCODE_KEYPAD_LEFTCURLYBRACKET =$00B8; // Keypad {
|
||||
SCE_IME_KEYCODE_KEYPAD_RIGHTCURLYBRACKET=$00B9; // Keypad }
|
||||
SCE_IME_KEYCODE_KEYPAD_TAB =$00BA; // Keypad Tab
|
||||
SCE_IME_KEYCODE_KEYPAD_BACKSPACE =$00BB; // Keypad BackSpace
|
||||
SCE_IME_KEYCODE_KEYPAD_A =$00BC; // Keypad A
|
||||
SCE_IME_KEYCODE_KEYPAD_B =$00BD; // Keypad B
|
||||
SCE_IME_KEYCODE_KEYPAD_C =$00BE; // Keypad C
|
||||
SCE_IME_KEYCODE_KEYPAD_D =$00BF; // Keypad D
|
||||
SCE_IME_KEYCODE_KEYPAD_E =$00C0; // Keypad E
|
||||
SCE_IME_KEYCODE_KEYPAD_F =$00C1; // Keypad F
|
||||
SCE_IME_KEYCODE_KEYPAD_XOR =$00C2; // Keypad XOR
|
||||
SCE_IME_KEYCODE_KEYPAD_HAT =$00C3; // Keypad ^
|
||||
SCE_IME_KEYCODE_KEYPAD_PERCENT =$00C4; // Keypad %
|
||||
SCE_IME_KEYCODE_KEYPAD_LESSTHAN =$00C5; // Keypad <
|
||||
SCE_IME_KEYCODE_KEYPAD_GREATERTHAN =$00C6; // Keypad >
|
||||
SCE_IME_KEYCODE_KEYPAD_AND =$00C7; // Keypad &
|
||||
SCE_IME_KEYCODE_KEYPAD_LOGICALAND =$00C8; // Keypad &&
|
||||
SCE_IME_KEYCODE_KEYPAD_OR =$00C9; // Keypad |
|
||||
SCE_IME_KEYCODE_KEYPAD_LOGICALOR =$00CA; // Keypad ||
|
||||
SCE_IME_KEYCODE_KEYPAD_COLON =$00CB; // Keypad :
|
||||
SCE_IME_KEYCODE_KEYPAD_NUMBER =$00CC; // Keypad #
|
||||
SCE_IME_KEYCODE_KEYPAD_SPACE =$00CD; // Keypad Space
|
||||
SCE_IME_KEYCODE_KEYPAD_ATSIGN =$00CE; // Keypad @
|
||||
SCE_IME_KEYCODE_KEYPAD_EXCLAMATION =$00CF; // Keypad !
|
||||
SCE_IME_KEYCODE_KEYPAD_MEMORY_STORE =$00D0; // Keypad Memory Store
|
||||
SCE_IME_KEYCODE_KEYPAD_MEMORY_RECALL =$00D1; // Keypad Memory Recall
|
||||
SCE_IME_KEYCODE_KEYPAD_MEMORY_CLEAR =$00D2; // Keypad Memory Clear
|
||||
SCE_IME_KEYCODE_KEYPAD_MEMORY_ADD =$00D3; // Keypad Memory Add
|
||||
SCE_IME_KEYCODE_KEYPAD_MEMORY_SUBTRACT =$00D4; // Keypad Memory Subtract
|
||||
SCE_IME_KEYCODE_KEYPAD_MEMORY_MULTIPLY =$00D5; // Keypad Memory Multiply
|
||||
SCE_IME_KEYCODE_KEYPAD_MEMORY_DIVIDE =$00D6; // Keypad Memory Divide
|
||||
SCE_IME_KEYCODE_KEYPAD_PLUS_MINUS =$00D7; // Keypad +/-
|
||||
SCE_IME_KEYCODE_KEYPAD_CLEAR =$00D8; // Keypad Clear
|
||||
SCE_IME_KEYCODE_KEYPAD_CLEARENTRY =$00D9; // Keypad Clear Entry
|
||||
SCE_IME_KEYCODE_KEYPAD_BINARY =$00DA; // Keypad Binary
|
||||
SCE_IME_KEYCODE_KEYPAD_OCTAL =$00DB; // Keypad Octal
|
||||
SCE_IME_KEYCODE_KEYPAD_DECIMAL =$00DC; // Keypad Decimal
|
||||
SCE_IME_KEYCODE_KEYPAD_HEXADECIMAL =$00DD; // Keypad Hexadecimal
|
||||
SCE_IME_KEYCODE_LEFTCONTROL =$00E0; // Keypad Left Control
|
||||
SCE_IME_KEYCODE_LEFTSHIFT =$00E1; // Keypad Left Shift
|
||||
SCE_IME_KEYCODE_LEFTALT =$00E2; // Keypad Left Alt
|
||||
SCE_IME_KEYCODE_LEFTGUI =$00E3; // Keypad Left Gui
|
||||
SCE_IME_KEYCODE_RIGHTCONTROL =$00E4; // Keypad Right Control
|
||||
SCE_IME_KEYCODE_RIGHTSHIFT =$00E5; // Keypad Right Shift
|
||||
SCE_IME_KEYCODE_RIGHTALT =$00E6; // Keypad Right Alt
|
||||
SCE_IME_KEYCODE_RIGHTGUI =$00E7; // Keypad Right Gui
|
||||
|
||||
//Size of work buffer used by the Ime library
|
||||
SCE_IME_WORK_BUFFER_SIZE=(20*1024);
|
||||
|
||||
//Various maximum sizes for the IME
|
||||
|
@ -306,43 +527,43 @@ const
|
|||
//Keyboard layout types for keyboard devices
|
||||
//SceImeKeyboardType
|
||||
SCE_IME_KEYBOARD_TYPE_NONE = 0;
|
||||
SCE_IME_KEYBOARD_TYPE_DANISH = 1;
|
||||
SCE_IME_KEYBOARD_TYPE_GERMAN = 2;
|
||||
SCE_IME_KEYBOARD_TYPE_GERMAN_SW = 3;
|
||||
SCE_IME_KEYBOARD_TYPE_ENGLISH_US = 4;
|
||||
SCE_IME_KEYBOARD_TYPE_ENGLISH_GB = 5;
|
||||
SCE_IME_KEYBOARD_TYPE_SPANISH = 6;
|
||||
SCE_IME_KEYBOARD_TYPE_SPANISH_LA = 7;
|
||||
SCE_IME_KEYBOARD_TYPE_FINNISH = 8;
|
||||
SCE_IME_KEYBOARD_TYPE_FRENCH = 9;
|
||||
SCE_IME_KEYBOARD_TYPE_FRENCH_BR = 10;
|
||||
SCE_IME_KEYBOARD_TYPE_FRENCH_CA = 11;
|
||||
SCE_IME_KEYBOARD_TYPE_FRENCH_SW = 12;
|
||||
SCE_IME_KEYBOARD_TYPE_ITALIAN = 13;
|
||||
SCE_IME_KEYBOARD_TYPE_DUTCH = 14;
|
||||
SCE_IME_KEYBOARD_TYPE_NORWEGIAN = 15;
|
||||
SCE_IME_KEYBOARD_TYPE_POLISH = 16;
|
||||
SCE_IME_KEYBOARD_TYPE_PORTUGUESE_BR = 17;
|
||||
SCE_IME_KEYBOARD_TYPE_PORTUGUESE_PT = 18;
|
||||
SCE_IME_KEYBOARD_TYPE_RUSSIAN = 19;
|
||||
SCE_IME_KEYBOARD_TYPE_SWEDISH = 20;
|
||||
SCE_IME_KEYBOARD_TYPE_TURKISH = 21;
|
||||
SCE_IME_KEYBOARD_TYPE_JAPANESE_ROMAN = 22;
|
||||
SCE_IME_KEYBOARD_TYPE_JAPANESE_KANA = 23;
|
||||
SCE_IME_KEYBOARD_TYPE_KOREAN = 24;
|
||||
SCE_IME_KEYBOARD_TYPE_SM_CHINESE = 25;
|
||||
SCE_IME_KEYBOARD_TYPE_TR_CHINESE_ZY = 26;
|
||||
SCE_IME_KEYBOARD_TYPE_TR_CHINESE_PY_HK = 27;
|
||||
SCE_IME_KEYBOARD_TYPE_TR_CHINESE_PY_TW = 28;
|
||||
SCE_IME_KEYBOARD_TYPE_TR_CHINESE_CG = 29;
|
||||
SCE_IME_KEYBOARD_TYPE_ARABIC_AR = 30;
|
||||
SCE_IME_KEYBOARD_TYPE_THAI = 31;
|
||||
SCE_IME_KEYBOARD_TYPE_CZECH = 32;
|
||||
SCE_IME_KEYBOARD_TYPE_GREEK = 33;
|
||||
SCE_IME_KEYBOARD_TYPE_INDONESIAN = 34;
|
||||
SCE_IME_KEYBOARD_TYPE_VIETNAMESE = 35;
|
||||
SCE_IME_KEYBOARD_TYPE_ROMANIAN = 36;
|
||||
SCE_IME_KEYBOARD_TYPE_HUNGARIAN = 37;
|
||||
SCE_IME_KEYBOARD_TYPE_DANISH = 1; //LANG_DANISH
|
||||
SCE_IME_KEYBOARD_TYPE_GERMAN = 2; //LANG_GERMAN else
|
||||
SCE_IME_KEYBOARD_TYPE_GERMAN_SW = 3; //LANG_GERMAN SUBLANG_GERMAN_SWISS
|
||||
SCE_IME_KEYBOARD_TYPE_ENGLISH_US = 4; //LANG_ENGLISH else
|
||||
SCE_IME_KEYBOARD_TYPE_ENGLISH_GB = 5; //LANG_ENGLISH SUBLANG_ENGLISH_UK
|
||||
SCE_IME_KEYBOARD_TYPE_SPANISH = 6; //LANG_SPANISH SUBLANG_SPANISH SUBLANG_SPANISH_MEXICAN SUBLANG_SPANISH_MODERN
|
||||
SCE_IME_KEYBOARD_TYPE_SPANISH_LA = 7; //LANG_SPANISH else
|
||||
SCE_IME_KEYBOARD_TYPE_FINNISH = 8; //LANG_FINNISH
|
||||
SCE_IME_KEYBOARD_TYPE_FRENCH = 9; //LANG_FRENCH else
|
||||
SCE_IME_KEYBOARD_TYPE_FRENCH_BR = 10; //LANG_FRENCH SUBLANG_FRENCH_BELGIAN
|
||||
SCE_IME_KEYBOARD_TYPE_FRENCH_CA = 11; //LANG_FRENCH SUBLANG_FRENCH_CANADIAN
|
||||
SCE_IME_KEYBOARD_TYPE_FRENCH_SW = 12; //LANG_FRENCH SUBLANG_FRENCH_SWISS
|
||||
SCE_IME_KEYBOARD_TYPE_ITALIAN = 13; //LANG_ITALIAN
|
||||
SCE_IME_KEYBOARD_TYPE_DUTCH = 14; //LANG_DUTCH
|
||||
SCE_IME_KEYBOARD_TYPE_NORWEGIAN = 15; //LANG_NORWEGIAN
|
||||
SCE_IME_KEYBOARD_TYPE_POLISH = 16; //LANG_POLISH
|
||||
SCE_IME_KEYBOARD_TYPE_PORTUGUESE_BR = 17; //LANG_PORTUGUESE SUBLANG_PORTUGUESE_BRAZILIAN
|
||||
SCE_IME_KEYBOARD_TYPE_PORTUGUESE_PT = 18; //LANG_PORTUGUESE SUBLANG_PORTUGUESE
|
||||
SCE_IME_KEYBOARD_TYPE_RUSSIAN = 19; //LANG_RUSSIAN
|
||||
SCE_IME_KEYBOARD_TYPE_SWEDISH = 20; //LANG_SWEDISH
|
||||
SCE_IME_KEYBOARD_TYPE_TURKISH = 21; //LANG_TURKISH
|
||||
SCE_IME_KEYBOARD_TYPE_JAPANESE_ROMAN = 22; //LANG_JAPANESE
|
||||
SCE_IME_KEYBOARD_TYPE_JAPANESE_KANA = 23; //LANG_JAPANESE ?
|
||||
SCE_IME_KEYBOARD_TYPE_KOREAN = 24; //LANG_KOREAN
|
||||
SCE_IME_KEYBOARD_TYPE_SM_CHINESE = 25; //LANG_CHINESE SUBLANG_CHINESE_SIMPLIFIED
|
||||
SCE_IME_KEYBOARD_TYPE_TR_CHINESE_ZY = 26; //LANG_CHINESE ?
|
||||
SCE_IME_KEYBOARD_TYPE_TR_CHINESE_PY_HK = 27; //LANG_CHINESE SUBLANG_CHINESE_HONGKONG
|
||||
SCE_IME_KEYBOARD_TYPE_TR_CHINESE_PY_TW = 28; //LANG_CHINESE ?
|
||||
SCE_IME_KEYBOARD_TYPE_TR_CHINESE_CG = 29; //LANG_CHINESE else
|
||||
SCE_IME_KEYBOARD_TYPE_ARABIC_AR = 30; //LANG_ARABIC
|
||||
SCE_IME_KEYBOARD_TYPE_THAI = 31; //LANG_THAI
|
||||
SCE_IME_KEYBOARD_TYPE_CZECH = 32; //LANG_CZECH
|
||||
SCE_IME_KEYBOARD_TYPE_GREEK = 33; //LANG_GREEK
|
||||
SCE_IME_KEYBOARD_TYPE_INDONESIAN = 34; //LANG_INDONESIAN
|
||||
SCE_IME_KEYBOARD_TYPE_VIETNAMESE = 35; //LANG_VIETNAMESE
|
||||
SCE_IME_KEYBOARD_TYPE_ROMANIAN = 36; //LANG_ROMANIAN
|
||||
SCE_IME_KEYBOARD_TYPE_HUNGARIAN = 37; //LANG_HUNGARIAN
|
||||
|
||||
//Keyboard device types
|
||||
//SceImeKeyboardDeviceType
|
||||
|
@ -534,143 +755,238 @@ end;
|
|||
|
||||
function scan_code_to_hid(scanCode:Word):Word;
|
||||
begin
|
||||
Result:=0;
|
||||
Result:=SCE_IME_KEYCODE_ERRORUNDEFINED;
|
||||
Case scanCode of
|
||||
$00FF:Result:=$01; // Overrun Error
|
||||
$00FC:Result:=$02; // POST Fail
|
||||
$001E:Result:=$04; // a A
|
||||
$0030:Result:=$05; // b B
|
||||
$002E:Result:=$06; // c C
|
||||
$0020:Result:=$07; // d D
|
||||
$0012:Result:=$08; // e E
|
||||
$0021:Result:=$09; // f F
|
||||
$0022:Result:=$0A; // g G
|
||||
$0023:Result:=$0B; // h H
|
||||
$0017:Result:=$0C; // i I
|
||||
$0024:Result:=$0D; // j J
|
||||
$0025:Result:=$0E; // k K
|
||||
$0026:Result:=$0F; // l L
|
||||
$0032:Result:=$10; // m M
|
||||
$0031:Result:=$11; // n N
|
||||
$0018:Result:=$12; // o O
|
||||
$0019:Result:=$13; // p P
|
||||
$0010:Result:=$14; // q Q
|
||||
$0013:Result:=$15; // r R
|
||||
$001F:Result:=$16; // s S
|
||||
$0014:Result:=$17; // t T
|
||||
$0016:Result:=$18; // u U
|
||||
$002F:Result:=$19; // v V
|
||||
$0011:Result:=$1A; // w W
|
||||
$002D:Result:=$1B; // x X
|
||||
$0015:Result:=$1C; // y Y
|
||||
$002C:Result:=$1D; // z Z
|
||||
$0002:Result:=$1E; // 1 !
|
||||
$0003:Result:=$1F; // 2 @
|
||||
$0004:Result:=$20; // 3 #
|
||||
$0005:Result:=$21; // 4 $
|
||||
$0006:Result:=$22; // 5 %
|
||||
$0007:Result:=$23; // 6 ^
|
||||
$0008:Result:=$24; // 7 &
|
||||
$0009:Result:=$25; // 8 *
|
||||
$000A:Result:=$26; // 9 (
|
||||
$000B:Result:=$27; // 0 )
|
||||
$001C:Result:=$28; // Return
|
||||
$0001:Result:=$29; // Escape
|
||||
$000E:Result:=$2A; // Backspace
|
||||
$000F:Result:=$2B; // Tab
|
||||
$0039:Result:=$2C; // Space
|
||||
$000C:Result:=$2D; // - _
|
||||
$000D:Result:=$2E; // = +
|
||||
$001A:Result:=$2F; // [ {
|
||||
$001B:Result:=$30; // ] }
|
||||
$002B:Result:=$31; // \ |
|
||||
//$002B:Result:=$32; // Europe 1 (Note 2)
|
||||
$0027:Result:=$33; // ; :
|
||||
$0028:Result:=$34; // ' "
|
||||
$0029:Result:=$35; // ` ~
|
||||
$0033:Result:=$36; // , <
|
||||
$0034:Result:=$37; // . >
|
||||
$0035:Result:=$38; // / ?
|
||||
$003A:Result:=$39; // Caps Lock
|
||||
$003B:Result:=$3A; // F1
|
||||
$003C:Result:=$3B; // F2
|
||||
$003D:Result:=$3C; // F3
|
||||
$003E:Result:=$3D; // F4
|
||||
$003F:Result:=$3E; // F5
|
||||
$0040:Result:=$3F; // F6
|
||||
$0041:Result:=$40; // F7
|
||||
$0042:Result:=$41; // F8
|
||||
$0043:Result:=$42; // F9
|
||||
$0044:Result:=$43; // F10
|
||||
$0057:Result:=$44; // F11
|
||||
$0058:Result:=$45; // F12
|
||||
$0054:Result:=$46; // Print Screen (Note 1)
|
||||
$E037:Result:=$46; // Print Screen (Note 1)
|
||||
$0046:Result:=$47; // Scroll Lock
|
||||
$e046:Result:=$48; // Break (Ctrl + Pause)
|
||||
$e11d:Result:=$48; // Pause (Ctrl + NumLock)
|
||||
$E052:Result:=$49; // Insert (Note 1)
|
||||
$E047:Result:=$4A; // Home (Note 1)
|
||||
$E049:Result:=$4B; // Page Up (Note 1)
|
||||
$E053:Result:=$4C; // Delete (Note 1)
|
||||
$E04F:Result:=$4D; // End (Note 1)
|
||||
$E051:Result:=$4E; // Page Down (Note 1)
|
||||
$E04D:Result:=$4F; // Right Arrow (Note 1)
|
||||
$E04B:Result:=$50; // Left Arrow (Note 1)
|
||||
$E050:Result:=$51; // Down Arrow (Note 1)
|
||||
$E048:Result:=$52; // Up Arrow (Note 1)
|
||||
$0045:Result:=$53; // Num Lock
|
||||
$E035:Result:=$54; // Keypad / (Note 1)
|
||||
$0037:Result:=$55; // Keypad *
|
||||
$004A:Result:=$56; // Keypad -
|
||||
$004E:Result:=$57; // Keypad +
|
||||
$E01C:Result:=$58; // Keypad Enter
|
||||
$004F:Result:=$59; // Keypad 1 End
|
||||
$0050:Result:=$5A; // Keypad 2 Down
|
||||
$0051:Result:=$5B; // Keypad 3 PageDn
|
||||
$004B:Result:=$5C; // Keypad 4 Left
|
||||
$004C:Result:=$5D; // Keypad 5
|
||||
$004D:Result:=$5E; // Keypad 6 Right
|
||||
$0047:Result:=$5F; // Keypad 7 Home
|
||||
$0048:Result:=$60; // Keypad 8 Up
|
||||
$0049:Result:=$61; // Keypad 9 PageUp
|
||||
$0052:Result:=$62; // Keypad 0 Insert
|
||||
$0053:Result:=$63; // Keypad . Delete
|
||||
$0056:Result:=$64; // Europe 2 (Note 2)
|
||||
$E05D:Result:=$65; // App
|
||||
$0059:Result:=$67; // Keypad =
|
||||
$005D:Result:=$68; // F13
|
||||
$005E:Result:=$69; // F14
|
||||
$005F:Result:=$6A; // F15
|
||||
$007E:Result:=$85; // Keypad , (Brazilian Keypad .)
|
||||
$0073:Result:=$87; // Keyboard Int'l 1 ろ (Ro)
|
||||
$0070:Result:=$88; // Keyboard Int'l 2 かたかな ひらがな ローマ字 (Katakana/Hiragana)
|
||||
$007D:Result:=$89; // Keyboard Int'l 3 ¥ (Yen)
|
||||
$0079:Result:=$8A; // Keyboard Int'l 4 前候補 変換 (次候補) 全候補 (Henkan)
|
||||
$007B:Result:=$8B; // Keyboard Int'l 5 無変換 (Muhenkan)
|
||||
$005C:Result:=$8C; // Keyboard Int'l 6 (PC9800 Keypad , )
|
||||
$00F2:Result:=$90; // Keyboard Lang 1 한/영 (Hanguel/English)
|
||||
$00F1:Result:=$91; // Keyboard Lang 2 한자 (Hanja)
|
||||
$0078:Result:=$92; // Keyboard Lang 3 かたかな (Katakana)
|
||||
$0077:Result:=$93; // Keyboard Lang 4 ひらがな (Hiragana)
|
||||
$0076:Result:=$94; // Keyboard Lang 5 半角/全角 (Zenkaku/Hankaku)
|
||||
$001D:Result:=$E0; // Left Control
|
||||
$002A:Result:=$E1; // Left Shift
|
||||
$0038:Result:=$E2; // Left Alt
|
||||
$E05B:Result:=$E3; // Left GUI
|
||||
$E01D:Result:=$E4; // Right Control
|
||||
$0036:Result:=$E5; // Right Shift
|
||||
$E038:Result:=$E6; // Right Alt
|
||||
$E05C:Result:=$E7; // Right GUI
|
||||
$00FF:Result:=SCE_IME_KEYCODE_ERRORROLLOVER;
|
||||
$00FC:Result:=SCE_IME_KEYCODE_POSTFAIL ;
|
||||
//
|
||||
$001E:Result:=SCE_IME_KEYCODE_A;
|
||||
$0030:Result:=SCE_IME_KEYCODE_B;
|
||||
$002E:Result:=SCE_IME_KEYCODE_C;
|
||||
$0020:Result:=SCE_IME_KEYCODE_D;
|
||||
$0012:Result:=SCE_IME_KEYCODE_E;
|
||||
$0021:Result:=SCE_IME_KEYCODE_F;
|
||||
$0022:Result:=SCE_IME_KEYCODE_G;
|
||||
$0023:Result:=SCE_IME_KEYCODE_H;
|
||||
$0017:Result:=SCE_IME_KEYCODE_I;
|
||||
$0024:Result:=SCE_IME_KEYCODE_J;
|
||||
$0025:Result:=SCE_IME_KEYCODE_K;
|
||||
$0026:Result:=SCE_IME_KEYCODE_L;
|
||||
$0032:Result:=SCE_IME_KEYCODE_M;
|
||||
$0031:Result:=SCE_IME_KEYCODE_N;
|
||||
$0018:Result:=SCE_IME_KEYCODE_O;
|
||||
$0019:Result:=SCE_IME_KEYCODE_P;
|
||||
$0010:Result:=SCE_IME_KEYCODE_Q;
|
||||
$0013:Result:=SCE_IME_KEYCODE_R;
|
||||
$001F:Result:=SCE_IME_KEYCODE_S;
|
||||
$0014:Result:=SCE_IME_KEYCODE_T;
|
||||
$0016:Result:=SCE_IME_KEYCODE_U;
|
||||
$002F:Result:=SCE_IME_KEYCODE_V;
|
||||
$0011:Result:=SCE_IME_KEYCODE_W;
|
||||
$002D:Result:=SCE_IME_KEYCODE_X;
|
||||
$0015:Result:=SCE_IME_KEYCODE_Y;
|
||||
$002C:Result:=SCE_IME_KEYCODE_Z;
|
||||
$0002:Result:=SCE_IME_KEYCODE_1;
|
||||
$0003:Result:=SCE_IME_KEYCODE_2;
|
||||
$0004:Result:=SCE_IME_KEYCODE_3;
|
||||
$0005:Result:=SCE_IME_KEYCODE_4;
|
||||
$0006:Result:=SCE_IME_KEYCODE_5;
|
||||
$0007:Result:=SCE_IME_KEYCODE_6;
|
||||
$0008:Result:=SCE_IME_KEYCODE_7;
|
||||
$0009:Result:=SCE_IME_KEYCODE_8;
|
||||
$000A:Result:=SCE_IME_KEYCODE_9;
|
||||
$000B:Result:=SCE_IME_KEYCODE_0;
|
||||
$001C:Result:=SCE_IME_KEYCODE_RETURN;
|
||||
$0001:Result:=SCE_IME_KEYCODE_ESCAPE;
|
||||
$000E:Result:=SCE_IME_KEYCODE_BACKSPACE;
|
||||
$000F:Result:=SCE_IME_KEYCODE_TAB;
|
||||
$0039:Result:=SCE_IME_KEYCODE_SPACEBAR;
|
||||
$000C:Result:=SCE_IME_KEYCODE_MINUS;
|
||||
$000D:Result:=SCE_IME_KEYCODE_EQUAL;
|
||||
$001A:Result:=SCE_IME_KEYCODE_LEFTBRACKET;
|
||||
$001B:Result:=SCE_IME_KEYCODE_RIGHTBRACKET;
|
||||
$002B:Result:=SCE_IME_KEYCODE_BACKSLASH;
|
||||
//
|
||||
$0027:Result:=SCE_IME_KEYCODE_SEMICOLON;
|
||||
$0028:Result:=SCE_IME_KEYCODE_SINGLEQUOTE;
|
||||
$0029:Result:=SCE_IME_KEYCODE_BACKQUOTE;
|
||||
$0033:Result:=SCE_IME_KEYCODE_COMMA;
|
||||
$0034:Result:=SCE_IME_KEYCODE_PERIOD;
|
||||
$0035:Result:=SCE_IME_KEYCODE_SLASH;
|
||||
$003A:Result:=SCE_IME_KEYCODE_CAPSLOCK;
|
||||
$003B:Result:=SCE_IME_KEYCODE_F1;
|
||||
$003C:Result:=SCE_IME_KEYCODE_F2;
|
||||
$003D:Result:=SCE_IME_KEYCODE_F3;
|
||||
$003E:Result:=SCE_IME_KEYCODE_F4;
|
||||
$003F:Result:=SCE_IME_KEYCODE_F5;
|
||||
$0040:Result:=SCE_IME_KEYCODE_F6;
|
||||
$0041:Result:=SCE_IME_KEYCODE_F7;
|
||||
$0042:Result:=SCE_IME_KEYCODE_F8;
|
||||
$0043:Result:=SCE_IME_KEYCODE_F9;
|
||||
$0044:Result:=SCE_IME_KEYCODE_F10;
|
||||
$0057:Result:=SCE_IME_KEYCODE_F11;
|
||||
$0058:Result:=SCE_IME_KEYCODE_F12;
|
||||
$E037,
|
||||
$0054:Result:=SCE_IME_KEYCODE_PRINTSCREEN;
|
||||
$0046:Result:=SCE_IME_KEYCODE_SCROLLLOCK;
|
||||
$E11D,
|
||||
$E046:Result:=SCE_IME_KEYCODE_PAUSE;
|
||||
$E052:Result:=SCE_IME_KEYCODE_INSERT;
|
||||
$E047:Result:=SCE_IME_KEYCODE_HOME;
|
||||
$E049:Result:=SCE_IME_KEYCODE_PAGEUP;
|
||||
$E053:Result:=SCE_IME_KEYCODE_DELETE;
|
||||
$E04F:Result:=SCE_IME_KEYCODE_END;
|
||||
$E051:Result:=SCE_IME_KEYCODE_PAGEDOWN;
|
||||
$E04D:Result:=SCE_IME_KEYCODE_RIGHTARROW;
|
||||
$E04B:Result:=SCE_IME_KEYCODE_LEFTARROW;
|
||||
$E050:Result:=SCE_IME_KEYCODE_DOWNARROW;
|
||||
$E048:Result:=SCE_IME_KEYCODE_UPARROW;
|
||||
$0045:Result:=SCE_IME_KEYCODE_KEYPAD_NUMLOCK;
|
||||
$E035:Result:=SCE_IME_KEYCODE_KEYPAD_SLASH;
|
||||
$0037:Result:=SCE_IME_KEYCODE_KEYPAD_ASTERISK;
|
||||
$004A:Result:=SCE_IME_KEYCODE_KEYPAD_MINUS;
|
||||
$004E:Result:=SCE_IME_KEYCODE_KEYPAD_PLUS;
|
||||
$E01C:Result:=SCE_IME_KEYCODE_KEYPAD_ENTER;
|
||||
$004F:Result:=SCE_IME_KEYCODE_KEYPAD_1;
|
||||
$0050:Result:=SCE_IME_KEYCODE_KEYPAD_2;
|
||||
$0051:Result:=SCE_IME_KEYCODE_KEYPAD_3;
|
||||
$004B:Result:=SCE_IME_KEYCODE_KEYPAD_4;
|
||||
$004C:Result:=SCE_IME_KEYCODE_KEYPAD_5;
|
||||
$004D:Result:=SCE_IME_KEYCODE_KEYPAD_6;
|
||||
$0047:Result:=SCE_IME_KEYCODE_KEYPAD_7;
|
||||
$0048:Result:=SCE_IME_KEYCODE_KEYPAD_8;
|
||||
$0049:Result:=SCE_IME_KEYCODE_KEYPAD_9;
|
||||
$0052:Result:=SCE_IME_KEYCODE_KEYPAD_0;
|
||||
$0053:Result:=SCE_IME_KEYCODE_KEYPAD_PERIOD;
|
||||
$0056:Result:=SCE_IME_KEYCODE_NONUS_BACKSLASH;
|
||||
$E05D:Result:=SCE_IME_KEYCODE_APPLICATION;
|
||||
$E05E:Result:=SCE_IME_KEYCODE_POWER;
|
||||
$0059:Result:=SCE_IME_KEYCODE_KEYPAD_EQUAL;
|
||||
$0064:Result:=SCE_IME_KEYCODE_F13;
|
||||
$0065:Result:=SCE_IME_KEYCODE_F14;
|
||||
$0066:Result:=SCE_IME_KEYCODE_F15;
|
||||
$0067:Result:=SCE_IME_KEYCODE_F16;
|
||||
$0068:Result:=SCE_IME_KEYCODE_F17;
|
||||
$0069:Result:=SCE_IME_KEYCODE_F18;
|
||||
$006A:Result:=SCE_IME_KEYCODE_F19;
|
||||
$006B:Result:=SCE_IME_KEYCODE_F20;
|
||||
$006C:Result:=SCE_IME_KEYCODE_F21;
|
||||
$006D:Result:=SCE_IME_KEYCODE_F22;
|
||||
$006E:Result:=SCE_IME_KEYCODE_F23;
|
||||
$006F:Result:=SCE_IME_KEYCODE_F24;
|
||||
//
|
||||
$007E:Result:=SCE_IME_KEYCODE_KEYPAD_COMMA;
|
||||
//
|
||||
$0073:Result:=SCE_IME_KEYCODE_INTERNATIONAL1;
|
||||
$0070:Result:=SCE_IME_KEYCODE_INTERNATIONAL2;
|
||||
$007D:Result:=SCE_IME_KEYCODE_INTERNATIONAL3;
|
||||
$0079:Result:=SCE_IME_KEYCODE_INTERNATIONAL4;
|
||||
$007B:Result:=SCE_IME_KEYCODE_INTERNATIONAL5;
|
||||
$005C:Result:=SCE_IME_KEYCODE_INTERNATIONAL6;
|
||||
//
|
||||
$00F2:Result:=SCE_IME_KEYCODE_LANG1;
|
||||
$00F1:Result:=SCE_IME_KEYCODE_LANG2;
|
||||
$0078:Result:=SCE_IME_KEYCODE_LANG3;
|
||||
$0077:Result:=SCE_IME_KEYCODE_LANG4;
|
||||
$0076:Result:=SCE_IME_KEYCODE_LANG5;
|
||||
//
|
||||
$001D:Result:=SCE_IME_KEYCODE_LEFTCONTROL;
|
||||
$002A:Result:=SCE_IME_KEYCODE_LEFTSHIFT;
|
||||
$0038:Result:=SCE_IME_KEYCODE_LEFTALT;
|
||||
$E05B:Result:=SCE_IME_KEYCODE_LEFTGUI;
|
||||
$E01D:Result:=SCE_IME_KEYCODE_RIGHTCONTROL;
|
||||
$0036:Result:=SCE_IME_KEYCODE_RIGHTSHIFT;
|
||||
$E038:Result:=SCE_IME_KEYCODE_RIGHTALT;
|
||||
$E05C:Result:=SCE_IME_KEYCODE_RIGHTGUI;
|
||||
|
||||
else;
|
||||
end;
|
||||
end;
|
||||
|
||||
function keyboard_layout_to_type(Layout:HKL):Integer;
|
||||
begin
|
||||
Result:=SCE_IME_KEYBOARD_TYPE_NONE;
|
||||
|
||||
Layout:=Layout and $FFFF;
|
||||
|
||||
Case (Layout and $3FF) of
|
||||
LANG_DANISH:Result:=SCE_IME_KEYBOARD_TYPE_DANISH;
|
||||
|
||||
LANG_GERMAN:
|
||||
Case (Layout shr 10) of //SUBLANG_*
|
||||
SUBLANG_GERMAN_SWISS:Result:=SCE_IME_KEYBOARD_TYPE_GERMAN_SW;
|
||||
else Result:=SCE_IME_KEYBOARD_TYPE_GERMAN;
|
||||
end;
|
||||
|
||||
LANG_ENGLISH:
|
||||
Case (Layout shr 10) of //SUBLANG_*
|
||||
SUBLANG_ENGLISH_UK:Result:=SCE_IME_KEYBOARD_TYPE_ENGLISH_GB;
|
||||
else Result:=SCE_IME_KEYBOARD_TYPE_ENGLISH_US;
|
||||
end;
|
||||
|
||||
LANG_SPANISH :
|
||||
Case (Layout shr 10) of //SUBLANG_*
|
||||
SUBLANG_SPANISH,
|
||||
SUBLANG_SPANISH_MEXICAN,
|
||||
SUBLANG_SPANISH_MODERN:Result:=SCE_IME_KEYBOARD_TYPE_SPANISH;
|
||||
else
|
||||
Result:=SCE_IME_KEYBOARD_TYPE_SPANISH_LA;
|
||||
end;
|
||||
|
||||
LANG_FINNISH:Result:=SCE_IME_KEYBOARD_TYPE_FINNISH;
|
||||
|
||||
LANG_FRENCH:
|
||||
Case (Layout shr 10) of //SUBLANG_*
|
||||
SUBLANG_FRENCH_BELGIAN :Result:=SCE_IME_KEYBOARD_TYPE_FRENCH_BR;
|
||||
SUBLANG_FRENCH_CANADIAN:Result:=SCE_IME_KEYBOARD_TYPE_FRENCH_CA;
|
||||
SUBLANG_FRENCH_SWISS :Result:=SCE_IME_KEYBOARD_TYPE_FRENCH_SW;
|
||||
else Result:=SCE_IME_KEYBOARD_TYPE_FRENCH;
|
||||
end;
|
||||
|
||||
LANG_ITALIAN :Result:=SCE_IME_KEYBOARD_TYPE_ITALIAN;
|
||||
LANG_DUTCH :Result:=SCE_IME_KEYBOARD_TYPE_DUTCH;
|
||||
LANG_NORWEGIAN:Result:=SCE_IME_KEYBOARD_TYPE_NORWEGIAN;
|
||||
LANG_POLISH :Result:=SCE_IME_KEYBOARD_TYPE_POLISH;
|
||||
|
||||
LANG_PORTUGUESE:
|
||||
Case (Layout shr 10) of //SUBLANG_*
|
||||
SUBLANG_PORTUGUESE:Result:=SCE_IME_KEYBOARD_TYPE_PORTUGUESE_PT;
|
||||
else Result:=SCE_IME_KEYBOARD_TYPE_PORTUGUESE_BR;
|
||||
end;
|
||||
|
||||
LANG_RUSSIAN :Result:=SCE_IME_KEYBOARD_TYPE_RUSSIAN;
|
||||
LANG_SWEDISH :Result:=SCE_IME_KEYBOARD_TYPE_SWEDISH;
|
||||
LANG_TURKISH :Result:=SCE_IME_KEYBOARD_TYPE_TURKISH;
|
||||
LANG_JAPANESE:Result:=SCE_IME_KEYBOARD_TYPE_JAPANESE_ROMAN;
|
||||
LANG_KOREAN :Result:=SCE_IME_KEYBOARD_TYPE_KOREAN;
|
||||
|
||||
|
||||
LANG_CHINESE:
|
||||
Case (Layout shr 10) of //SUBLANG_*
|
||||
SUBLANG_CHINESE_SIMPLIFIED:Result:=SCE_IME_KEYBOARD_TYPE_SM_CHINESE;
|
||||
SUBLANG_CHINESE_HONGKONG :Result:=SCE_IME_KEYBOARD_TYPE_TR_CHINESE_PY_HK
|
||||
else Result:=SCE_IME_KEYBOARD_TYPE_TR_CHINESE_CG;
|
||||
end;
|
||||
|
||||
LANG_ARABIC :Result:=SCE_IME_KEYBOARD_TYPE_ARABIC_AR;
|
||||
LANG_THAI :Result:=SCE_IME_KEYBOARD_TYPE_THAI;
|
||||
LANG_CZECH :Result:=SCE_IME_KEYBOARD_TYPE_CZECH;
|
||||
LANG_GREEK :Result:=SCE_IME_KEYBOARD_TYPE_GREEK;
|
||||
LANG_INDONESIAN:Result:=SCE_IME_KEYBOARD_TYPE_INDONESIAN;
|
||||
LANG_VIETNAMESE:Result:=SCE_IME_KEYBOARD_TYPE_VIETNAMESE;
|
||||
LANG_ROMANIAN :Result:=SCE_IME_KEYBOARD_TYPE_ROMANIAN;
|
||||
LANG_HUNGARIAN :Result:=SCE_IME_KEYBOARD_TYPE_HUNGARIAN;
|
||||
|
||||
else;
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
function KeyboardHookCallback(nCode:longint;wParam:WPARAM;lParam:LPARAM):LRESULT; stdcall;
|
||||
var
|
||||
KeyBoardState:TKeyboardState;
|
||||
ActiveThreadID:DWORD;
|
||||
KeyBoardLayOut:HKL;
|
||||
KeyBoardLayout:HKL;
|
||||
ScanCode:DWORD;
|
||||
status:DWORD;
|
||||
AChr:array[0..1] of WideChar;
|
||||
|
@ -682,10 +998,10 @@ begin
|
|||
KeyBoardState:=Default(TKeyboardState);
|
||||
GetKeyboardState(KeyBoardState);
|
||||
|
||||
ActiveThreadID:=GetWindowThreadProcessId(GetForegroundWindow, nil);
|
||||
KeyBoardLayOut:=GetKeyboardLayout(ActiveThreadID);
|
||||
ActiveThreadID:=GetWindowThreadProcessId(GetForegroundWindow,nil);
|
||||
KeyBoardLayout:=GetKeyboardLayout(ActiveThreadID);
|
||||
|
||||
ScanCode:=MapVirtualKeyEx(wParam,0,KeyBoardLayOut);
|
||||
ScanCode:=MapVirtualKeyEx(wParam,0,KeyBoardLayout);
|
||||
|
||||
status:=0;
|
||||
if (ScanCode<>0) then
|
||||
|
@ -693,7 +1009,7 @@ begin
|
|||
status:=status or SCE_IME_KEYCODE_STATE_KEYCODE_VALID;
|
||||
AChr[0]:=#0;
|
||||
AChr[1]:=#0;
|
||||
ToUnicodeEx(wParam,ScanCode,@KeyBoardState,@AChr,SizeOf(Achr),0,KeyBoardLayOut);
|
||||
ToUnicodeEx(wParam,ScanCode,@KeyBoardState,@AChr,SizeOf(Achr),0,KeyBoardLayout);
|
||||
if (AChr[0]<>#0) then
|
||||
begin
|
||||
status:=status or SCE_IME_KEYCODE_STATE_CHARACTER_VALID;
|
||||
|
@ -711,26 +1027,24 @@ begin
|
|||
end;
|
||||
end;
|
||||
|
||||
if ((GetKeyState(VK_CONTROL) and $8000)<>0) then
|
||||
if ((GetKeyState(VK_LCONTROL) and $8000)<>0) then
|
||||
begin
|
||||
if ((lParam and (KF_EXTENDED shl 16))=0) then
|
||||
begin
|
||||
status:=status or SCE_IME_KEYCODE_STATE_MODIFIER_L_CTRL;
|
||||
end else
|
||||
begin
|
||||
status:=status or SCE_IME_KEYCODE_STATE_MODIFIER_R_CTRL;
|
||||
end;
|
||||
status:=status or SCE_IME_KEYCODE_STATE_MODIFIER_L_CTRL;
|
||||
end;
|
||||
|
||||
if ((GetKeyState(VK_SHIFT) and $8000)<>0) then
|
||||
if ((GetKeyState(VK_RCONTROL) and $8000)<>0) then
|
||||
begin
|
||||
if ((lParam and (KF_EXTENDED shl 16))=0) then
|
||||
begin
|
||||
status:=status or SCE_IME_KEYCODE_STATE_MODIFIER_L_SHIFT;
|
||||
end else
|
||||
begin
|
||||
status:=status or SCE_IME_KEYCODE_STATE_MODIFIER_R_SHIFT;
|
||||
end;
|
||||
status:=status or SCE_IME_KEYCODE_STATE_MODIFIER_R_CTRL;
|
||||
end;
|
||||
|
||||
if ((GetKeyState(VK_LSHIFT) and $8000)<>0) then
|
||||
begin
|
||||
status:=status or SCE_IME_KEYCODE_STATE_MODIFIER_L_SHIFT;
|
||||
end;
|
||||
|
||||
if ((GetKeyState(VK_RSHIFT) and $8000)<>0) then
|
||||
begin
|
||||
status:=status or SCE_IME_KEYCODE_STATE_MODIFIER_R_SHIFT;
|
||||
end;
|
||||
|
||||
if ((GetKeyState(VK_LWIN) and $8000)<>0) then
|
||||
|
@ -762,7 +1076,7 @@ begin
|
|||
keycode.keycode :=scan_code_to_hid(scanCode);
|
||||
keycode.character :=AChr[0];
|
||||
keycode.status :=status;
|
||||
keycode._type :=SCE_IME_KEYBOARD_TYPE_ENGLISH_US;
|
||||
keycode._type :=keyboard_layout_to_type(KeyBoardLayout);
|
||||
keycode.userId :=-1;
|
||||
keycode.resourceId:=1;
|
||||
GetCurrentTick(@keycode.timestamp);
|
||||
|
@ -843,15 +1157,25 @@ begin
|
|||
end;
|
||||
|
||||
function ps4_sceImeKeyboardGetInfo(resourceId:DWORD;info:pSceImeKeyboardInfo):Integer; SysV_ABI_CDecl;
|
||||
var
|
||||
ActiveThreadID:DWORD;
|
||||
KeyBoardLayout:HKL;
|
||||
begin
|
||||
if (keyboard_init=0) then Exit(SCE_IME_ERROR_NOT_OPENED);
|
||||
if (info=nil) then Exit(SCE_IME_ERROR_INVALID_ADDRESS);
|
||||
|
||||
_sig_lock;
|
||||
|
||||
ActiveThreadID:=GetWindowThreadProcessId(GetForegroundWindow,nil);
|
||||
KeyBoardLayout:=GetKeyboardLayout(ActiveThreadID);
|
||||
|
||||
_sig_unlock;
|
||||
|
||||
info^:=Default(SceImeKeyboardInfo);
|
||||
|
||||
info^.userId:=-1;
|
||||
info^.device:=SCE_IME_KEYBOARD_DEVICE_TYPE_KEYBOARD;
|
||||
info^._type :=SCE_IME_KEYBOARD_TYPE_ENGLISH_US;
|
||||
info^.userId :=-1;
|
||||
info^.device :=SCE_IME_KEYBOARD_DEVICE_TYPE_KEYBOARD;
|
||||
info^._type :=keyboard_layout_to_type(KeyBoardLayout);
|
||||
info^.repeatDelay:=1;
|
||||
info^.repeatRate :=1;
|
||||
info^.status :=CE_IME_KEYBOARD_STATE_CONNECTED;
|
||||
|
|
Loading…
Reference in New Issue