Mercurial > sdl-ios-xcode
view src/video/maccommon/SDL_mackeys.h @ 1551:02e19471a694
Fixed bug #4
[Note: I'm applying this patch since it's a cleaner version of what's already implemented, and supports this controller on older kernels. I'll ask to make sure this doesn't break on the new kernels where it's no longer necessary]
Date: Mon, 21 Mar 2005 09:41:11 -0500
From: Chris Nelson
Subject: SDL Patch
Hey, Ryan.
I submitted the following patch about a year ago. It's just a simple
patch for the linux port, to make multiple joysticks each appear to SDL
as their own device, if they are on the same USB port (specifically,
these guys
<http://www.consoleplus.co.uk/product_info.php?pName=super-joybox-5-quad-joypad-converter>,
which allow 4 Playstation2 controllers to be accessed via a single USB
port). Without this patch, SDL pretty much drops the ball, and reports
that there are 4 joysticks available when less than that number are
plugged in.
My work built upon the work of another person with the same device. When
I submitted the patch to the list, he tested it, but it didn't work for
him, so the patch was never accepted. Maybe about 3 times in the past
year, I've tried to email the guy, to see if he couldn't run my new
version, complete with debug code to diagnose the problem he was having.
He never got back to me.
So, I'm attaching the patch. I wish I knew why it didn't work for him,
but I've been using it for the last year with no problems. Let me know
if you need any more information, or have any ideas as to how I could
test it. I'd like to see it in the tree, but I want to make sure it works.
-Chris
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sun, 19 Mar 2006 06:31:34 +0000 |
parents | c9b51268668f |
children | f12379c41042 |
line wrap: on
line source
/* SDL - Simple DirectMedia Layer Copyright (C) 1997-2006 Sam Lantinga This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Sam Lantinga slouken@libsdl.org */ /* These are the Macintosh key scancode constants -- from Inside Macintosh */ #define MK_ESCAPE 0x35 #define MK_F1 0x7A #define MK_F2 0x78 #define MK_F3 0x63 #define MK_F4 0x76 #define MK_F5 0x60 #define MK_F6 0x61 #define MK_F7 0x62 #define MK_F8 0x64 #define MK_F9 0x65 #define MK_F10 0x6D #define MK_F11 0x67 #define MK_F12 0x6F #define MK_PRINT 0x69 #define MK_SCROLLOCK 0x6B #define MK_PAUSE 0x71 #define MK_POWER 0x7F #define MK_BACKQUOTE 0x32 #define MK_1 0x12 #define MK_2 0x13 #define MK_3 0x14 #define MK_4 0x15 #define MK_5 0x17 #define MK_6 0x16 #define MK_7 0x1A #define MK_8 0x1C #define MK_9 0x19 #define MK_0 0x1D #define MK_MINUS 0x1B #define MK_EQUALS 0x18 #define MK_BACKSPACE 0x33 #define MK_INSERT 0x72 #define MK_HOME 0x73 #define MK_PAGEUP 0x74 #define MK_NUMLOCK 0x47 #define MK_KP_EQUALS 0x51 #define MK_KP_DIVIDE 0x4B #define MK_KP_MULTIPLY 0x43 #define MK_TAB 0x30 #define MK_q 0x0C #define MK_w 0x0D #define MK_e 0x0E #define MK_r 0x0F #define MK_t 0x11 #define MK_y 0x10 #define MK_u 0x20 #define MK_i 0x22 #define MK_o 0x1F #define MK_p 0x23 #define MK_LEFTBRACKET 0x21 #define MK_RIGHTBRACKET 0x1E #define MK_BACKSLASH 0x2A #define MK_DELETE 0x75 #define MK_END 0x77 #define MK_PAGEDOWN 0x79 #define MK_KP7 0x59 #define MK_KP8 0x5B #define MK_KP9 0x5C #define MK_KP_MINUS 0x4E #define MK_CAPSLOCK 0x39 #define MK_a 0x00 #define MK_s 0x01 #define MK_d 0x02 #define MK_f 0x03 #define MK_g 0x05 #define MK_h 0x04 #define MK_j 0x26 #define MK_k 0x28 #define MK_l 0x25 #define MK_SEMICOLON 0x29 #define MK_QUOTE 0x27 #define MK_RETURN 0x24 #define MK_KP4 0x56 #define MK_KP5 0x57 #define MK_KP6 0x58 #define MK_KP_PLUS 0x45 #define MK_LSHIFT 0x38 #define MK_z 0x06 #define MK_x 0x07 #define MK_c 0x08 #define MK_v 0x09 #define MK_b 0x0B #define MK_n 0x2D #define MK_m 0x2E #define MK_COMMA 0x2B #define MK_PERIOD 0x2F #define MK_SLASH 0x2C #if 0 /* These are the same as the left versions - use left by default */ #define MK_RSHIFT 0x38 #endif #define MK_UP 0x7E #define MK_KP1 0x53 #define MK_KP2 0x54 #define MK_KP3 0x55 #define MK_KP_ENTER 0x4C #define MK_LCTRL 0x3B #define MK_LALT 0x3A #define MK_LMETA 0x37 #define MK_SPACE 0x31 #if 0 /* These are the same as the left versions - use left by default */ #define MK_RMETA 0x37 #define MK_RALT 0x3A #define MK_RCTRL 0x3B #endif #define MK_LEFT 0x7B #define MK_DOWN 0x7D #define MK_RIGHT 0x7C #define MK_KP0 0x52 #define MK_KP_PERIOD 0x41 /* Wierd, these keys are on my iBook under MacOS X */ #define MK_IBOOK_ENTER 0x34 #define MK_IBOOK_LEFT 0x3B #define MK_IBOOK_RIGHT 0x3C #define MK_IBOOK_DOWN 0x3D #define MK_IBOOK_UP 0x3E