Rework PADSetScancodeBinding

This commit is contained in:
Phillip Stephens
2026-04-29 09:52:22 -07:00
parent ccf155ee74
commit 1ee7c7db23
2 changed files with 12 additions and 7 deletions
+1 -1
View File
@@ -155,7 +155,7 @@ const char* PADGetName(u32 port);
// To set a key value the top bit of the scancode must be set.
void PADSetButtonMapping(u32 port, PADButtonMapping mapping);
void PADSetAllButtonMappings(u32 port, PADButtonMapping buttons[PAD_BUTTON_COUNT]);
void PADSetScancodeBinding(u32 port, PADButton, u16 scancode);
BOOL PADSetScancodeBinding(u32 port, PADButton, u16 scancode);
PADButtonMapping* PADGetButtonMappings(u32 port, u32* buttonCount);
void PADSetAxisMapping(u32 port, PADAxisMapping mapping);
void PADSetAllAxisMappings(u32 port, PADAxisMapping axes[PAD_AXIS_COUNT]);
+11 -6
View File
@@ -907,13 +907,18 @@ BOOL PADIsGCAdapter(u32 port) {
return ctrl->m_isGameCube;
}
void PADSetScancodeBinding(u32 port, PADButton button, s32 scancode) {
BOOL PADSetScancodeBinding(u32 port, PADButton button, s32 scancode) {
auto* ctrl = aurora::input::get_controller_for_player(port);
if (ctrl == nullptr) {
return;
return FALSE;
}
auto* mapping =
std::find_if(ctrl->m_buttonMapping.begin(), ctrl->m_buttonMapping.end(),
[&button](const PADButtonMapping& mapping) { return mapping.padButton == button; });
mapping->nativeButton = scancode | PAD_KEY_MASK;
for (auto& mapping : ctrl->m_buttonMapping) {
if (mapping.padButton == button) {
mapping.nativeButton = scancode | PAD_KEY_MASK;
return TRUE;
}
}
return FALSE;
}