mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-04-21 03:55:32 +00:00
cellOskDialog: add some param checks
This commit is contained in:
parent
aa659f3c36
commit
d402507be2
2 changed files with 48 additions and 12 deletions
|
@ -1,4 +1,4 @@
|
|||
#include "stdafx.h"
|
||||
#include "stdafx.h"
|
||||
#include "Emu/System.h"
|
||||
#include "Emu/IdManager.h"
|
||||
#include "Emu/Cell/PPUModule.h"
|
||||
|
@ -448,6 +448,12 @@ error_code cellOskDialogDisableDimmer()
|
|||
error_code cellOskDialogSetKeyLayoutOption(u32 option)
|
||||
{
|
||||
cellOskDialog.todo("cellOskDialogSetKeyLayoutOption(option=0x%x)", option);
|
||||
|
||||
if (option == 0 || option > 3) // CELL_OSKDIALOG_10KEY_PANEL OR CELL_OSKDIALOG_FULLKEY_PANEL
|
||||
{
|
||||
return CELL_OSKDIALOG_ERROR_PARAM;
|
||||
}
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
|
@ -475,16 +481,40 @@ error_code cellOskDialogExtInputDeviceUnlock()
|
|||
return CELL_OK;
|
||||
}
|
||||
|
||||
error_code register_keyboard_event_hook_callback(u16 hookEventMode, vm::ptr<cellOskDialogHardwareKeyboardEventHookCallback> pCallback)
|
||||
{
|
||||
cellOskDialog.todo("register_keyboard_event_hook_callback(hookEventMode=%u, pCallback=*0x%x)", hookEventMode, pCallback);
|
||||
|
||||
if (!pCallback)
|
||||
{
|
||||
return CELL_OSKDIALOG_ERROR_PARAM;
|
||||
}
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
error_code cellOskDialogExtRegisterKeyboardEventHookCallback(u16 hookEventMode, vm::ptr<cellOskDialogHardwareKeyboardEventHookCallback> pCallback)
|
||||
{
|
||||
cellOskDialog.todo("cellOskDialogExtRegisterKeyboardEventHookCallback(hookEventMode=%u, pCallback=*0x%x)", hookEventMode, pCallback);
|
||||
return CELL_OK;
|
||||
|
||||
if (hookEventMode == 0 || hookEventMode > 3) // CELL_OSKDIALOG_EVENT_HOOK_TYPE_FUNCTION_KEY OR CELL_OSKDIALOG_EVENT_HOOK_TYPE_ASCII_KEY
|
||||
{
|
||||
return CELL_OSKDIALOG_ERROR_PARAM;
|
||||
}
|
||||
|
||||
return register_keyboard_event_hook_callback(hookEventMode, pCallback);
|
||||
}
|
||||
|
||||
error_code cellOskDialogExtRegisterKeyboardEventHookCallbackEx(u16 hookEventMode, vm::ptr<cellOskDialogHardwareKeyboardEventHookCallback> pCallback)
|
||||
{
|
||||
cellOskDialog.todo("cellOskDialogExtRegisterKeyboardEventHookCallbackEx(hookEventMode=%u, pCallback=*0x%x)", hookEventMode, pCallback);
|
||||
return CELL_OK;
|
||||
|
||||
if (hookEventMode == 0 || hookEventMode > 7) // CELL_OSKDIALOG_EVENT_HOOK_TYPE_FUNCTION_KEY OR CELL_OSKDIALOG_EVENT_HOOK_TYPE_ASCII_KEY OR CELL_OSKDIALOG_EVENT_HOOK_TYPE_ONLY_MODIFIER
|
||||
{
|
||||
return CELL_OSKDIALOG_ERROR_PARAM;
|
||||
}
|
||||
|
||||
return register_keyboard_event_hook_callback(hookEventMode, pCallback);
|
||||
}
|
||||
|
||||
error_code cellOskDialogExtAddJapaneseOptionDictionary(vm::cpptr<char> filePath)
|
||||
|
@ -590,6 +620,12 @@ error_code cellOskDialogExtEnableHalfByteKana()
|
|||
error_code cellOskDialogExtRegisterForceFinishCallback(vm::ptr<cellOskDialogForceFinishCallback> pCallback)
|
||||
{
|
||||
cellOskDialog.todo("cellOskDialogExtRegisterForceFinishCallback(pCallback=*0x%x)", pCallback);
|
||||
|
||||
if (!pCallback)
|
||||
{
|
||||
return CELL_OSKDIALOG_ERROR_PARAM;
|
||||
}
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -6,21 +6,21 @@
|
|||
enum CellOskDialogError : u32
|
||||
{
|
||||
CELL_OSKDIALOG_ERROR_IME_ALREADY_IN_USE = 0x8002b501,
|
||||
CELL_OSKDIALOG_ERROR_GET_SIZE_ERROR = 0x8002b502,
|
||||
CELL_OSKDIALOG_ERROR_UNKNOWN = 0x8002b503,
|
||||
CELL_OSKDIALOG_ERROR_PARAM = 0x8002b504,
|
||||
CELL_OSKDIALOG_ERROR_GET_SIZE_ERROR = 0x8002b502,
|
||||
CELL_OSKDIALOG_ERROR_UNKNOWN = 0x8002b503,
|
||||
CELL_OSKDIALOG_ERROR_PARAM = 0x8002b504,
|
||||
};
|
||||
|
||||
// OSK status for the callback
|
||||
enum
|
||||
{
|
||||
CELL_SYSUTIL_OSKDIALOG_LOADED = 0x0502,
|
||||
CELL_SYSUTIL_OSKDIALOG_FINISHED = 0x0503,
|
||||
CELL_SYSUTIL_OSKDIALOG_UNLOADED = 0x0504,
|
||||
CELL_SYSUTIL_OSKDIALOG_INPUT_ENTERED = 0x0505,
|
||||
CELL_SYSUTIL_OSKDIALOG_INPUT_CANCELED = 0x0506,
|
||||
CELL_SYSUTIL_OSKDIALOG_LOADED = 0x0502,
|
||||
CELL_SYSUTIL_OSKDIALOG_FINISHED = 0x0503,
|
||||
CELL_SYSUTIL_OSKDIALOG_UNLOADED = 0x0504,
|
||||
CELL_SYSUTIL_OSKDIALOG_INPUT_ENTERED = 0x0505,
|
||||
CELL_SYSUTIL_OSKDIALOG_INPUT_CANCELED = 0x0506,
|
||||
CELL_SYSUTIL_OSKDIALOG_INPUT_DEVICE_CHANGED = 0x0507,
|
||||
CELL_SYSUTIL_OSKDIALOG_DISPLAY_CHANGED = 0x0508,
|
||||
CELL_SYSUTIL_OSKDIALOG_DISPLAY_CHANGED = 0x0508,
|
||||
};
|
||||
|
||||
enum CellOskDialogInputFieldResult
|
||||
|
|
Loading…
Add table
Reference in a new issue