mirror of
https://github.com/libretro/RetroArch
synced 2025-01-28 14:54:03 +00:00
More small adjustments to joypad drivers
This commit is contained in:
parent
905e767983
commit
6bed0cfa65
@ -394,8 +394,11 @@ static BOOL CALLBACK enum_axes_cb(const DIDEVICEOBJECTINSTANCE *inst, void *p)
|
|||||||
return DIENUM_CONTINUE;
|
return DIENUM_CONTINUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Is there a better way of detecting dual XInput/DInput pads? This is going to get
|
// TODO: Use a better way of detecting dual XInput/DInput pads. This current method
|
||||||
// outdated, for example when the Xbox One controller becomes available.
|
// will not work correctly for third-party controllers or future MS pads (Xbox One?).
|
||||||
|
// An example of this is provided in the DX SDK, which advises "Enum each PNP device
|
||||||
|
// using WMI and check each device ID to see if it contains "IG_"". Unfortunately the
|
||||||
|
// example code is a horrible unsightly mess.
|
||||||
static const char* const XINPUT_PAD_NAMES[] =
|
static const char* const XINPUT_PAD_NAMES[] =
|
||||||
{
|
{
|
||||||
"Controller (Gamepad for Xbox 360)",
|
"Controller (Gamepad for Xbox 360)",
|
||||||
@ -452,6 +455,8 @@ static BOOL CALLBACK enum_joypad_cb(const DIDEVICEINSTANCE *inst, void *p)
|
|||||||
if (last_xbox_pad_index < 4)
|
if (last_xbox_pad_index < 4)
|
||||||
g_xbox_pad_indexes[g_joypad_cnt] = last_xbox_pad_index;
|
g_xbox_pad_indexes[g_joypad_cnt] = last_xbox_pad_index;
|
||||||
++last_xbox_pad_index;
|
++last_xbox_pad_index;
|
||||||
|
|
||||||
|
goto enum_iteration_done;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -472,9 +477,8 @@ static BOOL CALLBACK enum_joypad_cb(const DIDEVICEINSTANCE *inst, void *p)
|
|||||||
input_config_autoconfigure_joypad(g_joypad_cnt, dinput_joypad_name(g_joypad_cnt), dinput_joypad.ident);
|
input_config_autoconfigure_joypad(g_joypad_cnt, dinput_joypad_name(g_joypad_cnt), dinput_joypad.ident);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum_iteration_done:
|
||||||
g_joypad_cnt++;
|
g_joypad_cnt++;
|
||||||
|
|
||||||
return DIENUM_CONTINUE;
|
return DIENUM_CONTINUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,12 +108,14 @@ static int pad_index_to_xplayer_index(unsigned pad)
|
|||||||
return g_xbox_pad_indexes[pad];
|
return g_xbox_pad_indexes[pad];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Generic "XInput" instead of "Xbox 360", because there are
|
||||||
|
// some other non-xbox third party PC controllers.
|
||||||
static const char* const XBOX_CONTROLLER_NAMES[4] =
|
static const char* const XBOX_CONTROLLER_NAMES[4] =
|
||||||
{
|
{
|
||||||
"Xbox 360 Controller (Player 1)",
|
"XInput Controller (Player 1)",
|
||||||
"Xbox 360 Controller (Player 2)",
|
"XInput Controller (Player 2)",
|
||||||
"Xbox 360 Controller (Player 3)",
|
"XInput Controller (Player 3)",
|
||||||
"Xbox 360 Controller (Player 4)"
|
"XInput Controller (Player 4)"
|
||||||
};
|
};
|
||||||
|
|
||||||
const char* winxinput_joypad_name (unsigned pad)
|
const char* winxinput_joypad_name (unsigned pad)
|
||||||
@ -169,8 +171,8 @@ static bool winxinput_joypad_init(void)
|
|||||||
|
|
||||||
if (!g_XInputGetStateEx)
|
if (!g_XInputGetStateEx)
|
||||||
{
|
{
|
||||||
// no ordinal 100. (Old version of x360ce perhaps?) Load the ordinary XInputGetState,
|
// no ordinal 100. (Presumably a wrapper.) Load the ordinary
|
||||||
// at the cost of losing guide button support.
|
// XInputGetState, at the cost of losing guide button support.
|
||||||
g_winxinput_guide_button_supported = false;
|
g_winxinput_guide_button_supported = false;
|
||||||
g_XInputGetStateEx = (XInputGetStateEx_t) GetProcAddress(g_winxinput_dll, "XInputGetState");
|
g_XInputGetStateEx = (XInputGetStateEx_t) GetProcAddress(g_winxinput_dll, "XInputGetState");
|
||||||
if (!g_XInputGetStateEx)
|
if (!g_XInputGetStateEx)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user