diff options
Diffstat (limited to 'src/osd/sdl/input.c')
-rw-r--r-- | src/osd/sdl/input.c | 432 |
1 files changed, 216 insertions, 216 deletions
diff --git a/src/osd/sdl/input.c b/src/osd/sdl/input.c index 4442993bee5..d196f44415b 100644 --- a/src/osd/sdl/input.c +++ b/src/osd/sdl/input.c @@ -7,7 +7,7 @@ // // SDLMAME by Olivier Galibert and R. Belmont // -// SixAxis info: left analog is axes 0 & 1, right analog is axes 2 & 3, +// SixAxis info: left analog is axes 0 & 1, right analog is axes 2 & 3, // analog L2 is axis 12 and analog L3 is axis 13 // //============================================================ @@ -74,7 +74,7 @@ enum typedef struct _keyboard_state keyboard_state; struct _keyboard_state { - INT32 state[0x3ff]; // must be INT32! + INT32 state[0x3ff]; // must be INT32! INT8 oldkey[MAX_KEYS]; INT8 currkey[MAX_KEYS]; }; @@ -106,8 +106,8 @@ struct _device_info // device information device_info ** head; device_info * next; - char * name; - + char * name; + // MAME information input_device * device; @@ -132,7 +132,7 @@ static UINT8 input_paused; static sdl_window_info * focus_window = NULL; // input buffer - only for SDLMAME_EVENTS_IN_WORKER_THREAD -#define MAX_BUF_EVENTS (500) /* 100 not enough for SDL 1.3 */ +#define MAX_BUF_EVENTS (500) /* 100 not enough for SDL 1.3 */ static SDL_Event event_buf[MAX_BUF_EVENTS]; static int event_buf_count; @@ -154,7 +154,7 @@ static device_info * joystick_list; // joystick mapper typedef struct _device_map_t device_map_t; -struct _device_map_t +struct _device_map_t { struct { char *name; @@ -201,10 +201,10 @@ typedef struct _kt_table kt_table; struct _kt_table { INT32 mame_key; INT32 sdl_key; - //const char * vkey; - //const char * ascii; - const char * mame_key_name; - char * ui_name; + //const char * vkey; + //const char * ascii; + const char * mame_key_name; + char * ui_name; }; #if (SDL_VERSION_ATLEAST(1,3,0)) @@ -226,18 +226,18 @@ struct _kt_table { static kt_table sdl_key_trans_table[] = { - // MAME key SDL key vkey ascii + // MAME key SDL key vkey ascii KTT_ENTRY0( ESC, ESCAPE, 0x1b, 0x1b, "ESC" ), - KTT_ENTRY1( 1, 1 ), - KTT_ENTRY1( 2, 2 ), - KTT_ENTRY1( 3, 3 ), - KTT_ENTRY1( 4, 4 ), - KTT_ENTRY1( 5, 5 ), - KTT_ENTRY1( 6, 6 ), - KTT_ENTRY1( 7, 7 ), - KTT_ENTRY1( 8, 8 ), - KTT_ENTRY1( 9, 9 ), - KTT_ENTRY1( 0, 0 ), + KTT_ENTRY1( 1, 1 ), + KTT_ENTRY1( 2, 2 ), + KTT_ENTRY1( 3, 3 ), + KTT_ENTRY1( 4, 4 ), + KTT_ENTRY1( 5, 5 ), + KTT_ENTRY1( 6, 6 ), + KTT_ENTRY1( 7, 7 ), + KTT_ENTRY1( 8, 8 ), + KTT_ENTRY1( 9, 9 ), + KTT_ENTRY1( 0, 0 ), KTT_ENTRY0( MINUS, MINUS, 0xbd, '-', "MINUS" ), KTT_ENTRY0( EQUALS, EQUALS, 0xbb, '=', "EQUALS" ), KTT_ENTRY0( BACKSPACE, BACKSPACE, 0x08, 0x08, "BACKSPACE" ), @@ -252,9 +252,9 @@ static kt_table sdl_key_trans_table[] = KTT_ENTRY1( I, I ), KTT_ENTRY1( O, O ), KTT_ENTRY1( P, P ), - KTT_ENTRY0( OPENBRACE, LEFTBRACKET, 0xdb, '[', "OPENBRACE" ), - KTT_ENTRY0( CLOSEBRACE,RIGHTBRACKET, 0xdd, ']', "CLOSEBRACE" ), - KTT_ENTRY0( ENTER, RETURN, 0x0d, 0x0d, "RETURN" ), + KTT_ENTRY0( OPENBRACE, LEFTBRACKET, 0xdb, '[', "OPENBRACE" ), + KTT_ENTRY0( CLOSEBRACE,RIGHTBRACKET, 0xdd, ']', "CLOSEBRACE" ), + KTT_ENTRY0( ENTER, RETURN, 0x0d, 0x0d, "RETURN" ), KTT_ENTRY2( LCONTROL, LCTRL ), KTT_ENTRY1( A, A ), KTT_ENTRY1( S, S ), @@ -267,8 +267,8 @@ static kt_table sdl_key_trans_table[] = KTT_ENTRY1( L, L ), KTT_ENTRY0( COLON, SEMICOLON, 0xba, ';', "COLON" ), KTT_ENTRY0( QUOTE, APOSTROPHE, 0xde, '\'', "QUOTE" ), - KTT_ENTRY2( LSHIFT, LSHIFT ), - KTT_ENTRY0( BACKSLASH, BACKSLASH, 0xdc, '\\', "BACKSLASH" ), + KTT_ENTRY2( LSHIFT, LSHIFT ), + KTT_ENTRY0( BACKSLASH, BACKSLASH, 0xdc, '\\', "BACKSLASH" ), KTT_ENTRY1( Z, Z ), KTT_ENTRY1( X, X ), KTT_ENTRY1( C, C ), @@ -276,26 +276,26 @@ static kt_table sdl_key_trans_table[] = KTT_ENTRY1( B, B ), KTT_ENTRY1( N, N ), KTT_ENTRY1( M, M ), - KTT_ENTRY0( COMMA, COMMA, 0xbc, ',', "COMMA" ), - KTT_ENTRY0( STOP, PERIOD, 0xbe, '.', "STOP" ), - KTT_ENTRY0( SLASH, SLASH, 0xbf, '/', "SLASH" ), - KTT_ENTRY2( RSHIFT, RSHIFT ), - KTT_ENTRY0( ASTERISK, KP_MULTIPLY, '*', '*', "ASTERIX" ), - KTT_ENTRY2( LALT, LALT ), - KTT_ENTRY0( SPACE, SPACE, ' ', ' ', "SPACE" ), - KTT_ENTRY2( CAPSLOCK, CAPSLOCK ), - KTT_ENTRY2( F1, F1 ), - KTT_ENTRY2( F2, F2 ), - KTT_ENTRY2( F3, F3 ), - KTT_ENTRY2( F4, F4 ), - KTT_ENTRY2( F5, F5 ), - KTT_ENTRY2( F6, F6 ), - KTT_ENTRY2( F7, F7 ), - KTT_ENTRY2( F8, F8 ), - KTT_ENTRY2( F9, F9 ), - KTT_ENTRY2( F10, F10 ), - KTT_ENTRY2( NUMLOCK, NUMLOCKCLEAR ), - KTT_ENTRY2( SCRLOCK, SCROLLLOCK ), + KTT_ENTRY0( COMMA, COMMA, 0xbc, ',', "COMMA" ), + KTT_ENTRY0( STOP, PERIOD, 0xbe, '.', "STOP" ), + KTT_ENTRY0( SLASH, SLASH, 0xbf, '/', "SLASH" ), + KTT_ENTRY2( RSHIFT, RSHIFT ), + KTT_ENTRY0( ASTERISK, KP_MULTIPLY, '*', '*', "ASTERIX" ), + KTT_ENTRY2( LALT, LALT ), + KTT_ENTRY0( SPACE, SPACE, ' ', ' ', "SPACE" ), + KTT_ENTRY2( CAPSLOCK, CAPSLOCK ), + KTT_ENTRY2( F1, F1 ), + KTT_ENTRY2( F2, F2 ), + KTT_ENTRY2( F3, F3 ), + KTT_ENTRY2( F4, F4 ), + KTT_ENTRY2( F5, F5 ), + KTT_ENTRY2( F6, F6 ), + KTT_ENTRY2( F7, F7 ), + KTT_ENTRY2( F8, F8 ), + KTT_ENTRY2( F9, F9 ), + KTT_ENTRY2( F10, F10 ), + KTT_ENTRY2( NUMLOCK, NUMLOCKCLEAR ), + KTT_ENTRY2( SCRLOCK, SCROLLLOCK ), KTT_ENTRY2( 7_PAD, KP_7 ), KTT_ENTRY2( 8_PAD, KP_8 ), KTT_ENTRY2( 9_PAD, KP_9 ), @@ -303,35 +303,35 @@ static kt_table sdl_key_trans_table[] = KTT_ENTRY2( 4_PAD, KP_4 ), KTT_ENTRY2( 5_PAD, KP_5 ), KTT_ENTRY2( 6_PAD, KP_6 ), - KTT_ENTRY2( PLUS_PAD, KP_PLUS ), + KTT_ENTRY2( PLUS_PAD, KP_PLUS ), KTT_ENTRY2( 1_PAD, KP_1 ), KTT_ENTRY2( 2_PAD, KP_2 ), KTT_ENTRY2( 3_PAD, KP_3 ), KTT_ENTRY2( 0_PAD, KP_0 ), - KTT_ENTRY2( DEL_PAD, KP_PERIOD ), - KTT_ENTRY2( F11, F11 ), - KTT_ENTRY2( F12, F12 ), - KTT_ENTRY2( F13, F13 ), - KTT_ENTRY2( F14, F14 ), - KTT_ENTRY2( F15, F15 ), + KTT_ENTRY2( DEL_PAD, KP_PERIOD ), + KTT_ENTRY2( F11, F11 ), + KTT_ENTRY2( F12, F12 ), + KTT_ENTRY2( F13, F13 ), + KTT_ENTRY2( F14, F14 ), + KTT_ENTRY2( F15, F15 ), KTT_ENTRY2( ENTER_PAD, KP_ENTER ), - KTT_ENTRY2( RCONTROL, RCTRL ), + KTT_ENTRY2( RCONTROL, RCTRL ), KTT_ENTRY2( SLASH_PAD, KP_DIVIDE ), - KTT_ENTRY2( PRTSCR, PRINTSCREEN ), - KTT_ENTRY2( RALT, RALT ), - KTT_ENTRY2( HOME, HOME ), - KTT_ENTRY2( UP, UP ), - KTT_ENTRY2( PGUP, PAGEUP ), - KTT_ENTRY2( LEFT, LEFT ), + KTT_ENTRY2( PRTSCR, PRINTSCREEN ), + KTT_ENTRY2( RALT, RALT ), + KTT_ENTRY2( HOME, HOME ), + KTT_ENTRY2( UP, UP ), + KTT_ENTRY2( PGUP, PAGEUP ), + KTT_ENTRY2( LEFT, LEFT ), KTT_ENTRY2( RIGHT, RIGHT ), - KTT_ENTRY2( END, END ), - KTT_ENTRY2( DOWN, DOWN ), - KTT_ENTRY2( PGDN, PAGEDOWN ), - KTT_ENTRY2( INSERT, INSERT ), + KTT_ENTRY2( END, END ), + KTT_ENTRY2( DOWN, DOWN ), + KTT_ENTRY2( PGDN, PAGEDOWN ), + KTT_ENTRY2( INSERT, INSERT ), { ITEM_ID_DEL, SDL_SCANCODE_DELETE, "ITEM_ID_DEL", (char *)"DELETE" }, - KTT_ENTRY2( LWIN, LGUI ), - KTT_ENTRY2( RWIN, RGUI ), - KTT_ENTRY2( MENU, MENU ), + KTT_ENTRY2( LWIN, LGUI ), + KTT_ENTRY2( RWIN, RGUI ), + KTT_ENTRY2( MENU, MENU ), KTT_ENTRY0( TILDE, GRAVE, 0xc0, '`', "TILDE" ), KTT_ENTRY0( BACKSLASH2, NONUSBACKSLASH, 0xdc, '\\', "BACKSLASH2" ), { -1 } @@ -351,18 +351,18 @@ static kt_table sdl_key_trans_table[] = static kt_table sdl_key_trans_table[] = { - // MAME key SDL key vkey ascii + // MAME key SDL key vkey ascii KTT_ENTRY0( ESC, ESCAPE, 0x1b, 0x1b, "ESC" ), - KTT_ENTRY1( 1, 1 ), - KTT_ENTRY1( 2, 2 ), - KTT_ENTRY1( 3, 3 ), - KTT_ENTRY1( 4, 4 ), - KTT_ENTRY1( 5, 5 ), - KTT_ENTRY1( 6, 6 ), - KTT_ENTRY1( 7, 7 ), - KTT_ENTRY1( 8, 8 ), - KTT_ENTRY1( 9, 9 ), - KTT_ENTRY1( 0, 0 ), + KTT_ENTRY1( 1, 1 ), + KTT_ENTRY1( 2, 2 ), + KTT_ENTRY1( 3, 3 ), + KTT_ENTRY1( 4, 4 ), + KTT_ENTRY1( 5, 5 ), + KTT_ENTRY1( 6, 6 ), + KTT_ENTRY1( 7, 7 ), + KTT_ENTRY1( 8, 8 ), + KTT_ENTRY1( 9, 9 ), + KTT_ENTRY1( 0, 0 ), KTT_ENTRY0( MINUS, MINUS, 0xbd, '-', "MINUS" ), KTT_ENTRY0( EQUALS, EQUALS, 0xbb, '=', "EQUALS" ), KTT_ENTRY0( BACKSPACE, BACKSPACE, 0x08, 0x08, "BACKSPACE" ), @@ -377,9 +377,9 @@ static kt_table sdl_key_trans_table[] = KTT_ENTRY1( I, i ), KTT_ENTRY1( O, o ), KTT_ENTRY1( P, p ), - KTT_ENTRY0( OPENBRACE, LEFTBRACKET, 0xdb, '[', "OPENBRACE" ), - KTT_ENTRY0( CLOSEBRACE,RIGHTBRACKET, 0xdd, ']', "CLOSEBRACE" ), - KTT_ENTRY0( ENTER, RETURN, 0x0d, 0x0d, "RETURN" ), + KTT_ENTRY0( OPENBRACE, LEFTBRACKET, 0xdb, '[', "OPENBRACE" ), + KTT_ENTRY0( CLOSEBRACE,RIGHTBRACKET, 0xdd, ']', "CLOSEBRACE" ), + KTT_ENTRY0( ENTER, RETURN, 0x0d, 0x0d, "RETURN" ), KTT_ENTRY2( LCONTROL, LCTRL ), KTT_ENTRY1( A, a ), KTT_ENTRY1( S, s ), @@ -392,8 +392,8 @@ static kt_table sdl_key_trans_table[] = KTT_ENTRY1( L, l ), KTT_ENTRY0( COLON, SEMICOLON, 0xba, ';', "COLON" ), KTT_ENTRY0( QUOTE, QUOTE, 0xde, '\'', "QUOTE" ), - KTT_ENTRY2( LSHIFT, LSHIFT ), - KTT_ENTRY0( BACKSLASH, BACKSLASH, 0xdc, '\\', "BACKSLASH" ), + KTT_ENTRY2( LSHIFT, LSHIFT ), + KTT_ENTRY0( BACKSLASH, BACKSLASH, 0xdc, '\\', "BACKSLASH" ), KTT_ENTRY1( Z, z ), KTT_ENTRY1( X, x ), KTT_ENTRY1( C, c ), @@ -401,26 +401,26 @@ static kt_table sdl_key_trans_table[] = KTT_ENTRY1( B, b ), KTT_ENTRY1( N, n ), KTT_ENTRY1( M, m ), - KTT_ENTRY0( COMMA, COMMA, 0xbc, ',', "COMMA" ), - KTT_ENTRY0( STOP, PERIOD, 0xbe, '.', "STOP" ), - KTT_ENTRY0( SLASH, SLASH, 0xbf, '/', "SLASH" ), - KTT_ENTRY2( RSHIFT, RSHIFT ), - KTT_ENTRY0( ASTERISK, KP_MULTIPLY, '*', '*', "ASTERIX" ), - KTT_ENTRY2( LALT, LALT ), - KTT_ENTRY0( SPACE, SPACE, ' ', ' ', "SPACE" ), - KTT_ENTRY2( CAPSLOCK, CAPSLOCK ), - KTT_ENTRY2( F1, F1 ), - KTT_ENTRY2( F2, F2 ), - KTT_ENTRY2( F3, F3 ), - KTT_ENTRY2( F4, F4 ), - KTT_ENTRY2( F5, F5 ), - KTT_ENTRY2( F6, F6 ), - KTT_ENTRY2( F7, F7 ), - KTT_ENTRY2( F8, F8 ), - KTT_ENTRY2( F9, F9 ), - KTT_ENTRY2( F10, F10 ), - KTT_ENTRY2( NUMLOCK, NUMLOCK ), - KTT_ENTRY2( SCRLOCK, SCROLLOCK ), + KTT_ENTRY0( COMMA, COMMA, 0xbc, ',', "COMMA" ), + KTT_ENTRY0( STOP, PERIOD, 0xbe, '.', "STOP" ), + KTT_ENTRY0( SLASH, SLASH, 0xbf, '/', "SLASH" ), + KTT_ENTRY2( RSHIFT, RSHIFT ), + KTT_ENTRY0( ASTERISK, KP_MULTIPLY, '*', '*', "ASTERIX" ), + KTT_ENTRY2( LALT, LALT ), + KTT_ENTRY0( SPACE, SPACE, ' ', ' ', "SPACE" ), + KTT_ENTRY2( CAPSLOCK, CAPSLOCK ), + KTT_ENTRY2( F1, F1 ), + KTT_ENTRY2( F2, F2 ), + KTT_ENTRY2( F3, F3 ), + KTT_ENTRY2( F4, F4 ), + KTT_ENTRY2( F5, F5 ), + KTT_ENTRY2( F6, F6 ), + KTT_ENTRY2( F7, F7 ), + KTT_ENTRY2( F8, F8 ), + KTT_ENTRY2( F9, F9 ), + KTT_ENTRY2( F10, F10 ), + KTT_ENTRY2( NUMLOCK, NUMLOCK ), + KTT_ENTRY2( SCRLOCK, SCROLLOCK ), KTT_ENTRY2( 7_PAD, KP7 ), KTT_ENTRY2( 8_PAD, KP8 ), KTT_ENTRY2( 9_PAD, KP9 ), @@ -428,35 +428,35 @@ static kt_table sdl_key_trans_table[] = KTT_ENTRY2( 4_PAD, KP4 ), KTT_ENTRY2( 5_PAD, KP5 ), KTT_ENTRY2( 6_PAD, KP6 ), - KTT_ENTRY2( PLUS_PAD, KP_PLUS ), + KTT_ENTRY2( PLUS_PAD, KP_PLUS ), KTT_ENTRY2( 1_PAD, KP1 ), KTT_ENTRY2( 2_PAD, KP2 ), KTT_ENTRY2( 3_PAD, KP3 ), KTT_ENTRY2( 0_PAD, KP0 ), - KTT_ENTRY2( DEL_PAD, KP_PERIOD ), - KTT_ENTRY2( F11, F11 ), - KTT_ENTRY2( F12, F12 ), - KTT_ENTRY2( F13, F13 ), - KTT_ENTRY2( F14, F14 ), - KTT_ENTRY2( F15, F15 ), + KTT_ENTRY2( DEL_PAD, KP_PERIOD ), + KTT_ENTRY2( F11, F11 ), + KTT_ENTRY2( F12, F12 ), + KTT_ENTRY2( F13, F13 ), + KTT_ENTRY2( F14, F14 ), + KTT_ENTRY2( F15, F15 ), KTT_ENTRY2( ENTER_PAD, KP_ENTER ), - KTT_ENTRY2( RCONTROL, RCTRL ), + KTT_ENTRY2( RCONTROL, RCTRL ), KTT_ENTRY2( SLASH_PAD, KP_DIVIDE ), - KTT_ENTRY2( PRTSCR, PRINT ), - KTT_ENTRY2( RALT, RALT ), - KTT_ENTRY2( HOME, HOME ), - KTT_ENTRY2( UP, UP ), - KTT_ENTRY2( PGUP, PAGEUP ), - KTT_ENTRY2( LEFT, LEFT ), + KTT_ENTRY2( PRTSCR, PRINT ), + KTT_ENTRY2( RALT, RALT ), + KTT_ENTRY2( HOME, HOME ), + KTT_ENTRY2( UP, UP ), + KTT_ENTRY2( PGUP, PAGEUP ), + KTT_ENTRY2( LEFT, LEFT ), KTT_ENTRY2( RIGHT, RIGHT ), - KTT_ENTRY2( END, END ), - KTT_ENTRY2( DOWN, DOWN ), - KTT_ENTRY2( PGDN, PAGEDOWN ), - KTT_ENTRY2( INSERT, INSERT ), + KTT_ENTRY2( END, END ), + KTT_ENTRY2( DOWN, DOWN ), + KTT_ENTRY2( PGDN, PAGEDOWN ), + KTT_ENTRY2( INSERT, INSERT ), { ITEM_ID_DEL, SDLK_DELETE, "ITEM_ID_DEL", (char *)"DELETE" }, - KTT_ENTRY2( LWIN, LSUPER ), - KTT_ENTRY2( RWIN, RSUPER ), - KTT_ENTRY2( MENU, MENU ), + KTT_ENTRY2( LWIN, LSUPER ), + KTT_ENTRY2( RWIN, RSUPER ), + KTT_ENTRY2( MENU, MENU ), KTT_ENTRY0( TILDE, BACKQUOTE, 0xc0, '`', "TILDE" ), KTT_ENTRY0( BACKSLASH2, HASH, 0xdc, '\\', "BACKSLASH2" ), { -1 } @@ -464,7 +464,7 @@ static kt_table sdl_key_trans_table[] = #endif typedef struct _key_lookup_table key_lookup_table; -struct _key_lookup_table +struct _key_lookup_table { int code; const char *name; @@ -472,10 +472,10 @@ struct _key_lookup_table #if (SDL_VERSION_ATLEAST(1,3,0)) #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 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) #define KE5(A, B, C, D, E) KE(A) KE(B) KE(C) KE(D) KE(E) -#define KE3(A, B, C) KE(A) KE(B) KE(C) +#define KE3(A, B, C) KE(A) KE(B) KE(C) static key_lookup_table sdl_lookup_table[] = { @@ -502,7 +502,7 @@ static key_lookup_table sdl_lookup_table[] = }; #else #define KE(x) { SDLK_ ## x, "SDLK_" #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 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) static key_lookup_table sdl_lookup_table[] = { @@ -536,7 +536,7 @@ static key_lookup_table sdl_lookup_table[] = KE8(LCTRL, RALT, LALT, RMETA, LMETA, LSUPER, RSUPER, MODE ) KE8(COMPOSE, HELP, PRINT, SYSREQ, BREAK, MENU, POWER, EURO ) KE(UNDO) - KE(LAST) + KE(LAST) {-1, ""} }; #endif @@ -611,7 +611,7 @@ static void devmap_register(device_map_t *devmap, int physical_idx, char *name) devmap->map[stick].name = name; devmap->logical[physical_idx] = stick; } - + } //============================================================ @@ -622,9 +622,9 @@ static void devmap_init(running_machine *machine, device_map_t *devmap, const ch { int dev; char defname[20]; - - assert(max_devices <= MAX_DEVMAP_ENTRIES); - + + assert(max_devices <= MAX_DEVMAP_ENTRIES); + for (dev = 0; dev < MAX_DEVMAP_ENTRIES; dev++) { devmap->map[dev].name = (char *)""; @@ -632,7 +632,7 @@ static void devmap_init(running_machine *machine, device_map_t *devmap, const ch devmap->logical[dev] = -1; } devmap->initialized = 0; - + for (dev = 0; dev < max_devices; dev++) { const char *dev_name; @@ -648,7 +648,7 @@ static void devmap_init(running_machine *machine, device_map_t *devmap, const ch } } -static device_info *devmap_class_register(running_machine *machine, device_map_t *devmap, +static device_info *devmap_class_register(running_machine *machine, device_map_t *devmap, int index, device_info **devlist, input_device_class devclass) { device_info *devinfo = NULL; @@ -691,7 +691,7 @@ static void sdlinput_register_joysticks(running_machine *machine) for (physical_stick = 0; physical_stick < SDL_NumJoysticks(); physical_stick++) { char *joy_name = remove_spaces(machine, SDL_JoystickName(physical_stick)); - + devmap_register(&joy_map, physical_stick, joy_name); } @@ -701,9 +701,9 @@ static void sdlinput_register_joysticks(running_machine *machine) if (devinfo == NULL) continue; - + physical_stick = joy_map.map[stick].physical; - + joy = SDL_JoystickOpen(physical_stick); devinfo->joystick.device = joy; @@ -716,7 +716,7 @@ static void sdlinput_register_joysticks(running_machine *machine) for (axis = 0; axis < SDL_JoystickNumAxes(joy); axis++) { input_item_id itemid; - + if (axis < INPUT_MAX_AXIS) itemid = (input_item_id) (ITEM_ID_XAXIS + axis); else if (axis < INPUT_MAX_AXIS + INPUT_MAX_ADD_ABSOLUTE) @@ -727,12 +727,12 @@ static void sdlinput_register_joysticks(running_machine *machine) sprintf(tempname, "A%d %s", axis, devinfo->name); input_device_item_add(devinfo->device, tempname, &devinfo->joystick.axes[axis], itemid, generic_axis_get_state); } - + // loop over all buttons for (button = 0; button < SDL_JoystickNumButtons(joy); button++) { input_item_id itemid; - + devinfo->joystick.buttons[button] = 0; if (button < INPUT_MAX_BUTTONS) @@ -750,7 +750,7 @@ static void sdlinput_register_joysticks(running_machine *machine) for (hat = 0; hat < SDL_JoystickNumHats(joy); hat++) { input_item_id itemid; - + sprintf(tempname, "hat %d Up", hat); itemid = (input_item_id) ((hat < INPUT_MAX_HATS) ? ITEM_ID_HAT1UP + 4 * hat : ITEM_ID_OTHER_SWITCH); input_device_item_add(devinfo->device, tempname, &devinfo->joystick.hatsU[hat], itemid, generic_button_get_state); @@ -794,7 +794,7 @@ static void sdlinput_deregister_joysticks(running_machine *machine) static void sdlinput_register_mice(running_machine *machine) { int index, physical_mouse; - + mouse_enabled = options_get_bool(mame_options(), OPTION_MOUSE); devmap_init(machine, &mouse_map, SDLOPTION_MOUSEINDEX, 8, "Mouse mapping"); @@ -802,7 +802,7 @@ static void sdlinput_register_mice(running_machine *machine) for (physical_mouse = 0; physical_mouse < SDL_GetNumMice(); physical_mouse++) { char *mouse_name = remove_spaces(machine, SDL_GetMouseName(physical_mouse)); - + devmap_register(&mouse_map, physical_mouse, mouse_name); } @@ -817,23 +817,23 @@ static void sdlinput_register_mice(running_machine *machine) if (devinfo == NULL) continue; - + // add the axes sprintf(defname, "X %s", devinfo->name); input_device_item_add(devinfo->device, defname, &devinfo->mouse.lX, ITEM_ID_XAXIS, generic_axis_get_state); sprintf(defname, "Y %s", devinfo->name); input_device_item_add(devinfo->device, defname, &devinfo->mouse.lY, ITEM_ID_YAXIS, generic_axis_get_state); - + for (button = 0; button < 4; button++) { input_item_id itemid; - + sprintf(defname, "B%d", button + 1); itemid = (input_item_id) (ITEM_ID_BUTTON1+button); - + input_device_item_add(devinfo->device, defname, &devinfo->mouse.buttons[button], itemid, generic_button_get_state); } - + if (0 && mouse_enabled) SDL_SetRelativeMouseMode(index, SDL_TRUE); mame_printf_verbose("Mouse: Registered %s\n", devinfo->name); @@ -846,7 +846,7 @@ static void sdlinput_register_mice(running_machine *machine) device_info *devinfo; char defname[20]; int button; - + mame_printf_verbose("Mouse: Start initialization\n"); mouse_map.logical[0] = 0; @@ -856,7 +856,7 @@ static void sdlinput_register_mice(running_machine *machine) devinfo->device = input_device_add(machine, DEVICE_CLASS_MOUSE, devinfo->name, devinfo); mouse_enabled = options_get_bool(mame_options(), OPTION_MOUSE); - + // add the axes input_device_item_add(devinfo->device, "X", &devinfo->mouse.lX, ITEM_ID_XAXIS, generic_axis_get_state); input_device_item_add(devinfo->device, "Y", &devinfo->mouse.lY, ITEM_ID_YAXIS, generic_axis_get_state); @@ -900,7 +900,7 @@ static int lookup_sdl_code(const char *scode) static int lookup_mame_index(const char *scode) { int index, i; - + index=-1; i=0; while (sdl_key_trans_table[i].mame_key >= 0) @@ -910,7 +910,7 @@ static int lookup_mame_index(const char *scode) index=i; break; } - i++; + i++; } return index; } @@ -921,7 +921,7 @@ static int lookup_mame_code(const char *scode) int index; index = lookup_mame_index(scode); if (index >= 0) - return sdl_key_trans_table[index].mame_key; + return sdl_key_trans_table[index].mame_key; else return -1; } @@ -959,7 +959,7 @@ static kt_table * sdlinput_read_keymap(running_machine *machine) key_trans_table = auto_alloc_array(machine, kt_table, ARRAY_LENGTH(sdl_key_trans_table)); memcpy((void *) key_trans_table, sdl_key_trans_table, sizeof(sdl_key_trans_table)); - + while (!feof(keymap_file)) { fgets(buf, 255, keymap_file); @@ -974,11 +974,11 @@ static kt_table * sdlinput_read_keymap(running_machine *machine) memset(kns, 0, 21); sscanf(buf, "%20s %20s %x %x %20c\n", mks, sks, &vk, &ak, kns); - + index=lookup_mame_index(mks); sk = lookup_sdl_code(sks); - if ( sk >= 0 && index >=0) + if ( sk >= 0 && index >=0) { key_trans_table[index].sdl_key = sk; // vk and ak are not really needed @@ -995,7 +995,7 @@ static kt_table * sdlinput_read_keymap(running_machine *machine) } fclose(keymap_file); mame_printf_verbose("Keymap: Processed %d lines\n", line); - + return key_trans_table; } @@ -1019,7 +1019,7 @@ static void sdlinput_register_keyboards(running_machine *machine) { char defname[90]; snprintf(defname, sizeof(defname)-1, "Keyboard #%d", physical_keyboard + 1); - + devmap_register(&keyboard_map, physical_keyboard, defname); } @@ -1034,17 +1034,17 @@ static void sdlinput_register_keyboards(running_machine *machine) if (devinfo == NULL) continue; - + // populate it for (keynum = 0; sdl_key_trans_table[keynum].mame_key >= 0; keynum++) { input_item_id itemid; - + itemid = (input_item_id) key_trans_table[keynum].mame_key; // generate the default / modified name snprintf(defname, sizeof(defname)-1, "%s", key_trans_table[keynum].ui_name); - + // add the item to the device input_device_item_add(devinfo->device, defname, &devinfo->keyboard.state[OSD_SDL_INDEX(key_trans_table[keynum].sdl_key)], itemid, generic_button_get_state); } @@ -1064,7 +1064,7 @@ static void sdlinput_register_keyboards(running_machine *machine) key_trans_table = sdlinput_read_keymap(machine); keyboard_map.logical[0] = 0; - + mame_printf_verbose("Keyboard: Start initialization\n"); // SDL 1.2 only has 1 keyboard (1.3+ will have multiple, this must be revisited then) @@ -1076,12 +1076,12 @@ static void sdlinput_register_keyboards(running_machine *machine) for (keynum = 0; sdl_key_trans_table[keynum].mame_key >= 0; keynum++) { input_item_id itemid; - + itemid = (input_item_id) key_trans_table[keynum].mame_key; // generate the default / modified name snprintf(defname, sizeof(defname)-1, "%s", key_trans_table[keynum].ui_name); - + // add the item to the device //printf("Test %d\n", OSD_SDL_INDEX(key_trans_table[keynum].sdl_key) ); input_device_item_add(devinfo->device, defname, &devinfo->keyboard.state[OSD_SDL_INDEX(key_trans_table[keynum].sdl_key)], itemid, generic_button_get_state); @@ -1102,7 +1102,7 @@ void sdlinput_init(running_machine *machine) joystick_list = NULL; mouse_list = NULL; lightgun_list = NULL; - + app_has_mouse_focus = 1; // we need pause and exit callbacks @@ -1135,7 +1135,7 @@ void sdlinput_init(running_machine *machine) device_list_reset_devices(keyboard_list); device_list_reset_devices(mouse_list); device_list_reset_devices(joystick_list); - + } @@ -1191,7 +1191,7 @@ sdl_window_info *sdlinput_get_focus_window(running_machine *machine) INLINE sdl_window_info * window_from_id(SDL_WindowID windowID) { sdl_window_info *w; - + for (w = sdl_window_list; w != NULL; w = w->next) { //printf("w->window_id: %d\n", w->window_id); @@ -1207,7 +1207,7 @@ INLINE void resize_all_windows(void) { sdl_window_info *w; osd_ticks_t now = osd_ticks(); - + if (SDL13_COMBINE_RESIZE) { for (w = sdl_window_list; w != NULL; w = w->next) @@ -1235,12 +1235,12 @@ void sdlinput_process_events_buf(running_machine *machine) /* Make sure we get all pending events */ SDL_PumpEvents(); #endif - while(SDL_PollEvent(&event)) + while(SDL_PollEvent(&event)) { if (event_buf_count < MAX_BUF_EVENTS) event_buf[event_buf_count++] = event; else - mame_printf_warning("Event Buffer Overflow!\n"); + mame_printf_warning("Event Buffer Overflow!\n"); } osd_lock_release(input_lock); } @@ -1276,8 +1276,8 @@ void sdlinput_poll(running_machine *machine) osd_lock_release(input_lock); bufp = 0; } - - while (TRUE) + + while (TRUE) { if (SDLMAME_EVENTS_IN_WORKER_THREAD) { @@ -1291,7 +1291,7 @@ void sdlinput_poll(running_machine *machine) break; } - if (event.type == SDL_KEYUP && + if (event.type == SDL_KEYUP && event.key.keysym.sym == SDLK_CAPSLOCK) { /* more caps-lock hack */ @@ -1320,7 +1320,7 @@ void sdlinput_poll(running_machine *machine) if (axis <= 3) { - devinfo->joystick.axes[event.jaxis.axis] = (event.jaxis.value * 2); + devinfo->joystick.axes[event.jaxis.axis] = (event.jaxis.value * 2); } else { @@ -1331,7 +1331,7 @@ void sdlinput_poll(running_machine *machine) } else { - devinfo->joystick.axes[event.jaxis.axis] = (event.jaxis.value * 2); + devinfo->joystick.axes[event.jaxis.axis] = (event.jaxis.value * 2); } } break; @@ -1378,12 +1378,12 @@ void sdlinput_poll(running_machine *machine) devinfo = generic_device_find_index(joystick_list, joy_map.logical[event.jbutton.which]); if (devinfo) { - devinfo->joystick.buttons[event.jbutton.button] = (event.jbutton.state == SDL_PRESSED) ? 0x80 : 0; + devinfo->joystick.buttons[event.jbutton.button] = (event.jbutton.state == SDL_PRESSED) ? 0x80 : 0; } break; case SDL_MOUSEBUTTONDOWN: devinfo = generic_device_find_index(mouse_list, mouse_map.logical[event.button.which]); - devinfo->mouse.buttons[event.button.button-1] = 0x80; + 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) { @@ -1396,9 +1396,9 @@ void sdlinput_poll(running_machine *machine) sdl_window_info *window = GET_FOCUS_WINDOW(&event.button); if (window != NULL && window->xy_to_render_target(window, event.button.x,event.button.y, &cx, &cy) ) { - ui_input_push_mouse_down_event(machine, window->target, cx, cy); + ui_input_push_mouse_down_event(machine, window->target, cx, cy); // FIXME Parameter ? - if ((click-last_click < 250) + if ((click-last_click < 250) && (cx >= last_x - 4 && cx <= last_x + 4) && (cy >= last_y - 4 && cy <= last_y + 4) ) { @@ -1416,17 +1416,17 @@ void sdlinput_poll(running_machine *machine) break; case SDL_MOUSEBUTTONUP: devinfo = generic_device_find_index(mouse_list, mouse_map.logical[event.button.which]); - devinfo->mouse.buttons[event.button.button-1] = 0; + 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); if (event.button.button == 1) { int cx, cy; sdl_window_info *window = GET_FOCUS_WINDOW(&event.button); - + if (window != NULL && window->xy_to_render_target(window, event.button.x,event.button.y, &cx, &cy) ) { - ui_input_push_mouse_up_event(machine, window->target, cx, cy); + ui_input_push_mouse_up_event(machine, window->target, cx, cy); } } break; @@ -1435,10 +1435,10 @@ void sdlinput_poll(running_machine *machine) #if (SDL_VERSION_ATLEAST(1,3,0)) // 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; + devinfo->mouse.lX += event.motion.xrel * INPUT_RELATIVE_PER_PIXEL; devinfo->mouse.lY += event.motion.yrel * INPUT_RELATIVE_PER_PIXEL; #else - devinfo->mouse.lX = event.motion.xrel * INPUT_RELATIVE_PER_PIXEL; + devinfo->mouse.lX = event.motion.xrel * INPUT_RELATIVE_PER_PIXEL; devinfo->mouse.lY = event.motion.yrel * INPUT_RELATIVE_PER_PIXEL; #endif { @@ -1446,7 +1446,7 @@ void sdlinput_poll(running_machine *machine) sdl_window_info *window = GET_FOCUS_WINDOW(&event.motion); if (window != NULL && window->xy_to_render_target(window, event.motion.x, event.motion.y, &cx, &cy) ) - ui_input_push_mouse_move_event(machine, window->target, cx, cy); + ui_input_push_mouse_move_event(machine, window->target, cx, cy); } break; #if (!SDL_VERSION_ATLEAST(1,3,0)) @@ -1480,10 +1480,10 @@ void sdlinput_poll(running_machine *machine) case SDL_WINDOWEVENT: { sdl_window_info *window = GET_WINDOW(&event.window); - + if (window == NULL) break; - + switch (event.window.event) { case SDL_WINDOWEVENT_CLOSE: @@ -1498,7 +1498,7 @@ void sdlinput_poll(running_machine *machine) focus_window = window; break; case SDL_WINDOWEVENT_RESIZED: - if (SDL13_COMBINE_RESIZE) + if (SDL13_COMBINE_RESIZE) { window->resize_width = event.window.data1; window->resize_height = event.window.data2; @@ -1516,7 +1516,7 @@ void sdlinput_poll(running_machine *machine) /* fall through */ case SDL_WINDOWEVENT_FOCUS_GAINED: case SDL_WINDOWEVENT_EXPOSED: - case SDL_WINDOWEVENT_MAXIMIZED: + case SDL_WINDOWEVENT_MAXIMIZED: case SDL_WINDOWEVENT_RESTORED: focus_window = window; break; @@ -1531,7 +1531,7 @@ void sdlinput_poll(running_machine *machine) #endif } - + //============================================================ // sdlinput_release_keys //============================================================ @@ -1553,7 +1553,7 @@ void sdlinput_release_keys(running_machine *machine) break; memset(&devinfo->keyboard.state, 0, sizeof(devinfo->keyboard.state)); } -#endif +#endif } @@ -1566,14 +1566,14 @@ int sdlinput_should_hide_mouse(running_machine *machine) // if we are paused, no if (input_paused) return FALSE; - + // if neither mice nor lightguns enabled in the core, then no if (!mouse_enabled && !lightgun_enabled) return FALSE; - + if (!app_has_mouse_focus) return FALSE; - + // otherwise, yes return TRUE; } @@ -1589,7 +1589,7 @@ void osd_customize_input_type_list(input_type_desc *typelist) int mameid_code ,ui_code; #endif input_type_desc *typedesc; - + // loop over the defaults for (typedesc = typelist; typedesc != NULL; typedesc = typedesc->next) { @@ -1612,9 +1612,9 @@ void osd_customize_input_type_list(input_type_desc *typelist) // disable UI_SELECT when LALT is down, this stops selecting // things in the menu when toggling fullscreen with LALT+ENTER -/* case IPT_UI_SELECT: - input_seq_set_3(&typedesc->seq[SEQ_TYPE_STANDARD], KEYCODE_ENTER, SEQCODE_NOT, KEYCODE_LALT); - break;*/ +/* case IPT_UI_SELECT: + input_seq_set_3(&typedesc->seq[SEQ_TYPE_STANDARD], KEYCODE_ENTER, SEQCODE_NOT, KEYCODE_LALT); + break;*/ // page down for fastforward (must be OSD_3 as per src/emu/ui.c) case IPT_UI_FAST_FORWARD: @@ -1622,7 +1622,7 @@ void osd_customize_input_type_list(input_type_desc *typelist) typedesc->name = "Fast Forward"; input_seq_set_1(&typedesc->seq[SEQ_TYPE_STANDARD], KEYCODE_PGDN); break; - + // OSD hotkeys use LCTRL and start at F3, they start at // F3 because F1-F2 are hardcoded into many drivers to // various dipswitches, and pressing them together with @@ -1638,7 +1638,7 @@ void osd_customize_input_type_list(input_type_desc *typelist) case IPT_UI_SOFT_RESET: input_seq_set_5(&typedesc->seq[SEQ_TYPE_STANDARD], KEYCODE_F3, SEQCODE_NOT, KEYCODE_LCONTROL, SEQCODE_NOT, KEYCODE_LSHIFT); break; - + // LCTRL-F4 to toggle keep aspect case IPT_OSD_4: typedesc->token = "TOGGLE_KEEP_ASPECT"; @@ -1649,7 +1649,7 @@ void osd_customize_input_type_list(input_type_desc *typelist) case IPT_UI_SHOW_GFX: input_seq_set_3(&typedesc->seq[SEQ_TYPE_STANDARD], KEYCODE_F4, SEQCODE_NOT, KEYCODE_LCONTROL); break; - + // LCTRL-F5 to toggle OpenGL filtering case IPT_OSD_5: typedesc->token = "TOGGLE_FILTER"; @@ -1660,7 +1660,7 @@ void osd_customize_input_type_list(input_type_desc *typelist) case IPT_UI_TOGGLE_DEBUG: input_seq_set_3(&typedesc->seq[SEQ_TYPE_STANDARD], KEYCODE_F5, SEQCODE_NOT, KEYCODE_LCONTROL); break; - + // LCTRL-F6 to decrease OpenGL prescaling case IPT_OSD_6: typedesc->token = "DECREASE_PRESCALE"; @@ -1671,7 +1671,7 @@ void osd_customize_input_type_list(input_type_desc *typelist) case IPT_UI_TOGGLE_CHEAT: input_seq_set_3(&typedesc->seq[SEQ_TYPE_STANDARD], KEYCODE_F6, SEQCODE_NOT, KEYCODE_LCONTROL); break; - + // LCTRL-F7 to increase OpenGL prescaling case IPT_OSD_7: typedesc->token = "INCREASE_PRESCALE"; @@ -1682,7 +1682,7 @@ void osd_customize_input_type_list(input_type_desc *typelist) case IPT_UI_LOAD_STATE: input_seq_set_5(&typedesc->seq[SEQ_TYPE_STANDARD], KEYCODE_F7, SEQCODE_NOT, KEYCODE_LCONTROL, SEQCODE_NOT, KEYCODE_LSHIFT); break; - + // LCTRL-F10 to toggle the renderer (software vs opengl) case IPT_OSD_10: typedesc->token = "TOGGLE_RENDERER"; @@ -1693,7 +1693,7 @@ void osd_customize_input_type_list(input_type_desc *typelist) case IPT_UI_THROTTLE: input_seq_set_3(&typedesc->seq[SEQ_TYPE_STANDARD], KEYCODE_F10, SEQCODE_NOT, KEYCODE_LCONTROL); break; - + // disable the config menu if the ALT key is down // (allows ALT-TAB to switch between apps) case IPT_UI_CONFIGURE: @@ -1711,7 +1711,7 @@ void osd_customize_input_type_list(input_type_desc *typelist) static void device_list_reset_devices(device_info *devlist_head) { device_info *curdev; - + for (curdev = devlist_head; curdev != NULL; curdev = curdev->next) generic_device_reset(curdev); } @@ -1724,7 +1724,7 @@ static void device_list_reset_devices(device_info *devlist_head) static void device_list_free_devices(device_info **devlist_head) { device_info *curdev, *next; - + for (curdev = *devlist_head; curdev != NULL; ) { next = curdev->next; @@ -1747,17 +1747,17 @@ static device_info *generic_device_alloc(device_info **devlist_head_ptr, const c // allocate memory for the device object devinfo = global_alloc_clear(device_info); devinfo->head = devlist_head_ptr; - + // allocate a UTF8 copy of the name devinfo->name = (char *) global_alloc_array(char, strlen(name)+1); if (devinfo->name == NULL) goto error; strcpy(devinfo->name, (char *)name); - + // append us to the list for (curdev_ptr = devinfo->head; *curdev_ptr != NULL; curdev_ptr = &(*curdev_ptr)->next) ; *curdev_ptr = devinfo; - + return devinfo; error: @@ -1778,7 +1778,7 @@ static void generic_device_free(device_info *devinfo) for (curdev_ptr = devinfo->head; *curdev_ptr != devinfo && *curdev_ptr != NULL; curdev_ptr = &(*curdev_ptr)->next) ; if (*curdev_ptr == devinfo) *curdev_ptr = devinfo->next; - + // free the copy of the name if present if (devinfo->name != NULL) { @@ -1835,11 +1835,11 @@ static void generic_device_reset(device_info *devinfo) // keyboard case if (devinfo->head == &keyboard_list) memset(&devinfo->keyboard, 0, sizeof(devinfo->keyboard)); - + // mouse/lightgun case else if (devinfo->head == &mouse_list || devinfo->head == &lightgun_list) memset(&devinfo->mouse, 0, sizeof(devinfo->mouse)); - + // joystick case else if (devinfo->head == &joystick_list) { @@ -1855,7 +1855,7 @@ static void generic_device_reset(device_info *devinfo) static INT32 generic_button_get_state(void *device_internal, void *item_internal) { INT32 *itemdata = (INT32 *) item_internal; - + // return the current state return *itemdata >> 7; } @@ -1868,7 +1868,7 @@ static INT32 generic_button_get_state(void *device_internal, void *item_internal static INT32 generic_axis_get_state(void *device_internal, void *item_internal) { INT32 *axisdata = (INT32 *) item_internal; - + // return the current state return *axisdata; } |