diff options
author | 2023-02-05 04:50:30 +1100 | |
---|---|---|
committer | 2023-02-05 05:01:40 +1100 | |
commit | b98fb7c98e5e44d436808eac46c927d3d0dc1f3f (patch) | |
tree | cd411d4fe24cd36862c78165723833e42de27303 /src/osd/modules/input/input_dinput.cpp | |
parent | 519554c8464ba8e8641e474bc949a2a0beae77ae (diff) |
Small batch of input refactoring:
emu/input.cpp: Fixed regression in display of some joystick inputs.
osd/interface: Split up interface classes into a few more files to
reduce where the input device interface class needs to be included.
Made OSD independent of concrete input_device class.
osd/modules/input, emu/inputdev.cpp, emu/ioport.cpp: Allow input devices
to provide tokens for controls without standard item types and
additional default input assignments. Fixes issues assigning Yen and
Backslash on Japanese keyboards.
ui/textbox.cpp: Added a fixed-content text box menu class for future
use.
Got main.h out of emu.h as it’s only used in a very small number of
places, mostly for getting the application name. Added eminline.h to
attotime.h as it's used without emu.h. Cleaned up forward declarations
in emufwd.h a little.
Diffstat (limited to 'src/osd/modules/input/input_dinput.cpp')
-rw-r--r-- | src/osd/modules/input/input_dinput.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/osd/modules/input/input_dinput.cpp b/src/osd/modules/input/input_dinput.cpp index 31a36fc841a..2ac7c7458fd 100644 --- a/src/osd/modules/input/input_dinput.cpp +++ b/src/osd/modules/input/input_dinput.cpp @@ -323,6 +323,7 @@ void dinput_keyboard_device::configure(input_device &device) // add the item to the device device.add_item( item_name(keynum, defname, nullptr), + strmakeupper(defname), itemid, generic_button_get_state<std::uint8_t>, &m_keyboard.state[keynum]); @@ -355,9 +356,9 @@ void dinput_mouse_device::poll() if (poll_dinput(&m_mouse) == DI_OK) { // scale the axis data - m_mouse.lX *= INPUT_RELATIVE_PER_PIXEL; - m_mouse.lY *= INPUT_RELATIVE_PER_PIXEL; - m_mouse.lZ *= INPUT_RELATIVE_PER_PIXEL; + m_mouse.lX *= input_device::RELATIVE_PER_PIXEL; + m_mouse.lY *= input_device::RELATIVE_PER_PIXEL; + m_mouse.lZ *= input_device::RELATIVE_PER_PIXEL; } } @@ -374,6 +375,7 @@ void dinput_mouse_device::configure(input_device &device) // add to the mouse device and optionally to the gun device as well device.add_item( item_name(offsetof(DIMOUSESTATE, lX) + axisnum * sizeof(LONG), default_axis_name[axisnum], nullptr), + std::string_view(), input_item_id(ITEM_ID_XAXIS + axisnum), generic_axis_get_state<LONG>, &m_mouse.lX + axisnum); @@ -387,6 +389,7 @@ void dinput_mouse_device::configure(input_device &device) // add to the mouse device device.add_item( item_name(offset, default_button_name(butnum), nullptr), + std::string_view(), input_item_id(ITEM_ID_BUTTON1 + butnum), generic_button_get_state<BYTE>, &m_mouse.rgbButtons[butnum]); @@ -470,6 +473,7 @@ void dinput_joystick_device::configure(input_device &device) // populate the item description as well device.add_item( item_name(offsetof(DIJOYSTATE2, lX) + axisnum * sizeof(LONG), default_axis_name[axisnum], nullptr), + std::string_view(), input_item_id(ITEM_ID_XAXIS + axisnum), generic_axis_get_state<LONG>, &m_joystick.state.lX + axisnum); @@ -483,6 +487,7 @@ void dinput_joystick_device::configure(input_device &device) // left device.add_item( item_name(offsetof(DIJOYSTATE2, rgdwPOV) + povnum * sizeof(DWORD), default_pov_name(povnum), "Left"), + std::string_view(), input_item_id(povnum * 4 + ITEM_ID_HAT1LEFT), &dinput_joystick_device::pov_get_state, reinterpret_cast<void *>(uintptr_t(povnum * 4 + POVDIR_LEFT))); @@ -490,6 +495,7 @@ void dinput_joystick_device::configure(input_device &device) // right device.add_item( item_name(offsetof(DIJOYSTATE2, rgdwPOV) + povnum * sizeof(DWORD), default_pov_name(povnum), "Right"), + std::string_view(), input_item_id(povnum * 4 + ITEM_ID_HAT1RIGHT), &dinput_joystick_device::pov_get_state, reinterpret_cast<void *>(uintptr_t(povnum * 4 + POVDIR_RIGHT))); @@ -497,6 +503,7 @@ void dinput_joystick_device::configure(input_device &device) // up device.add_item( item_name(offsetof(DIJOYSTATE2, rgdwPOV) + povnum * sizeof(DWORD), default_pov_name(povnum), "Up"), + std::string_view(), input_item_id(povnum * 4 + ITEM_ID_HAT1UP), &dinput_joystick_device::pov_get_state, reinterpret_cast<void *>(uintptr_t(povnum * 4 + POVDIR_UP))); @@ -504,6 +511,7 @@ void dinput_joystick_device::configure(input_device &device) // down device.add_item( item_name(offsetof(DIJOYSTATE2, rgdwPOV) + povnum * sizeof(DWORD), default_pov_name(povnum), "Down"), + std::string_view(), input_item_id(povnum * 4 + ITEM_ID_HAT1DOWN), &dinput_joystick_device::pov_get_state, reinterpret_cast<void *>(uintptr_t(povnum * 4 + POVDIR_DOWN))); @@ -524,6 +532,7 @@ void dinput_joystick_device::configure(input_device &device) device.add_item( item_name(offset, default_button_name(butnum), nullptr), + std::string_view(), itemid, generic_button_get_state<BYTE>, &m_joystick.state.rgbButtons[butnum]); |