mirror of
https://github.com/libretro/RetroArch
synced 2025-03-28 19:20:35 +00:00
Simplifications to axis_state functions for some driver joypad files
This commit is contained in:
parent
0fe92cc954
commit
e367f87767
@ -74,41 +74,43 @@ static void ctr_joypad_get_buttons(unsigned port_num, input_bits_t *state)
|
||||
|
||||
static int16_t ctr_joypad_axis_state(unsigned port_num, uint32_t joyaxis)
|
||||
{
|
||||
int val = 0;
|
||||
int axis = -1;
|
||||
bool is_neg = false;
|
||||
bool is_pos = false;
|
||||
|
||||
if (AXIS_NEG_GET(joyaxis) < 4)
|
||||
{
|
||||
axis = AXIS_NEG_GET(joyaxis);
|
||||
is_neg = true;
|
||||
int val = 0;
|
||||
int axis = AXIS_NEG_GET(joyaxis);
|
||||
switch (axis)
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
val = analog_state[port_num][0][axis];
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
val = analog_state[port_num][1][axis - 2];
|
||||
break;
|
||||
}
|
||||
if (val < 0)
|
||||
return val;
|
||||
}
|
||||
else if (AXIS_POS_GET(joyaxis) < 4)
|
||||
{
|
||||
axis = AXIS_POS_GET(joyaxis);
|
||||
is_pos = true;
|
||||
int val = 0;
|
||||
int axis = AXIS_POS_GET(joyaxis);
|
||||
switch (axis)
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
val = analog_state[port_num][0][axis];
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
val = analog_state[port_num][1][axis - 2];
|
||||
break;
|
||||
}
|
||||
if (val > 0)
|
||||
return val;
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
|
||||
switch (axis)
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
val = analog_state[port_num][0][axis];
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
val = analog_state[port_num][1][axis - 2];
|
||||
break;
|
||||
}
|
||||
|
||||
if (is_neg && val > 0)
|
||||
return 0;
|
||||
else if (is_pos && val < 0)
|
||||
return 0;
|
||||
return val;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int16_t ctr_joypad_axis(unsigned port_num, uint32_t joyaxis)
|
||||
|
@ -178,55 +178,71 @@ static int16_t dinput_joypad_axis_state(
|
||||
const struct dinput_joypad_data *pad,
|
||||
uint32_t joyaxis)
|
||||
{
|
||||
int val = 0;
|
||||
int axis = -1;
|
||||
bool is_neg = false;
|
||||
bool is_pos = false;
|
||||
|
||||
if (AXIS_NEG_GET(joyaxis) <= 7)
|
||||
{
|
||||
axis = AXIS_NEG_GET(joyaxis);
|
||||
is_neg = true;
|
||||
int16_t val = 0;
|
||||
int axis = AXIS_NEG_GET(joyaxis);
|
||||
switch (axis)
|
||||
{
|
||||
case 0:
|
||||
val = pad->joy_state.lX;
|
||||
break;
|
||||
case 1:
|
||||
val = pad->joy_state.lY;
|
||||
break;
|
||||
case 2:
|
||||
val = pad->joy_state.lZ;
|
||||
break;
|
||||
case 3:
|
||||
val = pad->joy_state.lRx;
|
||||
break;
|
||||
case 4:
|
||||
val = pad->joy_state.lRy;
|
||||
break;
|
||||
case 5:
|
||||
val = pad->joy_state.lRz;
|
||||
break;
|
||||
case 6:
|
||||
case 7:
|
||||
val = pad->joy_state.rglSlider[axis - 6];
|
||||
break;
|
||||
}
|
||||
if (val < 0)
|
||||
return val;
|
||||
}
|
||||
else if (AXIS_POS_GET(joyaxis) <= 7)
|
||||
{
|
||||
axis = AXIS_POS_GET(joyaxis);
|
||||
is_pos = true;
|
||||
int16_t val = 0;
|
||||
int axis = AXIS_POS_GET(joyaxis);
|
||||
switch (axis)
|
||||
{
|
||||
case 0:
|
||||
val = pad->joy_state.lX;
|
||||
break;
|
||||
case 1:
|
||||
val = pad->joy_state.lY;
|
||||
break;
|
||||
case 2:
|
||||
val = pad->joy_state.lZ;
|
||||
break;
|
||||
case 3:
|
||||
val = pad->joy_state.lRx;
|
||||
break;
|
||||
case 4:
|
||||
val = pad->joy_state.lRy;
|
||||
break;
|
||||
case 5:
|
||||
val = pad->joy_state.lRz;
|
||||
break;
|
||||
case 6:
|
||||
case 7:
|
||||
val = pad->joy_state.rglSlider[axis - 6];
|
||||
break;
|
||||
}
|
||||
if (val > 0)
|
||||
return val;
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
|
||||
switch (axis)
|
||||
{
|
||||
case 0:
|
||||
val = pad->joy_state.lX;
|
||||
break;
|
||||
case 1:
|
||||
val = pad->joy_state.lY;
|
||||
break;
|
||||
case 2:
|
||||
val = pad->joy_state.lZ;
|
||||
break;
|
||||
case 3:
|
||||
val = pad->joy_state.lRx;
|
||||
break;
|
||||
case 4:
|
||||
val = pad->joy_state.lRy;
|
||||
break;
|
||||
case 5:
|
||||
val = pad->joy_state.lRz;
|
||||
break;
|
||||
case 6:
|
||||
case 7:
|
||||
val = pad->joy_state.rglSlider[axis - 6];
|
||||
break;
|
||||
}
|
||||
|
||||
if (is_neg && val > 0)
|
||||
return 0;
|
||||
else if (is_pos && val < 0)
|
||||
return 0;
|
||||
return val;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int32_t dinput_joypad_button(unsigned port, uint16_t joykey)
|
||||
|
@ -287,16 +287,12 @@ static int16_t gx_joypad_axis_state(unsigned port, uint32_t joyaxis)
|
||||
switch (axis)
|
||||
{
|
||||
case 0:
|
||||
val = analog_state[port][0][0];
|
||||
break;
|
||||
case 1:
|
||||
val = analog_state[port][0][1];
|
||||
val = analog_state[port][0][axis];
|
||||
break;
|
||||
case 2:
|
||||
val = analog_state[port][1][0];
|
||||
break;
|
||||
case 3:
|
||||
val = analog_state[port][1][1];
|
||||
val = analog_state[port][1][axis - 2];
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -536,31 +536,23 @@ static void apple_gamecontroller_joypad_get_buttons(unsigned port,
|
||||
static int16_t apple_gamecontroller_joypad_axis(
|
||||
unsigned port, uint32_t joyaxis)
|
||||
{
|
||||
int16_t val = 0;
|
||||
int16_t axis = -1;
|
||||
bool is_neg = false;
|
||||
bool is_pos = false;
|
||||
|
||||
if (AXIS_NEG_GET(joyaxis) < 4)
|
||||
{
|
||||
axis = AXIS_NEG_GET(joyaxis);
|
||||
is_neg = true;
|
||||
int16_t val = 0;
|
||||
int16_t axis = AXIS_NEG_GET(joyaxis);
|
||||
if (axis >= 0 && axis < 4)
|
||||
if ((val = mfi_axes[port][axis]) < 0)
|
||||
return val;
|
||||
}
|
||||
else if(AXIS_POS_GET(joyaxis) < 4)
|
||||
{
|
||||
axis = AXIS_POS_GET(joyaxis);
|
||||
is_pos = true;
|
||||
int16_t val = 0;
|
||||
int16_t axis = AXIS_POS_GET(joyaxis);
|
||||
if (axis >= 0 && axis < 4)
|
||||
if ((val = mfi_axes[port][axis]) > 0)
|
||||
return val;
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
|
||||
if (axis >= 0 && axis < 4)
|
||||
val = mfi_axes[port][axis];
|
||||
if (is_neg && val > 0)
|
||||
return 0;
|
||||
else if (is_pos && val < 0)
|
||||
return 0;
|
||||
return val;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int16_t apple_gamecontroller_joypad_state(
|
||||
|
@ -123,7 +123,7 @@ static int16_t ps2_joypad_axis_state(unsigned port_num, uint32_t joyaxis)
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
val = analog_state[port_num][1][axis-2];
|
||||
val = analog_state[port_num][1][axis - 2];
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -113,7 +113,7 @@ static int16_t ps3_joypad_axis_state(unsigned port, uint32_t joyaxis)
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
val = analog_state[port][1][axis-2];
|
||||
val = analog_state[port][1][axis - 2];
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -174,16 +174,12 @@ static int16_t ps4_joypad_axis(unsigned port, uint32_t joyaxis)
|
||||
switch (axis)
|
||||
{
|
||||
case 0:
|
||||
val = analog_state[port][0][0];
|
||||
break;
|
||||
case 1:
|
||||
val = analog_state[port][0][1];
|
||||
val = analog_state[port][0][axis];
|
||||
break;
|
||||
case 2:
|
||||
val = analog_state[port][1][0];
|
||||
break;
|
||||
case 3:
|
||||
val = analog_state[port][1][1];
|
||||
val = analog_state[port][1][axis - 2];
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -87,7 +87,7 @@ static int16_t qnx_joypad_axis_state(
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
val = controller->analog1[axis-2];
|
||||
val = controller->analog1[axis - 2];
|
||||
break;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user