summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/input/input_windows.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/modules/input/input_windows.cpp')
-rw-r--r--src/osd/modules/input/input_windows.cpp37
1 files changed, 29 insertions, 8 deletions
diff --git a/src/osd/modules/input/input_windows.cpp b/src/osd/modules/input/input_windows.cpp
index f80a4d57459..606072d1997 100644
--- a/src/osd/modules/input/input_windows.cpp
+++ b/src/osd/modules/input/input_windows.cpp
@@ -23,20 +23,41 @@
bool windows_osd_interface::should_hide_mouse() const
{
bool hidemouse = false;
- hidemouse |= downcast<wininput_module*>(m_keyboard_input)->should_hide_mouse();
- hidemouse |= downcast<wininput_module*>(m_mouse_input)->should_hide_mouse();
- hidemouse |= downcast<wininput_module*>(m_lightgun_input)->should_hide_mouse();
- hidemouse |= downcast<wininput_module*>(m_joystick_input)->should_hide_mouse();
+ wininput_module* mod = nullptr;
+
+ mod = dynamic_cast<wininput_module*>(m_keyboard_input);
+ if (mod) hidemouse |= mod->should_hide_mouse();
+
+ mod = dynamic_cast<wininput_module*>(m_mouse_input);
+ if (mod) hidemouse |= mod->should_hide_mouse();
+
+ mod = dynamic_cast<wininput_module*>(m_lightgun_input);
+ if (mod) hidemouse |= mod->should_hide_mouse();
+
+ mod = dynamic_cast<wininput_module*>(m_joystick_input);
+ if (mod) hidemouse |= mod->should_hide_mouse();
+
return hidemouse;
}
bool windows_osd_interface::handle_input_event(input_event eventid, void* eventdata) const
{
bool handled = false;
- handled |= downcast<wininput_module*>(m_keyboard_input)->handle_input_event(eventid, eventdata);
- handled |= downcast<wininput_module*>(m_mouse_input)->handle_input_event(eventid, eventdata);
- handled |= downcast<wininput_module*>(m_lightgun_input)->handle_input_event(eventid, eventdata);
- handled |= downcast<wininput_module*>(m_joystick_input)->handle_input_event(eventid, eventdata);
+
+ wininput_module* mod = nullptr;
+
+ mod = dynamic_cast<wininput_module*>(m_keyboard_input);
+ if (mod) handled |= mod->handle_input_event(eventid, eventdata);
+
+ mod = dynamic_cast<wininput_module*>(m_mouse_input);
+ if (mod) handled |= mod->handle_input_event(eventid, eventdata);
+
+ mod = dynamic_cast<wininput_module*>(m_lightgun_input);
+ if (mod) handled |= mod->handle_input_event(eventid, eventdata);
+
+ mod = dynamic_cast<wininput_module*>(m_joystick_input);
+ if (mod) handled |= mod->handle_input_event(eventid, eventdata);
+
return handled;
}