mirror of
https://github.com/encounter/aurora.git
synced 2026-07-09 18:19:33 -07:00
Rework PADSetScancodeBinding
This commit is contained in:
@@ -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
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user