mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-15 19:28:43 +12:00
Input: Enable In-Game Pad Config Reset
This commit is contained in:
parent
5a40c1802b
commit
bc3ab7a9d9
9 changed files with 142 additions and 32 deletions
|
@ -35,6 +35,8 @@ error_code cellPadInit(u32 max_connect)
|
|||
{
|
||||
sys_io.warning("cellPadInit(max_connect=%d)", max_connect);
|
||||
|
||||
std::lock_guard lock(pad::g_pad_mutex);
|
||||
|
||||
if (fxm::check<pad_t>())
|
||||
return CELL_PAD_ERROR_ALREADY_INITIALIZED;
|
||||
|
||||
|
@ -50,6 +52,8 @@ error_code cellPadEnd()
|
|||
{
|
||||
sys_io.notice("cellPadEnd()");
|
||||
|
||||
std::lock_guard lock(pad::g_pad_mutex);
|
||||
|
||||
if (!fxm::remove<pad_t>())
|
||||
return CELL_PAD_ERROR_UNINITIALIZED;
|
||||
|
||||
|
@ -60,6 +64,8 @@ error_code cellPadClearBuf(u32 port_no)
|
|||
{
|
||||
sys_io.trace("cellPadClearBuf(port_no=%d)", port_no);
|
||||
|
||||
std::lock_guard lock(pad::g_pad_mutex);
|
||||
|
||||
const auto config = fxm::get<pad_t>();
|
||||
|
||||
if (!config)
|
||||
|
@ -102,6 +108,8 @@ error_code cellPadGetData(u32 port_no, vm::ptr<CellPadData> data)
|
|||
{
|
||||
sys_io.trace("cellPadGetData(port_no=%d, data=*0x%x)", port_no, data);
|
||||
|
||||
std::lock_guard lock(pad::g_pad_mutex);
|
||||
|
||||
const auto config = fxm::get<pad_t>();
|
||||
|
||||
if (!config)
|
||||
|
@ -353,6 +361,8 @@ error_code cellPadPeriphGetInfo(vm::ptr<CellPadPeriphInfo> info)
|
|||
{
|
||||
sys_io.trace("cellPadPeriphGetInfo(info=*0x%x)", info);
|
||||
|
||||
std::lock_guard lock(pad::g_pad_mutex);
|
||||
|
||||
const auto config = fxm::get<pad_t>();
|
||||
|
||||
if (!config)
|
||||
|
@ -395,6 +405,8 @@ error_code cellPadPeriphGetData(u32 port_no, vm::ptr<CellPadPeriphData> data)
|
|||
{
|
||||
sys_io.trace("cellPadPeriphGetData(port_no=%d, data=*0x%x)", port_no, data);
|
||||
|
||||
std::lock_guard lock(pad::g_pad_mutex);
|
||||
|
||||
const auto config = fxm::get<pad_t>();
|
||||
|
||||
if (!config)
|
||||
|
@ -427,6 +439,8 @@ error_code cellPadGetRawData(u32 port_no, vm::ptr<CellPadData> data)
|
|||
{
|
||||
sys_io.todo("cellPadGetRawData(port_no=%d, data=*0x%x)", port_no, data);
|
||||
|
||||
std::lock_guard lock(pad::g_pad_mutex);
|
||||
|
||||
const auto config = fxm::get<pad_t>();
|
||||
|
||||
if (!config)
|
||||
|
@ -456,6 +470,8 @@ error_code cellPadGetDataExtra(u32 port_no, vm::ptr<u32> device_type, vm::ptr<Ce
|
|||
{
|
||||
sys_io.trace("cellPadGetDataExtra(port_no=%d, device_type=*0x%x, data=*0x%x)", port_no, device_type, data);
|
||||
|
||||
std::lock_guard lock(pad::g_pad_mutex);
|
||||
|
||||
const auto config = fxm::get<pad_t>();
|
||||
|
||||
if (!config)
|
||||
|
@ -495,6 +511,8 @@ error_code cellPadSetActDirect(u32 port_no, vm::ptr<CellPadActParam> param)
|
|||
{
|
||||
sys_io.trace("cellPadSetActDirect(port_no=%d, param=*0x%x)", port_no, param);
|
||||
|
||||
std::lock_guard lock(pad::g_pad_mutex);
|
||||
|
||||
const auto config = fxm::get<pad_t>();
|
||||
|
||||
if (!config)
|
||||
|
@ -533,6 +551,8 @@ error_code cellPadGetInfo(vm::ptr<CellPadInfo> info)
|
|||
{
|
||||
sys_io.trace("cellPadGetInfo(info=*0x%x)", info);
|
||||
|
||||
std::lock_guard lock(pad::g_pad_mutex);
|
||||
|
||||
const auto config = fxm::get<pad_t>();
|
||||
|
||||
if (!config)
|
||||
|
@ -570,6 +590,8 @@ error_code cellPadGetInfo2(vm::ptr<CellPadInfo2> info)
|
|||
{
|
||||
sys_io.trace("cellPadGetInfo2(info=*0x%x)", info);
|
||||
|
||||
std::lock_guard lock(pad::g_pad_mutex);
|
||||
|
||||
const auto config = fxm::get<pad_t>();
|
||||
|
||||
if (!config)
|
||||
|
@ -608,6 +630,8 @@ error_code cellPadGetCapabilityInfo(u32 port_no, vm::ptr<CellPadCapabilityInfo>
|
|||
{
|
||||
sys_io.trace("cellPadGetCapabilityInfo(port_no=%d, data_addr:=0x%x)", port_no, info.addr());
|
||||
|
||||
std::lock_guard lock(pad::g_pad_mutex);
|
||||
|
||||
const auto config = fxm::get<pad_t>();
|
||||
|
||||
if (!config)
|
||||
|
@ -638,6 +662,8 @@ error_code cellPadSetPortSetting(u32 port_no, u32 port_setting)
|
|||
{
|
||||
sys_io.trace("cellPadSetPortSetting(port_no=%d, port_setting=0x%x)", port_no, port_setting);
|
||||
|
||||
std::lock_guard lock(pad::g_pad_mutex);
|
||||
|
||||
const auto config = fxm::get<pad_t>();
|
||||
|
||||
if (!config)
|
||||
|
@ -663,6 +689,8 @@ s32 cellPadInfoPressMode(u32 port_no)
|
|||
{
|
||||
sys_io.trace("cellPadInfoPressMode(port_no=%d)", port_no);
|
||||
|
||||
std::lock_guard lock(pad::g_pad_mutex);
|
||||
|
||||
const auto config = fxm::get<pad_t>();
|
||||
|
||||
if (!config)
|
||||
|
@ -690,6 +718,8 @@ s32 cellPadInfoSensorMode(u32 port_no)
|
|||
{
|
||||
sys_io.trace("cellPadInfoSensorMode(port_no=%d)", port_no);
|
||||
|
||||
std::lock_guard lock(pad::g_pad_mutex);
|
||||
|
||||
const auto config = fxm::get<pad_t>();
|
||||
|
||||
if (!config)
|
||||
|
@ -717,6 +747,8 @@ error_code cellPadSetPressMode(u32 port_no, u32 mode)
|
|||
{
|
||||
sys_io.trace("cellPadSetPressMode(port_no=%d, mode=%d)", port_no, mode);
|
||||
|
||||
std::lock_guard lock(pad::g_pad_mutex);
|
||||
|
||||
const auto config = fxm::get<pad_t>();
|
||||
|
||||
if (!config)
|
||||
|
@ -751,6 +783,8 @@ error_code cellPadSetSensorMode(u32 port_no, u32 mode)
|
|||
{
|
||||
sys_io.trace("cellPadSetSensorMode(port_no=%d, mode=%d)", port_no, mode);
|
||||
|
||||
std::lock_guard lock(pad::g_pad_mutex);
|
||||
|
||||
const auto config = fxm::get<pad_t>();
|
||||
|
||||
if (!config)
|
||||
|
@ -785,6 +819,8 @@ error_code cellPadLddRegisterController()
|
|||
{
|
||||
sys_io.todo("cellPadLddRegisterController()");
|
||||
|
||||
std::lock_guard lock(pad::g_pad_mutex);
|
||||
|
||||
if (!fxm::check<pad_t>())
|
||||
return CELL_PAD_ERROR_UNINITIALIZED;
|
||||
|
||||
|
@ -799,6 +835,8 @@ error_code cellPadLddDataInsert(s32 handle, vm::ptr<CellPadData> data)
|
|||
{
|
||||
sys_io.todo("cellPadLddDataInsert(handle=%d, data=*0x%x)", handle, data);
|
||||
|
||||
std::lock_guard lock(pad::g_pad_mutex);
|
||||
|
||||
if (!fxm::check<pad_t>())
|
||||
return CELL_PAD_ERROR_UNINITIALIZED;
|
||||
|
||||
|
@ -816,6 +854,8 @@ error_code cellPadLddGetPortNo(s32 handle)
|
|||
{
|
||||
sys_io.todo("cellPadLddGetPortNo(handle=%d)", handle);
|
||||
|
||||
std::lock_guard lock(pad::g_pad_mutex);
|
||||
|
||||
if (!fxm::check<pad_t>())
|
||||
return CELL_PAD_ERROR_UNINITIALIZED;
|
||||
|
||||
|
@ -831,6 +871,8 @@ error_code cellPadLddUnregisterController(s32 handle)
|
|||
{
|
||||
sys_io.todo("cellPadLddUnregisterController(handle=%d)", handle);
|
||||
|
||||
std::lock_guard lock(pad::g_pad_mutex);
|
||||
|
||||
if (!fxm::check<pad_t>())
|
||||
return CELL_PAD_ERROR_UNINITIALIZED;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue