Mercurial > sdl-ios-xcode
annotate src/audio/windx5/directx.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 | bb6839704ed6 |
children | 782fd950bd46 eada7e321df6 |
rev | line source |
---|---|
1274
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
1 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
2 #ifndef _directx_h |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
3 #define _directx_h |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
4 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
5 /* Include all of the DirectX 5.0 headers and adds any necessary tweaks */ |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
6 |
1433
bb6839704ed6
SDL_windows.h is no longer necessary
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
7 #define WIN32_LEAN_AND_MEAN |
bb6839704ed6
SDL_windows.h is no longer necessary
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
8 #include <windows.h> |
1274
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
9 #include <mmsystem.h> |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
10 #ifndef WIN32 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
11 #define WIN32 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
12 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
13 #undef WINNT |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
14 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
15 /* Far pointers don't exist in 32-bit code */ |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
16 #ifndef FAR |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
17 #define FAR |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
18 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
19 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
20 /* Error codes not yet included in Win32 API header files */ |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
21 #ifndef MAKE_HRESULT |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
22 #define MAKE_HRESULT(sev,fac,code) \ |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
23 ((HRESULT)(((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code)))) |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
24 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
25 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
26 #ifndef S_OK |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
27 #define S_OK (HRESULT)0x00000000L |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
28 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
29 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
30 #ifndef SUCCEEDED |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
31 #define SUCCEEDED(x) ((HRESULT)(x) >= 0) |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
32 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
33 #ifndef FAILED |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
34 #define FAILED(x) ((HRESULT)(x)<0) |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
35 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
36 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
37 #ifndef E_FAIL |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
38 #define E_FAIL (HRESULT)0x80000008L |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
39 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
40 #ifndef E_NOINTERFACE |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
41 #define E_NOINTERFACE (HRESULT)0x80004002L |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
42 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
43 #ifndef E_OUTOFMEMORY |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
44 #define E_OUTOFMEMORY (HRESULT)0x8007000EL |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
45 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
46 #ifndef E_INVALIDARG |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
47 #define E_INVALIDARG (HRESULT)0x80070057L |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
48 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
49 #ifndef E_NOTIMPL |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
50 #define E_NOTIMPL (HRESULT)0x80004001L |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
51 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
52 #ifndef REGDB_E_CLASSNOTREG |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
53 #define REGDB_E_CLASSNOTREG (HRESULT)0x80040154L |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
54 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
55 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
56 /* Severity codes */ |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
57 #ifndef SEVERITY_ERROR |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
58 #define SEVERITY_ERROR 1 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
59 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
60 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
61 /* Error facility codes */ |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
62 #ifndef FACILITY_WIN32 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
63 #define FACILITY_WIN32 7 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
64 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
65 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
66 #ifndef FIELD_OFFSET |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
67 #define FIELD_OFFSET(type, field) ((LONG)&(((type *)0)->field)) |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
68 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
69 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
70 /* DirectX headers (if it isn't included, I haven't tested it yet) |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
71 */ |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
72 /* We need these defines to mark what version of DirectX API we use */ |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
73 #define DIRECTDRAW_VERSION 0x0700 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
74 #define DIRECTSOUND_VERSION 0x0500 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
75 #define DIRECTINPUT_VERSION 0x0500 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
76 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
77 #ifdef __GNUC__ |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
78 #define NONAMELESSUNION |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
79 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
80 #include <ddraw.h> |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
81 #include <dsound.h> |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
82 #include <dinput.h> |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
83 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
84 #endif /* _directx_h */ |