mirror of
https://github.com/libretro/RetroArch
synced 2025-04-01 22:20:31 +00:00
Simplify axis state code of other input joypad drivers
This commit is contained in:
parent
e367f87767
commit
8b200f552d
@ -268,39 +268,43 @@ static void gx_joypad_get_buttons(unsigned port, input_bits_t *state)
|
|||||||
|
|
||||||
static int16_t gx_joypad_axis_state(unsigned port, uint32_t joyaxis)
|
static int16_t gx_joypad_axis_state(unsigned port, uint32_t joyaxis)
|
||||||
{
|
{
|
||||||
int val = 0;
|
|
||||||
int axis = -1;
|
|
||||||
bool is_neg = false;
|
|
||||||
bool is_pos = false;
|
|
||||||
|
|
||||||
if (AXIS_NEG_GET(joyaxis) < 4)
|
if (AXIS_NEG_GET(joyaxis) < 4)
|
||||||
{
|
{
|
||||||
axis = AXIS_NEG_GET(joyaxis);
|
int16_t val = 0;
|
||||||
is_neg = true;
|
int16_t axis = AXIS_NEG_GET(joyaxis);
|
||||||
|
switch (axis)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
case 1:
|
||||||
|
val = analog_state[port][0][axis];
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
val = analog_state[port][1][axis - 2];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (val < 0)
|
||||||
|
return val;
|
||||||
}
|
}
|
||||||
else if (AXIS_POS_GET(joyaxis) < 4)
|
else if (AXIS_POS_GET(joyaxis) < 4)
|
||||||
{
|
{
|
||||||
axis = AXIS_POS_GET(joyaxis);
|
int16_t val = 0;
|
||||||
is_pos = true;
|
int16_t axis = AXIS_POS_GET(joyaxis);
|
||||||
|
switch (axis)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
case 1:
|
||||||
|
val = analog_state[port][0][axis];
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
val = analog_state[port][1][axis - 2];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (val > 0)
|
||||||
|
return val;
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
switch (axis)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
case 1:
|
|
||||||
val = analog_state[port][0][axis];
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
case 3:
|
|
||||||
val = analog_state[port][1][axis - 2];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (is_neg && val > 0)
|
|
||||||
val = 0;
|
|
||||||
else if (is_pos && val < 0)
|
|
||||||
val = 0;
|
|
||||||
return val;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int16_t gx_joypad_axis(unsigned port, uint32_t joyaxis)
|
static int16_t gx_joypad_axis(unsigned port, uint32_t joyaxis)
|
||||||
|
@ -87,41 +87,43 @@ static void ps3_joypad_get_buttons(unsigned port_num, input_bits_t *state)
|
|||||||
|
|
||||||
static int16_t ps3_joypad_axis_state(unsigned port, uint32_t joyaxis)
|
static int16_t ps3_joypad_axis_state(unsigned port, uint32_t joyaxis)
|
||||||
{
|
{
|
||||||
int val = 0;
|
|
||||||
int axis = -1;
|
|
||||||
bool is_neg = false;
|
|
||||||
bool is_pos = false;
|
|
||||||
|
|
||||||
if (AXIS_NEG_GET(joyaxis) < 4)
|
if (AXIS_NEG_GET(joyaxis) < 4)
|
||||||
{
|
{
|
||||||
axis = AXIS_NEG_GET(joyaxis);
|
int16_t val = 0;
|
||||||
is_neg = true;
|
int16_t axis = AXIS_NEG_GET(joyaxis);
|
||||||
|
switch (axis)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
case 1:
|
||||||
|
val = analog_state[port][0][axis];
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
val = analog_state[port][1][axis - 2];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (val < 0)
|
||||||
|
return val;
|
||||||
}
|
}
|
||||||
else if (AXIS_POS_GET(joyaxis) < 4)
|
else if (AXIS_POS_GET(joyaxis) < 4)
|
||||||
{
|
{
|
||||||
axis = AXIS_POS_GET(joyaxis);
|
int16_t val = 0;
|
||||||
is_pos = true;
|
int16_t axis = AXIS_POS_GET(joyaxis);
|
||||||
|
switch (axis)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
case 1:
|
||||||
|
val = analog_state[port][0][axis];
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
val = analog_state[port][1][axis - 2];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (val > 0)
|
||||||
|
return val;
|
||||||
}
|
}
|
||||||
else
|
return 0;
|
||||||
return 0;
|
|
||||||
|
|
||||||
switch (axis)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
case 1:
|
|
||||||
val = analog_state[port][0][axis];
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
case 3:
|
|
||||||
val = analog_state[port][1][axis - 2];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (is_neg && val > 0)
|
|
||||||
return 0;
|
|
||||||
else if (is_pos && val < 0)
|
|
||||||
return 0;
|
|
||||||
return val;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int16_t ps3_joypad_axis(unsigned port, uint32_t joyaxis)
|
static int16_t ps3_joypad_axis(unsigned port, uint32_t joyaxis)
|
||||||
|
@ -136,41 +136,43 @@ static void psp_joypad_get_buttons(unsigned port, input_bits_t *state)
|
|||||||
|
|
||||||
static int16_t psp_joypad_axis_state(unsigned port, uint32_t joyaxis)
|
static int16_t psp_joypad_axis_state(unsigned port, uint32_t joyaxis)
|
||||||
{
|
{
|
||||||
int val = 0;
|
|
||||||
int axis = -1;
|
|
||||||
bool is_neg = false;
|
|
||||||
bool is_pos = false;
|
|
||||||
|
|
||||||
if (AXIS_NEG_GET(joyaxis) < 4)
|
if (AXIS_NEG_GET(joyaxis) < 4)
|
||||||
{
|
{
|
||||||
axis = AXIS_NEG_GET(joyaxis);
|
int16_t val = 0;
|
||||||
is_neg = true;
|
int16_t axis = AXIS_NEG_GET(joyaxis);
|
||||||
|
switch (axis)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
case 1:
|
||||||
|
val = analog_state[port][0][axis];
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
val = analog_state[port][1][axis - 2];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (val < 0)
|
||||||
|
return val;
|
||||||
}
|
}
|
||||||
else if (AXIS_POS_GET(joyaxis) < 4)
|
else if (AXIS_POS_GET(joyaxis) < 4)
|
||||||
{
|
{
|
||||||
axis = AXIS_POS_GET(joyaxis);
|
int16_t val = 0;
|
||||||
is_pos = true;
|
int16_t axis = AXIS_POS_GET(joyaxis);
|
||||||
|
switch (axis)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
case 1:
|
||||||
|
val = analog_state[port][0][axis];
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
val = analog_state[port][1][axis - 2];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (val > 0)
|
||||||
|
return val;
|
||||||
}
|
}
|
||||||
else
|
return 0;
|
||||||
return 0;
|
|
||||||
|
|
||||||
switch (axis)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
case 1:
|
|
||||||
val = analog_state[port][0][axis];
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
case 3:
|
|
||||||
val = analog_state[port][1][axis - 2];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (is_neg && val > 0)
|
|
||||||
return 0;
|
|
||||||
else if (is_pos && val < 0)
|
|
||||||
return 0;
|
|
||||||
return val;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int16_t psp_joypad_axis(unsigned port, uint32_t joyaxis)
|
static int16_t psp_joypad_axis(unsigned port, uint32_t joyaxis)
|
||||||
|
@ -63,39 +63,43 @@ static int16_t qnx_joypad_axis_state(
|
|||||||
qnx_input_device_t *controller,
|
qnx_input_device_t *controller,
|
||||||
unsigned port, uint32_t joyaxis)
|
unsigned port, uint32_t joyaxis)
|
||||||
{
|
{
|
||||||
int val = 0;
|
|
||||||
int axis = -1;
|
|
||||||
bool is_neg = false;
|
|
||||||
bool is_pos = false;
|
|
||||||
|
|
||||||
if (AXIS_NEG_GET(joyaxis) < 4)
|
if (AXIS_NEG_GET(joyaxis) < 4)
|
||||||
{
|
{
|
||||||
axis = AXIS_NEG_GET(joyaxis);
|
int16_t val = 0;
|
||||||
is_neg = true;
|
int16_t axis = AXIS_NEG_GET(joyaxis);
|
||||||
|
switch (axis)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
case 1:
|
||||||
|
val = controller->analog0[axis];
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
val = controller->analog1[axis - 2];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (val < 0)
|
||||||
|
return val;
|
||||||
}
|
}
|
||||||
else if (AXIS_POS_GET(joyaxis) < 4)
|
else if (AXIS_POS_GET(joyaxis) < 4)
|
||||||
{
|
{
|
||||||
axis = AXIS_POS_GET(joyaxis);
|
int16_t val = 0;
|
||||||
is_pos = true;
|
int16_t axis = AXIS_POS_GET(joyaxis);
|
||||||
|
switch (axis)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
case 1:
|
||||||
|
val = controller->analog0[axis];
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
val = controller->analog1[axis - 2];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (val > 0)
|
||||||
|
return val;
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
switch (axis)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
case 1:
|
|
||||||
val = controller->analog0[axis];
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
case 3:
|
|
||||||
val = controller->analog1[axis - 2];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (is_neg && val > 0)
|
|
||||||
return 0;
|
|
||||||
else if (is_pos && val < 0)
|
|
||||||
return 0;
|
|
||||||
return val;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int16_t qnx_joypad_axis(unsigned port, uint32_t joyaxis)
|
static int16_t qnx_joypad_axis(unsigned port, uint32_t joyaxis)
|
||||||
|
@ -517,49 +517,48 @@ static void sdl_dingux_joypad_get_buttons(unsigned port, input_bits_t *state)
|
|||||||
static int16_t sdl_dingux_joypad_axis_state(unsigned port, uint32_t joyaxis)
|
static int16_t sdl_dingux_joypad_axis_state(unsigned port, uint32_t joyaxis)
|
||||||
{
|
{
|
||||||
#if defined(SDL_DINGUX_HAS_ANALOG)
|
#if defined(SDL_DINGUX_HAS_ANALOG)
|
||||||
dingux_joypad_t *joypad = (dingux_joypad_t*)&dingux_joypad;
|
if (port == 0)
|
||||||
int val = 0;
|
|
||||||
int axis = -1;
|
|
||||||
bool is_neg = false;
|
|
||||||
bool is_pos = false;
|
|
||||||
|
|
||||||
if (port != 0)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (AXIS_NEG_GET(joyaxis) < 4)
|
|
||||||
{
|
{
|
||||||
axis = AXIS_NEG_GET(joyaxis);
|
dingux_joypad_t *joypad = (dingux_joypad_t*)&dingux_joypad;
|
||||||
is_neg = true;
|
if (AXIS_NEG_GET(joyaxis) < 4)
|
||||||
|
{
|
||||||
|
int16_t val = 0;
|
||||||
|
int16_t axis = AXIS_NEG_GET(joyaxis);
|
||||||
|
switch (axis)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
case 1:
|
||||||
|
val = joypad->analog_state[0][axis];
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
val = joypad->analog_state[1][axis - 2];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (val < 0)
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
else if (AXIS_POS_GET(joyaxis) < 4)
|
||||||
|
{
|
||||||
|
int16_t val = 0;
|
||||||
|
int16_t axis = AXIS_POS_GET(joyaxis);
|
||||||
|
switch (axis)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
case 1:
|
||||||
|
val = joypad->analog_state[0][axis];
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
val = joypad->analog_state[1][axis - 2];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (val > 0)
|
||||||
|
return val;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (AXIS_POS_GET(joyaxis) < 4)
|
|
||||||
{
|
|
||||||
axis = AXIS_POS_GET(joyaxis);
|
|
||||||
is_pos = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
switch (axis)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
case 1:
|
|
||||||
val = joypad->analog_state[0][axis];
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
case 3:
|
|
||||||
val = joypad->analog_state[1][axis - 2];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (is_neg && val > 0)
|
|
||||||
return 0;
|
|
||||||
else if (is_pos && val < 0)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return val;
|
|
||||||
#else
|
|
||||||
return 0;
|
|
||||||
#endif
|
#endif
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int16_t sdl_dingux_joypad_axis(unsigned port, uint32_t joyaxis)
|
static int16_t sdl_dingux_joypad_axis(unsigned port, uint32_t joyaxis)
|
||||||
|
@ -115,39 +115,43 @@ static void switch_joypad_get_buttons(unsigned port_num, input_bits_t *state)
|
|||||||
|
|
||||||
static int16_t switch_joypad_axis_state(unsigned port, uint32_t joyaxis)
|
static int16_t switch_joypad_axis_state(unsigned port, uint32_t joyaxis)
|
||||||
{
|
{
|
||||||
int val = 0;
|
|
||||||
int axis = -1;
|
|
||||||
bool is_neg = false;
|
|
||||||
bool is_pos = false;
|
|
||||||
|
|
||||||
if (AXIS_NEG_GET(joyaxis) < 4)
|
if (AXIS_NEG_GET(joyaxis) < 4)
|
||||||
{
|
{
|
||||||
axis = AXIS_NEG_GET(joyaxis);
|
int16_t val = 0;
|
||||||
is_neg = true;
|
int16_t axis = AXIS_NEG_GET(joyaxis);
|
||||||
|
switch(axis)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
case 1:
|
||||||
|
val = analog_state[port][0][axis];
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
val = analog_state[port][1][axis - 2];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (val < 0)
|
||||||
|
return val;
|
||||||
}
|
}
|
||||||
else if (AXIS_POS_GET(joyaxis) < 4)
|
else if (AXIS_POS_GET(joyaxis) < 4)
|
||||||
{
|
{
|
||||||
axis = AXIS_POS_GET(joyaxis);
|
int16_t val = 0;
|
||||||
is_pos = true;
|
int16_t axis = AXIS_POS_GET(joyaxis);
|
||||||
|
switch(axis)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
case 1:
|
||||||
|
val = analog_state[port][0][axis];
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
val = analog_state[port][1][axis - 2];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (val > 0)
|
||||||
|
return val;
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
switch(axis)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
case 1:
|
|
||||||
val = analog_state[port][0][axis];
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
case 3:
|
|
||||||
val = analog_state[port][1][axis - 2];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (is_neg && val > 0)
|
|
||||||
return 0;
|
|
||||||
else if (is_pos && val < 0)
|
|
||||||
return 0;
|
|
||||||
return val;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int16_t switch_joypad_axis(unsigned port, uint32_t joyaxis)
|
static int16_t switch_joypad_axis(unsigned port, uint32_t joyaxis)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user