(wiiu_joypad.c) Small cleanups

This commit is contained in:
libretroadmin 2023-08-20 04:06:48 +02:00
parent 2b3bfbe89a
commit 8debf4b88e

View File

@ -16,8 +16,6 @@
#include "../include/wiiu/input.h" #include "../include/wiiu/input.h"
static bool ready = false; static bool ready = false;
wiiu_joypad_t joypad_state = {0}; wiiu_joypad_t joypad_state = {0};
@ -26,7 +24,7 @@ static void *wiiu_joypad_init(void *data)
{ {
memset(&joypad_state, 0, sizeof(wiiu_joypad_t)); memset(&joypad_state, 0, sizeof(wiiu_joypad_t));
joypad_state.pads[MAX_USERS].data = (void *)0xdeadbeef; joypad_state.pads[MAX_USERS].data = (void *)0xdeadbeef;
joypad_state.max_slot = MAX_USERS; joypad_state.max_slot = MAX_USERS;
input_hid_init_first(); input_hid_init_first();
wpad_driver.init(data); wpad_driver.init(data);
@ -39,10 +37,10 @@ static void *wiiu_joypad_init(void *data)
static bool wiiu_joypad_query_pad(unsigned pad) static bool wiiu_joypad_query_pad(unsigned pad)
{ {
return ready && return (ready
pad < MAX_USERS && && (pad < MAX_USERS)
joypad_state.pads[pad].input_driver && && joypad_state.pads[pad].input_driver
joypad_state.pads[pad].input_driver->query_pad(pad); && joypad_state.pads[pad].input_driver->query_pad(pad));
} }
static void wiiu_joypad_destroy(void) static void wiiu_joypad_destroy(void)
@ -56,25 +54,23 @@ static void wiiu_joypad_destroy(void)
static int32_t wiiu_joypad_button(unsigned port, uint16_t joykey) static int32_t wiiu_joypad_button(unsigned port, uint16_t joykey)
{ {
if (!wiiu_joypad_query_pad(port)) if ( !wiiu_joypad_query_pad(port)
return 0; || (port >= DEFAULT_MAX_PADS))
if (port >= DEFAULT_MAX_PADS)
return 0; return 0;
return (joypad_state.pads[port].input_driver->button(port, joykey)); return (joypad_state.pads[port].input_driver->button(port, joykey));
} }
static void wiiu_joypad_get_buttons(unsigned port, input_bits_t *state) static void wiiu_joypad_get_buttons(unsigned port, input_bits_t *state)
{ {
if (!wiiu_joypad_query_pad(port)) if (wiiu_joypad_query_pad(port))
return; joypad_state.pads[port].input_driver->get_buttons(port, state);
joypad_state.pads[port].input_driver->get_buttons(port, state);
} }
static int16_t wiiu_joypad_axis(unsigned port, uint32_t joyaxis) static int16_t wiiu_joypad_axis(unsigned port, uint32_t joyaxis)
{ {
if (!wiiu_joypad_query_pad(port)) if (wiiu_joypad_query_pad(port))
return 0; return joypad_state.pads[port].input_driver->axis(port, joyaxis);
return joypad_state.pads[port].input_driver->axis(port, joyaxis); return 0;
} }
static int16_t wiiu_joypad_state( static int16_t wiiu_joypad_state(
@ -83,12 +79,12 @@ static int16_t wiiu_joypad_state(
unsigned port) unsigned port)
{ {
unsigned i; unsigned i;
int16_t ret = 0; int16_t ret = 0;
uint16_t port_idx = joypad_info->joy_idx; uint16_t port_idx = joypad_info ? joypad_info->joy_idx : 0;
if (!wiiu_joypad_query_pad(port_idx)) if ( !joypad_info
return 0; || !wiiu_joypad_query_pad(port_idx)
if (port_idx >= DEFAULT_MAX_PADS) || (port_idx >= DEFAULT_MAX_PADS))
return 0; return 0;
for (i = 0; i < RARCH_FIRST_CUSTOM_BIND; i++) for (i = 0; i < RARCH_FIRST_CUSTOM_BIND; i++)
@ -99,12 +95,12 @@ static int16_t wiiu_joypad_state(
const uint32_t joyaxis = (binds[i].joyaxis != AXIS_NONE) const uint32_t joyaxis = (binds[i].joyaxis != AXIS_NONE)
? binds[i].joyaxis : joypad_info->auto_binds[i].joyaxis; ? binds[i].joyaxis : joypad_info->auto_binds[i].joyaxis;
if ( if (
(uint16_t)joykey != NO_BTN (uint16_t)joykey != NO_BTN
&& (joypad_state.pads[port].input_driver->button(port_idx, (uint16_t)joykey)) && (joypad_state.pads[port].input_driver->button(port_idx, (uint16_t)joykey))
) )
ret |= ( 1 << i); ret |= ( 1 << i);
else if (joyaxis != AXIS_NONE && else if (joyaxis != AXIS_NONE &&
((float)abs(joypad_state.pads[port].input_driver->axis(port_idx, joyaxis)) ((float)abs(joypad_state.pads[port].input_driver->axis(port_idx, joyaxis))
/ 0x8000) > joypad_info->axis_threshold) / 0x8000) > joypad_info->axis_threshold)
ret |= (1 << i); ret |= (1 << i);
} }
@ -121,10 +117,9 @@ static void wiiu_joypad_poll(void)
static const char* wiiu_joypad_name(unsigned pad) static const char* wiiu_joypad_name(unsigned pad)
{ {
if (!wiiu_joypad_query_pad(pad)) if (wiiu_joypad_query_pad(pad))
return "N/A"; return joypad_state.pads[pad].input_driver->name(pad);
return "N/A";
return joypad_state.pads[pad].input_driver->name(pad);
} }
input_device_driver_t wiiu_joypad = input_device_driver_t wiiu_joypad =