mirror of
https://github.com/libretro/RetroArch
synced 2025-04-10 15:45:19 +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)
|
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)
|
if (AXIS_NEG_GET(joyaxis) < 4)
|
||||||
{
|
{
|
||||||
axis = AXIS_NEG_GET(joyaxis);
|
int val = 0;
|
||||||
is_neg = true;
|
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)
|
else if (AXIS_POS_GET(joyaxis) < 4)
|
||||||
{
|
{
|
||||||
axis = AXIS_POS_GET(joyaxis);
|
int val = 0;
|
||||||
is_pos = true;
|
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;
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int16_t ctr_joypad_axis(unsigned port_num, uint32_t joyaxis)
|
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,
|
const struct dinput_joypad_data *pad,
|
||||||
uint32_t joyaxis)
|
uint32_t joyaxis)
|
||||||
{
|
{
|
||||||
int val = 0;
|
|
||||||
int axis = -1;
|
|
||||||
bool is_neg = false;
|
|
||||||
bool is_pos = false;
|
|
||||||
|
|
||||||
if (AXIS_NEG_GET(joyaxis) <= 7)
|
if (AXIS_NEG_GET(joyaxis) <= 7)
|
||||||
{
|
{
|
||||||
axis = AXIS_NEG_GET(joyaxis);
|
int16_t val = 0;
|
||||||
is_neg = true;
|
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)
|
else if (AXIS_POS_GET(joyaxis) <= 7)
|
||||||
{
|
{
|
||||||
axis = AXIS_POS_GET(joyaxis);
|
int16_t val = 0;
|
||||||
is_pos = true;
|
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;
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t dinput_joypad_button(unsigned port, uint16_t joykey)
|
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)
|
switch (axis)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
val = analog_state[port][0][0];
|
|
||||||
break;
|
|
||||||
case 1:
|
case 1:
|
||||||
val = analog_state[port][0][1];
|
val = analog_state[port][0][axis];
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
val = analog_state[port][1][0];
|
|
||||||
break;
|
|
||||||
case 3:
|
case 3:
|
||||||
val = analog_state[port][1][1];
|
val = analog_state[port][1][axis - 2];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -536,31 +536,23 @@ static void apple_gamecontroller_joypad_get_buttons(unsigned port,
|
|||||||
static int16_t apple_gamecontroller_joypad_axis(
|
static int16_t apple_gamecontroller_joypad_axis(
|
||||||
unsigned port, uint32_t joyaxis)
|
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)
|
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);
|
||||||
|
if (axis >= 0 && axis < 4)
|
||||||
|
if ((val = mfi_axes[port][axis]) < 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);
|
||||||
|
if (axis >= 0 && axis < 4)
|
||||||
|
if ((val = mfi_axes[port][axis]) > 0)
|
||||||
|
return val;
|
||||||
}
|
}
|
||||||
else
|
return 0;
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int16_t apple_gamecontroller_joypad_state(
|
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;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
case 3:
|
case 3:
|
||||||
val = analog_state[port_num][1][axis-2];
|
val = analog_state[port_num][1][axis - 2];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,7 +113,7 @@ static int16_t ps3_joypad_axis_state(unsigned port, uint32_t joyaxis)
|
|||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
case 3:
|
case 3:
|
||||||
val = analog_state[port][1][axis-2];
|
val = analog_state[port][1][axis - 2];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -174,16 +174,12 @@ static int16_t ps4_joypad_axis(unsigned port, uint32_t joyaxis)
|
|||||||
switch (axis)
|
switch (axis)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
val = analog_state[port][0][0];
|
|
||||||
break;
|
|
||||||
case 1:
|
case 1:
|
||||||
val = analog_state[port][0][1];
|
val = analog_state[port][0][axis];
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
val = analog_state[port][1][0];
|
|
||||||
break;
|
|
||||||
case 3:
|
case 3:
|
||||||
val = analog_state[port][1][1];
|
val = analog_state[port][1][axis - 2];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ static int16_t qnx_joypad_axis_state(
|
|||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
case 3:
|
case 3:
|
||||||
val = controller->analog1[axis-2];
|
val = controller->analog1[axis - 2];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user