summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/sdl/input.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/sdl/input.c')
-rw-r--r--src/osd/sdl/input.c45
1 files changed, 33 insertions, 12 deletions
diff --git a/src/osd/sdl/input.c b/src/osd/sdl/input.c
index 0e7cca86222..417e0d13b3f 100644
--- a/src/osd/sdl/input.c
+++ b/src/osd/sdl/input.c
@@ -13,7 +13,7 @@
//============================================================
// standard sdl header
-#include <SDL/SDL.h>
+#include "sdlinc.h"
#include <ctype.h>
#include <stddef.h>
@@ -206,7 +206,7 @@ struct _kt_table {
char * ui_name;
};
-#if (SDL_VERSION_ATLEAST(1,3,0))
+#if (SDLMAME_SDL2)
#define OSD_SDL_INDEX(x) (x)
#define OSD_SDL_INDEX_KEYSYM(keysym) ((keysym)->scancode)
@@ -470,7 +470,7 @@ struct _key_lookup_table
const char *name;
};
-#if (SDL_VERSION_ATLEAST(1,3,0))
+#if (SDLMAME_SDL2)
#define KE(x) { SDL_SCANCODE_ ## x, "SDL_SCANCODE_" #x },
#define KE8(A, B, C, D, E, F, G, H) KE(A) KE(B) KE(C) KE(D) KE(E) KE(F) KE(G) KE(H)
#define KE7(A, B, C, D, E, F, G) KE(A) KE(B) KE(C) KE(D) KE(E) KE(F) KE(G)
@@ -790,7 +790,7 @@ static void sdlinput_deregister_joysticks(running_machine &machine)
// sdlinput_register_mice
//============================================================
-#if (!SDL13_POST_HG4464 && SDL_VERSION_ATLEAST(1,3,0))
+#if defined(SDL2_MULTIAPI) && 0
static void sdlinput_register_mice(running_machine &machine)
{
int index, physical_mouse;
@@ -1002,7 +1002,7 @@ static kt_table * sdlinput_read_keymap(running_machine &machine)
// sdlinput_register_keyboards
//============================================================
-#if ((1 ||!SDL13_POST_HG4464) && SDL_VERSION_ATLEAST(1,3,0))
+#ifdef SDL2_MULTIAPI
static void sdlinput_register_keyboards(running_machine &machine)
{
int physical_keyboard;
@@ -1193,7 +1193,7 @@ sdl_window_info *sdlinput_get_focus_window(running_machine &machine)
// sdlinput_poll
//============================================================
-#if (SDL_VERSION_ATLEAST(1,3,0))
+#if (SDLMAME_SDL2)
INLINE sdl_window_info * window_from_id(Uint32 windowID)
{
sdl_window_info *w;
@@ -1238,7 +1238,7 @@ void sdlinput_process_events_buf(running_machine &machine)
if (SDLMAME_EVENTS_IN_WORKER_THREAD)
{
osd_lock_acquire(input_lock);
- #if (SDL_VERSION_ATLEAST(1,3,0))
+ #if (SDLMAME_SDL2)
/* Make sure we get all pending events */
SDL_PumpEvents();
#endif
@@ -1306,15 +1306,24 @@ void sdlinput_poll(running_machine &machine)
}
switch(event.type) {
case SDL_KEYDOWN:
+#ifdef SDL2_MULTIAPI
devinfo = generic_device_find_index( keyboard_list, keyboard_map.logical[event.key.which]);
//printf("Key down %d %d %s => %d %s (scrlock keycode is %d)\n", event.key.which, event.key.keysym.scancode, devinfo->name, OSD_SDL_INDEX_KEYSYM(&event.key.keysym), sdl_key_trans_table[event.key.keysym.scancode].mame_key_name, KEYCODE_SCRLOCK);
+#else
+ devinfo = generic_device_find_index( keyboard_list, keyboard_map.logical[0]);
+#endif
devinfo->keyboard.state[OSD_SDL_INDEX_KEYSYM(&event.key.keysym)] = 0x80;
-#if (!SDL_VERSION_ATLEAST(1,3,0))
+#if (!SDLMAME_SDL2)
ui_input_push_char_event(machine, sdl_window_list->target, (unicode_char) event.key.keysym.unicode);
#endif
break;
case SDL_KEYUP:
+#ifdef SDL2_MULTIAPI
devinfo = generic_device_find_index( keyboard_list, keyboard_map.logical[event.key.which]);
+ //printf("Key up: %d %d\n", OSD_SDL_INDEX_KEYSYM(&event.key.keysym), event.key.which);
+#else
+ devinfo = generic_device_find_index( keyboard_list, keyboard_map.logical[0]);
+#endif
devinfo->keyboard.state[OSD_SDL_INDEX_KEYSYM(&event.key.keysym)] = 0x00;
break;
case SDL_JOYAXISMOTION:
@@ -1389,7 +1398,11 @@ void sdlinput_poll(running_machine &machine)
}
break;
case SDL_MOUSEBUTTONDOWN:
+#ifdef SDL2_MULTIAPI
devinfo = generic_device_find_index(mouse_list, mouse_map.logical[event.button.which]);
+#else
+ devinfo = generic_device_find_index(mouse_list, mouse_map.logical[0]);
+#endif
devinfo->mouse.buttons[event.button.button-1] = 0x80;
//printf("But down %d %d %d %d %s\n", event.button.which, event.button.button, event.button.x, event.button.y, devinfo->name);
if (event.button.button == 1)
@@ -1422,7 +1435,11 @@ void sdlinput_poll(running_machine &machine)
}
break;
case SDL_MOUSEBUTTONUP:
+#ifdef SDL2_MULTIAPI
devinfo = generic_device_find_index(mouse_list, mouse_map.logical[event.button.which]);
+#else
+ devinfo = generic_device_find_index(mouse_list, mouse_map.logical[0]);
+#endif
devinfo->mouse.buttons[event.button.button-1] = 0;
//printf("But up %d %d %d %d\n", event.button.which, event.button.button, event.button.x, event.button.y);
@@ -1438,8 +1455,12 @@ void sdlinput_poll(running_machine &machine)
}
break;
case SDL_MOUSEMOTION:
+#ifdef SDL2_MULTIAPI
devinfo = generic_device_find_index(mouse_list, mouse_map.logical[event.motion.which]);
-#if (SDL_VERSION_ATLEAST(1,3,0))
+#else
+ devinfo = generic_device_find_index(mouse_list, mouse_map.logical[0]);
+#endif
+#if (SDLMAME_SDL2)
// FIXME: may apply to 1.2 as well ...
//printf("Motion %d %d %d %s\n", event.motion.which, event.motion.x, event.motion.y, devinfo->name);
devinfo->mouse.lX += event.motion.xrel * INPUT_RELATIVE_PER_PIXEL;
@@ -1456,7 +1477,7 @@ void sdlinput_poll(running_machine &machine)
ui_input_push_mouse_move_event(machine, window->target, cx, cy);
}
break;
-#if (!SDL_VERSION_ATLEAST(1,3,0))
+#if (!SDLMAME_SDL2)
case SDL_APPMOUSEFOCUS:
app_has_mouse_focus = event.active.gain;
if (!event.active.gain)
@@ -1533,7 +1554,7 @@ void sdlinput_poll(running_machine &machine)
#endif
}
}
-#if (SDL_VERSION_ATLEAST(1,3,0))
+#if (SDLMAME_SDL2)
resize_all_windows();
#endif
}
@@ -1549,7 +1570,7 @@ void sdlinput_release_keys(running_machine &machine)
// FIXME: SDL >= 1.3 will nuke the window event buffer when
// a window is closed. This will leave keys in a pressed
// state when a window is destroyed and recreated.
-#if (SDL_VERSION_ATLEAST(1,3,0))
+#if (SDLMAME_SDL2)
device_info *devinfo;
int index;