mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-31 12:35:51 +00:00
feat(libSceConvertKeycode): implement sceConvertKeycodeGetCharacterFromKeyboardData
This commit is contained in:
1 parent
750cf6cf48
commit
b0ed32bd6c
3 files changed
+40
-2
No files matched your search
@@ -213,5 +213,35 @@ int main() {
|
||||
Require(sceConvertKeycodeGetCharacter(key, 0xFFFFFFFFu, layout, &character) == 0 && character == 0);
|
||||
}
|
||||
}
|
||||
KeyboardData keyData{};
|
||||
keyData.length = 1;
|
||||
keyData.key_code[0] = 4;
|
||||
char16_t kbdChar = u'?';
|
||||
Require(sceConvertKeycodeGetCharacterFromKeyboardData(nullptr, 0, 0, 4, &kbdChar) == static_cast<int>(0x80BC0031u));
|
||||
Require(sceConvertKeycodeGetCharacterFromKeyboardData(&keyData, 0, 0, 4, nullptr) == static_cast<int>(0x80BC0031u));
|
||||
for (std::int32_t badIndex : {-1, 1, 16}) {
|
||||
kbdChar = u'?';
|
||||
bool rejected = false;
|
||||
try {
|
||||
sceConvertKeycodeGetCharacterFromKeyboardData(&keyData, badIndex, 0, 4, &kbdChar);
|
||||
} catch (const std::runtime_error&) {
|
||||
rejected = true;
|
||||
}
|
||||
Require(rejected && kbdChar == u'?');
|
||||
}
|
||||
for (std::uint32_t layout : {31u, 39u}) {
|
||||
kbdChar = u'?';
|
||||
bool rejected = false;
|
||||
try {
|
||||
sceConvertKeycodeGetCharacterFromKeyboardData(&keyData, 0, 0, layout, &kbdChar);
|
||||
} catch (const std::runtime_error&) {
|
||||
rejected = true;
|
||||
}
|
||||
Require(rejected && kbdChar == u'?');
|
||||
}
|
||||
Require(sceConvertKeycodeGetCharacterFromKeyboardData(&keyData, 0, 0, 0, &kbdChar) == static_cast<int>(0x80BC001Du));
|
||||
Require(sceConvertKeycodeGetCharacterFromKeyboardData(&keyData, 0, 0, 40, &kbdChar) == static_cast<int>(0x80BC001Du));
|
||||
Require(sceConvertKeycodeGetCharacterFromKeyboardData(&keyData, 0, 0, 4, &kbdChar) == 0 && kbdChar == u'a');
|
||||
Require(sceConvertKeycodeGetCharacterFromKeyboardData(&keyData, 0, 0x200, 4, &kbdChar) == 0 && kbdChar == u'A');
|
||||
return 0;
|
||||
}
|
||||
Reference in new issue
Block a user