diff options
author | 2016-06-29 10:02:26 -0400 | |
---|---|---|
committer | 2016-06-29 10:02:26 -0400 | |
commit | 7babf0702047bf0657ad368325846b6ca3859a18 (patch) | |
tree | c268a69a8839022006e496d5313e22f7129b3c12 /src/osd/modules/input/input_dinput.cpp | |
parent | d0cff39af63205acd7ef3fa250839e52fdf23b27 (diff) |
Fix input issues on big endian systems (fixes #963)
Diffstat (limited to 'src/osd/modules/input/input_dinput.cpp')
-rw-r--r-- | src/osd/modules/input/input_dinput.cpp | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/osd/modules/input/input_dinput.cpp b/src/osd/modules/input/input_dinput.cpp index 21874cbbe95..061eab446e8 100644 --- a/src/osd/modules/input/input_dinput.cpp +++ b/src/osd/modules/input/input_dinput.cpp @@ -329,7 +329,7 @@ public: name = device_item_name(devinfo, keynum, defname, nullptr); // add the item to the device - devinfo->device()->add_item(name.c_str(), itemid, generic_button_get_state, &devinfo->keyboard.state[keynum]); + devinfo->device()->add_item(name.c_str(), itemid, generic_button_get_state<std::uint8_t>, &devinfo->keyboard.state[keynum]); } exit: @@ -406,7 +406,11 @@ public: { // add to the mouse device and optionally to the gun device as well std::string name = device_item_name(devinfo, offsetof(DIMOUSESTATE, lX) + axisnum * sizeof(LONG), default_axis_name[axisnum], nullptr); - devinfo->device()->add_item(name.c_str(), static_cast<input_item_id>(ITEM_ID_XAXIS + axisnum), generic_axis_get_state, &devinfo->mouse.lX + axisnum); + devinfo->device()->add_item( + name.c_str(), + static_cast<input_item_id>(ITEM_ID_XAXIS + axisnum), + generic_axis_get_state<LONG>, + &devinfo->mouse.lX + axisnum); } // populate the buttons @@ -416,7 +420,11 @@ public: // add to the mouse device std::string name = device_item_name(devinfo, offset, default_button_name(butnum), nullptr); - devinfo->device()->add_item(name.c_str(), static_cast<input_item_id>(ITEM_ID_BUTTON1 + butnum), generic_button_get_state, &devinfo->mouse.rgbButtons[butnum]); + devinfo->device()->add_item( + name.c_str(), + static_cast<input_item_id>(ITEM_ID_BUTTON1 + butnum), + generic_button_get_state<BYTE>, + &devinfo->mouse.rgbButtons[butnum]); } exit: @@ -506,7 +514,11 @@ int dinput_joystick_device::configure() // populate the item description as well name = dinput_module::device_item_name(this, offsetof(DIJOYSTATE2, lX) + axisnum * sizeof(LONG), default_axis_name[axisnum], nullptr); - device()->add_item(name.c_str(), static_cast<input_item_id>(ITEM_ID_XAXIS + axisnum), generic_axis_get_state, &joystick.state.lX + axisnum); + device()->add_item( + name.c_str(), + static_cast<input_item_id>(ITEM_ID_XAXIS + axisnum), + generic_axis_get_state<LONG>, + &joystick.state.lX + axisnum); axiscount++; } @@ -548,7 +560,7 @@ int dinput_joystick_device::configure() else itemid = ITEM_ID_OTHER_SWITCH; - device()->add_item(name.c_str(), itemid, generic_button_get_state, &joystick.state.rgbButtons[butnum]); + device()->add_item(name.c_str(), itemid, generic_button_get_state<BYTE>, &joystick.state.rgbButtons[butnum]); } return 0; |