summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/input/input_win32.cpp
diff options
context:
space:
mode:
author Brad Hughes <bradhugh@outlook.com>2016-08-22 08:28:55 -0400
committer Brad Hughes <bradhugh@outlook.com>2016-08-22 15:02:56 -0400
commit7d3ce203b52531989d8895f92c19c83f8a14eb21 (patch)
treefe9e40b536a046872041760c7b82c50c311ccf27 /src/osd/modules/input/input_win32.cpp
parenta65776420e6e7d16ff494f00b1eb0fede2be390e (diff)
osd input code cleanup (nw)
Diffstat (limited to 'src/osd/modules/input/input_win32.cpp')
-rw-r--r--src/osd/modules/input/input_win32.cpp26
1 files changed, 19 insertions, 7 deletions
diff --git a/src/osd/modules/input/input_win32.cpp b/src/osd/modules/input/input_win32.cpp
index ce1cf4e883f..78e162f296b 100644
--- a/src/osd/modules/input/input_win32.cpp
+++ b/src/osd/modules/input/input_win32.cpp
@@ -20,7 +20,6 @@
// MAME headers
#include "emu.h"
-#include "osdepend.h"
// MAMEOS headers
#include "winmain.h"
@@ -104,8 +103,12 @@ public:
case INPUT_EVENT_KEYDOWN:
case INPUT_EVENT_KEYUP:
args = static_cast<KeyPressEventArgs*>(eventdata);
- for (int i = 0; i < devicelist()->size(); i++)
- downcast<win32_keyboard_device*>(devicelist()->at(i))->queue_events(args, 1);
+ devicelist()->for_each_device([args](auto device)
+ {
+ auto keyboard = dynamic_cast<win32_keyboard_device*>(device);
+ if (keyboard != nullptr)
+ keyboard->queue_events(args, 1);
+ });
return true;
@@ -234,8 +237,12 @@ public:
return false;
auto args = static_cast<MouseButtonEventArgs*>(eventdata);
- for (int i = 0; i < devicelist()->size(); i++)
- downcast<win32_mouse_device*>(devicelist()->at(i))->queue_events(args, 1);
+ devicelist()->for_each_device([args](auto device)
+ {
+ auto mouse = dynamic_cast<win32_mouse_device*>(device);
+ if (mouse != nullptr)
+ mouse->queue_events(args, 1);
+ });
return true;
}
@@ -417,8 +424,13 @@ public:
if (!input_enabled() || !lightgun_enabled() || eventid != INPUT_EVENT_MOUSE_BUTTON)
return false;
- for (int i = 0; i < devicelist()->size(); i++)
- downcast<win32_lightgun_device*>(devicelist()->at(i))->queue_events(static_cast<MouseButtonEventArgs*>(eventdata), 1);
+ auto args = static_cast<MouseButtonEventArgs*>(eventdata);
+ devicelist()->for_each_device([args](auto device)
+ {
+ auto lightgun = dynamic_cast<win32_lightgun_device*>(device);
+ if (lightgun != nullptr)
+ lightgun->queue_events(args, 1);
+ });
return true;
}