summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/input/input_dinput.cpp
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2023-02-05 04:50:30 +1100
committer Vas Crabb <vas@vastheman.com>2023-02-05 05:01:40 +1100
commitb98fb7c98e5e44d436808eac46c927d3d0dc1f3f (patch)
treecd411d4fe24cd36862c78165723833e42de27303 /src/osd/modules/input/input_dinput.cpp
parent519554c8464ba8e8641e474bc949a2a0beae77ae (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.cpp15
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]);