summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/input
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/modules/input')
-rw-r--r--src/osd/modules/input/input_sdl.cpp3
-rw-r--r--src/osd/modules/input/input_xinput.cpp14
-rw-r--r--src/osd/modules/input/input_xinput.h10
3 files changed, 14 insertions, 13 deletions
diff --git a/src/osd/modules/input/input_sdl.cpp b/src/osd/modules/input/input_sdl.cpp
index 93e14313de8..a3cbed7c107 100644
--- a/src/osd/modules/input/input_sdl.cpp
+++ b/src/osd/modules/input/input_sdl.cpp
@@ -250,7 +250,8 @@ public:
{
machine().ui_input().push_mouse_down_event(window->target(), cx, cy);
- if (click - last_click < double_click_speed
+ // avoid overflow with std::chrono::time_point::min() by adding rather than subtracting
+ if (click < last_click + double_click_speed
&& (cx >= last_x - 4 && cx <= last_x + 4)
&& (cy >= last_y - 4 && cy <= last_y + 4))
{
diff --git a/src/osd/modules/input/input_xinput.cpp b/src/osd/modules/input/input_xinput.cpp
index e6ecdd4d177..67348ebe162 100644
--- a/src/osd/modules/input/input_xinput.cpp
+++ b/src/osd/modules/input/input_xinput.cpp
@@ -130,9 +130,9 @@ void xinput_joystick_device::poll()
gamepad.right_thumb_x = normalize_absolute_axis(xinput_state.xstate.Gamepad.sThumbRX, XINPUT_AXIS_MINVALUE, XINPUT_AXIS_MAXVALUE);
gamepad.right_thumb_y = normalize_absolute_axis(-xinput_state.xstate.Gamepad.sThumbRY, XINPUT_AXIS_MINVALUE, XINPUT_AXIS_MAXVALUE);
- // Now the triggers
- gamepad.left_trigger = normalize_absolute_axis(xinput_state.xstate.Gamepad.bLeftTrigger, 0, 255);
- gamepad.right_trigger = normalize_absolute_axis(xinput_state.xstate.Gamepad.bRightTrigger, 0, 255);
+ // Now the triggers, place them on half-axes (negative side)
+ gamepad.left_trigger = -normalize_absolute_axis(xinput_state.xstate.Gamepad.bLeftTrigger, -255, 255);
+ gamepad.right_trigger = -normalize_absolute_axis(xinput_state.xstate.Gamepad.bRightTrigger, -255, 255);
}
void xinput_joystick_device::reset()
@@ -179,16 +179,16 @@ void xinput_joystick_device::configure()
}
device()->add_item(
- "Left Trigger",
+ "RT",
ITEM_ID_ZAXIS,
generic_axis_get_state<LONG>,
- &gamepad.left_trigger);
+ &gamepad.right_trigger);
device()->add_item(
- "Right Trigger",
+ "LT",
ITEM_ID_RZAXIS,
generic_axis_get_state<LONG>,
- &gamepad.right_trigger);
+ &gamepad.left_trigger);
m_configured = true;
}
diff --git a/src/osd/modules/input/input_xinput.h b/src/osd/modules/input/input_xinput.h
index 2cd8f15a250..9772e941bb7 100644
--- a/src/osd/modules/input/input_xinput.h
+++ b/src/osd/modules/input/input_xinput.h
@@ -62,12 +62,12 @@ static const char *const xinput_button_names[] = {
"B",
"X",
"Y",
- "Left Shoulder",
- "Right Shoulder",
+ "LB",
+ "RB",
"Start",
"Back",
- "Left Thumb",
- "Right Thumb"
+ "LS",
+ "RS"
};
struct gamepad_state
@@ -85,7 +85,7 @@ struct gamepad_state
// state information for a gamepad; state must be first element
struct xinput_api_state
{
- uint32_t player_index;
+ uint32_t player_index;
XINPUT_STATE xstate;
XINPUT_CAPABILITIES caps;
};