Cleanups; turn more functions into static functions

This commit is contained in:
twinaphex 2019-07-27 04:13:33 +02:00
parent bcdc759b3e
commit d28cadef01
3 changed files with 39 additions and 47 deletions

View File

@ -282,7 +282,8 @@ static bool xinput_joypad_init(void *data)
#if defined(HAVE_DYNAMIC) && !defined(__WINRT__) #if defined(HAVE_DYNAMIC) && !defined(__WINRT__)
dylib_close(g_xinput_dll); dylib_close(g_xinput_dll);
#endif #endif
goto error; /* DLL was loaded but did not contain the correct function. */ goto error; /* DLL was loaded but did not contain
the correct function. */
} }
/* Zero out the states. */ /* Zero out the states. */
@ -328,7 +329,8 @@ static bool xinput_joypad_init(void *data)
for (j = 0; j < MAX_USERS; j++) for (j = 0; j < MAX_USERS; j++)
{ {
if (xinput_joypad_name(j)) if (xinput_joypad_name(j))
RARCH_LOG("[XInput]: Attempting autoconf for \"%s\", user #%u\n", xinput_joypad_name(j), j); RARCH_LOG("[XInput]: Attempting autoconf for \"%s\","
" user #%u\n", xinput_joypad_name(j), j);
else else
RARCH_LOG("[XInput]: Attempting autoconf for user #%u\n", j); RARCH_LOG("[XInput]: Attempting autoconf for user #%u\n", j);
@ -338,8 +340,10 @@ static bool xinput_joypad_init(void *data)
int32_t pid = 0; int32_t pid = 0;
#ifdef HAVE_DINPUT #ifdef HAVE_DINPUT
int32_t dinput_index = 0; int32_t dinput_index = 0;
bool success = dinput_joypad_get_vidpid_from_xinput_index((int32_t)pad_index_to_xuser_index(j), (int32_t*)&vid, (int32_t*)&pid, bool success = dinput_joypad_get_vidpid_from_xinput_index(
(int32_t*)&dinput_index); (int32_t)pad_index_to_xuser_index(j),
(int32_t*)&vid, (int32_t*)&pid,
(int32_t*)&dinput_index);
if (success) if (success)
RARCH_LOG("[XInput]: Found VID/PID (%04X/%04X) from DINPUT index %d for \"%s\", user #%u\n", RARCH_LOG("[XInput]: Found VID/PID (%04X/%04X) from DINPUT index %d for \"%s\", user #%u\n",
@ -371,14 +375,13 @@ error:
static bool xinput_joypad_query_pad(unsigned pad) static bool xinput_joypad_query_pad(unsigned pad)
{ {
int xuser = pad_index_to_xuser_index(pad);
if (xuser > -1)
return g_xinput_states[xuser].connected;
#ifdef HAVE_DINPUT #ifdef HAVE_DINPUT
return dinput_joypad.query_pad(pad); int xuser = pad_index_to_xuser_index(pad);
#else if (xuser == -1)
return false; return dinput_joypad.query_pad(pad);
pad = xuser;
#endif #endif
return g_xinput_states[pad].connected;
} }
static void xinput_joypad_destroy(void) static void xinput_joypad_destroy(void)
@ -425,17 +428,17 @@ static bool xinput_joypad_button(unsigned port_num, uint16_t joykey)
{ {
uint16_t btn_word = 0; uint16_t btn_word = 0;
unsigned hat_dir = 0; unsigned hat_dir = 0;
int xuser = pad_index_to_xuser_index(port_num);
#ifdef HAVE_DINPUT #ifdef HAVE_DINPUT
int xuser = pad_index_to_xuser_index(port_num);
if (xuser == -1) if (xuser == -1)
return dinput_joypad.button(port_num, joykey); return dinput_joypad.button(port_num, joykey);
port_num = xuser;
#endif #endif
if (!(g_xinput_states[xuser].connected)) if (!(g_xinput_states[port_num].connected))
return false; return false;
btn_word = g_xinput_states[xuser].xstate.Gamepad.wButtons; btn_word = g_xinput_states[port_num].xstate.Gamepad.wButtons;
hat_dir = GET_HAT_DIR(joykey); hat_dir = GET_HAT_DIR(joykey);
if (hat_dir) if (hat_dir)
@ -463,7 +466,6 @@ static bool xinput_joypad_button(unsigned port_num, uint16_t joykey)
static int16_t xinput_joypad_axis (unsigned port_num, uint32_t joyaxis) static int16_t xinput_joypad_axis (unsigned port_num, uint32_t joyaxis)
{ {
int xuser;
int16_t val = 0; int16_t val = 0;
int axis = -1; int axis = -1;
bool is_neg = false; bool is_neg = false;
@ -473,29 +475,31 @@ static int16_t xinput_joypad_axis (unsigned port_num, uint32_t joyaxis)
if (joyaxis == AXIS_NONE) if (joyaxis == AXIS_NONE)
return 0; return 0;
xuser = pad_index_to_xuser_index(port_num);
#ifdef HAVE_DINPUT #ifdef HAVE_DINPUT
if (xuser == -1) {
return dinput_joypad.axis(port_num, joyaxis); int xuser = pad_index_to_xuser_index(port_num);
if (xuser == -1)
return dinput_joypad.axis(port_num, joyaxis);
port_num = xuser;
}
#endif #endif
if (!(g_xinput_states[xuser].connected)) if (!(g_xinput_states[port_num].connected))
return 0; return 0;
/* triggers (axes 4,5) cannot be negative */ /* triggers (axes 4,5) cannot be negative */
if (AXIS_NEG_GET(joyaxis) <= 3) if (AXIS_NEG_GET(joyaxis) <= 3)
{ {
axis = AXIS_NEG_GET(joyaxis); axis = AXIS_NEG_GET(joyaxis);
is_neg = true; is_neg = true;
} }
else if (AXIS_POS_GET(joyaxis) <= 5) else if (AXIS_POS_GET(joyaxis) <= 5)
{ {
axis = AXIS_POS_GET(joyaxis); axis = AXIS_POS_GET(joyaxis);
is_pos = true; is_pos = true;
} }
pad = &(g_xinput_states[xuser].xstate.Gamepad); pad = &(g_xinput_states[port_num].xstate.Gamepad);
switch (axis) switch (axis)
{ {
@ -520,13 +524,13 @@ static int16_t xinput_joypad_axis (unsigned port_num, uint32_t joyaxis)
} }
if (is_neg && val > 0) if (is_neg && val > 0)
val = 0; return 0;
else if (is_pos && val < 0) else if (is_pos && val < 0)
val = 0; return 0;
/* Clamp to avoid overflow error. */ /* Clamp to avoid overflow error. */
if (val == -32768) if (val == -32768)
val = -32767; return -32767;
return val; return val;
} }
@ -539,19 +543,18 @@ static void xinput_joypad_poll(void)
{ {
#ifdef HAVE_DINPUT #ifdef HAVE_DINPUT
if (g_xinput_states[i].connected) if (g_xinput_states[i].connected)
{ if (g_XInputGetStateEx(i,
if (g_XInputGetStateEx && g_XInputGetStateEx(i,
&(g_xinput_states[i].xstate)) &(g_xinput_states[i].xstate))
== ERROR_DEVICE_NOT_CONNECTED) == ERROR_DEVICE_NOT_CONNECTED)
g_xinput_states[i].connected = false; g_xinput_states[i].connected = false;
}
#else #else
/* Normally, dinput handles device insertion/removal for us, but /* Normally, dinput handles device insertion/removal for us, but
* since dinput is not available on UWP we have to do it ourselves */ * since dinput is not available on UWP we have to do it ourselves */
/* Also note that on UWP, the controllers are not available on startup /* Also note that on UWP, the controllers are not available on startup
* and are instead 'plugged in' a moment later because Microsoft reasons */ * and are instead 'plugged in' a moment later because Microsoft reasons */
/* TODO: This may be bad for performance? */ /* TODO: This may be bad for performance? */
bool new_connected = g_XInputGetStateEx && g_XInputGetStateEx(i, &(g_xinput_states[i].xstate)) != ERROR_DEVICE_NOT_CONNECTED; bool new_connected = g_XInputGetStateEx(i,
&(g_xinput_states[i].xstate)) != ERROR_DEVICE_NOT_CONNECTED;
if (new_connected != g_xinput_states[i].connected) if (new_connected != g_xinput_states[i].connected)
{ {
if (new_connected) if (new_connected)
@ -577,16 +580,16 @@ static void xinput_joypad_poll(void)
static bool xinput_joypad_rumble(unsigned pad, static bool xinput_joypad_rumble(unsigned pad,
enum retro_rumble_effect effect, uint16_t strength) enum retro_rumble_effect effect, uint16_t strength)
{ {
#ifdef HAVE_DINPUT
int xuser = pad_index_to_xuser_index(pad); int xuser = pad_index_to_xuser_index(pad);
if (xuser == -1) if (xuser == -1)
{ {
#ifdef HAVE_DINPUT
if (dinput_joypad.set_rumble) if (dinput_joypad.set_rumble)
return dinput_joypad.set_rumble(pad, effect, strength); return dinput_joypad.set_rumble(pad, effect, strength);
#endif
return false; return false;
} }
#endif
/* Consider the low frequency (left) motor the "strong" one. */ /* Consider the low frequency (left) motor the "strong" one. */
if (effect == RETRO_RUMBLE_STRONG) if (effect == RETRO_RUMBLE_STRONG)
@ -594,9 +597,6 @@ static bool xinput_joypad_rumble(unsigned pad,
else if (effect == RETRO_RUMBLE_WEAK) else if (effect == RETRO_RUMBLE_WEAK)
g_xinput_rumble_states[xuser].wRightMotorSpeed = strength; g_xinput_rumble_states[xuser].wRightMotorSpeed = strength;
if (!g_XInputSetState)
return false;
return (g_XInputSetState(xuser, &g_xinput_rumble_states[xuser]) return (g_XInputSetState(xuser, &g_xinput_rumble_states[xuser])
== 0); == 0);
} }

View File

@ -274,14 +274,6 @@ void input_driver_deinit_command(void);
bool input_driver_init_command(void); bool input_driver_init_command(void);
void input_driver_deinit_remote(void);
bool input_driver_init_remote(void);
void input_driver_deinit_mapper(void);
bool input_driver_init_mapper(void);
bool input_driver_grab_mouse(void); bool input_driver_grab_mouse(void);
bool input_driver_ungrab_mouse(void); bool input_driver_ungrab_mouse(void);

View File

@ -12546,7 +12546,7 @@ void input_driver_deinit_command(void)
#endif #endif
} }
void input_driver_deinit_remote(void) static void input_driver_deinit_remote(void)
{ {
#ifdef HAVE_NETWORKGAMEPAD #ifdef HAVE_NETWORKGAMEPAD
if (input_driver_remote) if (input_driver_remote)
@ -12556,14 +12556,14 @@ void input_driver_deinit_remote(void)
#endif #endif
} }
void input_driver_deinit_mapper(void) static void input_driver_deinit_mapper(void)
{ {
if (input_driver_mapper) if (input_driver_mapper)
input_mapper_free(input_driver_mapper); input_mapper_free(input_driver_mapper);
input_driver_mapper = NULL; input_driver_mapper = NULL;
} }
bool input_driver_init_remote(void) static bool input_driver_init_remote(void)
{ {
#ifdef HAVE_NETWORKGAMEPAD #ifdef HAVE_NETWORKGAMEPAD
settings_t *settings = configuration_settings; settings_t *settings = configuration_settings;
@ -12583,7 +12583,7 @@ bool input_driver_init_remote(void)
return false; return false;
} }
bool input_driver_init_mapper(void) static bool input_driver_init_mapper(void)
{ {
settings_t *settings = configuration_settings; settings_t *settings = configuration_settings;