mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-11-26 13:26:30 -05:00
controllers/npad: Fix LibNX controller connection statuses
This allows homebrew applications to be able to properly detect connected controllers.
This commit is contained in:
parent
e7c174b426
commit
334ef2efdd
1 changed files with 9 additions and 1 deletions
|
@ -375,6 +375,7 @@ void Controller_NPad::OnUpdate(const Core::Timing::CoreTiming& core_timing, u8*
|
||||||
auto& libnx_entry = npad.libnx.npad[npad.libnx.common.last_entry_index];
|
auto& libnx_entry = npad.libnx.npad[npad.libnx.common.last_entry_index];
|
||||||
|
|
||||||
libnx_entry.connection_status.raw = 0;
|
libnx_entry.connection_status.raw = 0;
|
||||||
|
libnx_entry.connection_status.IsConnected.Assign(1);
|
||||||
|
|
||||||
switch (controller_type) {
|
switch (controller_type) {
|
||||||
case NPadControllerType::None:
|
case NPadControllerType::None:
|
||||||
|
@ -387,6 +388,8 @@ void Controller_NPad::OnUpdate(const Core::Timing::CoreTiming& core_timing, u8*
|
||||||
main_controller.pad.pad_states.raw = pad_state.pad_states.raw;
|
main_controller.pad.pad_states.raw = pad_state.pad_states.raw;
|
||||||
main_controller.pad.l_stick = pad_state.l_stick;
|
main_controller.pad.l_stick = pad_state.l_stick;
|
||||||
main_controller.pad.r_stick = pad_state.r_stick;
|
main_controller.pad.r_stick = pad_state.r_stick;
|
||||||
|
|
||||||
|
libnx_entry.connection_status.IsWired.Assign(1);
|
||||||
break;
|
break;
|
||||||
case NPadControllerType::Handheld:
|
case NPadControllerType::Handheld:
|
||||||
handheld_entry.connection_status.raw = 0;
|
handheld_entry.connection_status.raw = 0;
|
||||||
|
@ -398,6 +401,12 @@ void Controller_NPad::OnUpdate(const Core::Timing::CoreTiming& core_timing, u8*
|
||||||
handheld_entry.pad.pad_states.raw = pad_state.pad_states.raw;
|
handheld_entry.pad.pad_states.raw = pad_state.pad_states.raw;
|
||||||
handheld_entry.pad.l_stick = pad_state.l_stick;
|
handheld_entry.pad.l_stick = pad_state.l_stick;
|
||||||
handheld_entry.pad.r_stick = pad_state.r_stick;
|
handheld_entry.pad.r_stick = pad_state.r_stick;
|
||||||
|
|
||||||
|
libnx_entry.connection_status.IsWired.Assign(1);
|
||||||
|
libnx_entry.connection_status.IsLeftJoyConnected.Assign(1);
|
||||||
|
libnx_entry.connection_status.IsRightJoyConnected.Assign(1);
|
||||||
|
libnx_entry.connection_status.IsLeftJoyWired.Assign(1);
|
||||||
|
libnx_entry.connection_status.IsRightJoyWired.Assign(1);
|
||||||
break;
|
break;
|
||||||
case NPadControllerType::JoyDual:
|
case NPadControllerType::JoyDual:
|
||||||
dual_entry.connection_status.raw = 0;
|
dual_entry.connection_status.raw = 0;
|
||||||
|
@ -408,7 +417,6 @@ void Controller_NPad::OnUpdate(const Core::Timing::CoreTiming& core_timing, u8*
|
||||||
dual_entry.pad.l_stick = pad_state.l_stick;
|
dual_entry.pad.l_stick = pad_state.l_stick;
|
||||||
dual_entry.pad.r_stick = pad_state.r_stick;
|
dual_entry.pad.r_stick = pad_state.r_stick;
|
||||||
|
|
||||||
libnx_entry.connection_status.IsConnected.Assign(1);
|
|
||||||
libnx_entry.connection_status.IsLeftJoyConnected.Assign(1);
|
libnx_entry.connection_status.IsLeftJoyConnected.Assign(1);
|
||||||
libnx_entry.connection_status.IsRightJoyConnected.Assign(1);
|
libnx_entry.connection_status.IsRightJoyConnected.Assign(1);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue