diff options
Diffstat (limited to 'src/osd/sdl/input.c')
-rw-r--r-- | src/osd/sdl/input.c | 45 |
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; |