SDL
2.0
controller_type.h
Go to the documentation of this file.
1
/*
2
Copyright (C) Valve Corporation
3
4
This software is provided 'as-is', without any express or implied
5
warranty. In no event will the authors be held liable for any damages
6
arising from the use of this software.
7
8
Permission is granted to anyone to use this software for any purpose,
9
including commercial applications, and to alter it and redistribute it
10
freely, subject to the following restrictions:
11
12
1. The origin of this software must not be misrepresented; you must not
13
claim that you wrote the original software. If you use this software
14
in a product, an acknowledgment in the product documentation would be
15
appreciated but is not required.
16
2. Altered source versions must be plainly marked as such, and must not be
17
misrepresented as being the original software.
18
3. This notice may not be removed or altered from any source distribution.
19
*/
20
21
#ifndef CONTROLLER_TYPE_H
22
#define CONTROLLER_TYPE_H
23
#ifdef _WIN32
24
#pragma once
25
#endif
26
27
#ifndef __cplusplus
28
#define inline SDL_INLINE
29
#endif
30
31
//-----------------------------------------------------------------------------
32
// Purpose: Steam Controller models
33
// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN A DATABASE
34
//-----------------------------------------------------------------------------
35
typedef
enum
36
{
37
k_eControllerType_None
= -1,
38
k_eControllerType_Unknown
= 0,
39
40
// Steam Controllers
41
k_eControllerType_UnknownSteamController
= 1,
42
k_eControllerType_SteamController
= 2,
43
k_eControllerType_SteamControllerV2
= 3,
44
45
// Other Controllers
46
k_eControllerType_UnknownNonSteamController
= 30,
47
k_eControllerType_XBox360Controller
= 31,
48
k_eControllerType_XBoxOneController
= 32,
49
k_eControllerType_PS3Controller
= 33,
50
k_eControllerType_PS4Controller
= 34,
51
k_eControllerType_WiiController
= 35,
52
k_eControllerType_AppleController
= 36,
53
k_eControllerType_AndroidController
= 37,
54
k_eControllerType_SwitchProController
= 38,
55
k_eControllerType_SwitchJoyConLeft
= 39,
56
k_eControllerType_SwitchJoyConRight
= 40,
57
k_eControllerType_SwitchJoyConPair
= 41,
58
k_eControllerType_SwitchInputOnlyController
= 42,
59
k_eControllerType_MobileTouch
= 43,
60
k_eControllerType_LastController
,
// Don't add game controllers below this enumeration - this enumeration can change value
61
62
// Keyboards and Mice
63
k_eControllertype_GenericKeyboard
= 400,
64
k_eControllertype_GenericMouse
= 800,
65
}
EControllerType
;
66
67
static
inline
SDL_bool
BIsSteamController
(
EControllerType
eType )
68
{
69
return
( eType ==
k_eControllerType_SteamController
|| eType ==
k_eControllerType_SteamControllerV2
);
70
}
71
72
#define MAKE_CONTROLLER_ID( nVID, nPID ) (unsigned int)( nVID << 16 | nPID )
73
typedef
struct
74
{
75
unsigned
int
m_unDeviceID
;
76
EControllerType
m_eControllerType
;
77
}
ControllerDescription_t
;
78
79
static
const
ControllerDescription_t
arrControllers
[] = {
80
{
MAKE_CONTROLLER_ID
( 0x0079, 0x18d4 ),
k_eControllerType_XBox360Controller
},
// GPD Win 2 X-Box Controller
81
{
MAKE_CONTROLLER_ID
( 0x044f, 0xb326 ),
k_eControllerType_XBox360Controller
},
// Thrustmaster Gamepad GP XID
82
{
MAKE_CONTROLLER_ID
( 0x045e, 0x028e ),
k_eControllerType_XBox360Controller
},
// Microsoft X-Box 360 pad
83
{
MAKE_CONTROLLER_ID
( 0x045e, 0x028f ),
k_eControllerType_XBox360Controller
},
// Microsoft X-Box 360 pad v2
84
{
MAKE_CONTROLLER_ID
( 0x045e, 0x0291 ),
k_eControllerType_XBox360Controller
},
// Xbox 360 Wireless Receiver (XBOX)
85
{
MAKE_CONTROLLER_ID
( 0x045e, 0x02a0 ),
k_eControllerType_XBox360Controller
},
// Microsoft X-Box 360 Big Button IR
86
{
MAKE_CONTROLLER_ID
( 0x045e, 0x02a1 ),
k_eControllerType_XBox360Controller
},
// Microsoft X-Box 360 pad
87
{
MAKE_CONTROLLER_ID
( 0x045e, 0x02d1 ),
k_eControllerType_XBoxOneController
},
// Microsoft X-Box One pad
88
{
MAKE_CONTROLLER_ID
( 0x045e, 0x02dd ),
k_eControllerType_XBoxOneController
},
// Microsoft X-Box One pad (Firmware 2015)
89
{
MAKE_CONTROLLER_ID
( 0x045e, 0x02e0 ),
k_eControllerType_XBoxOneController
},
// Microsoft X-Box One S pad (Bluetooth)
90
{
MAKE_CONTROLLER_ID
( 0x045e, 0x02e3 ),
k_eControllerType_XBoxOneController
},
// Microsoft X-Box One Elite pad
91
{
MAKE_CONTROLLER_ID
( 0x045e, 0x02ea ),
k_eControllerType_XBoxOneController
},
// Microsoft X-Box One S pad
92
{
MAKE_CONTROLLER_ID
( 0x045e, 0x02fd ),
k_eControllerType_XBoxOneController
},
// Microsoft X-Box One S pad (Bluetooth)
93
{
MAKE_CONTROLLER_ID
( 0x045e, 0x02ff ),
k_eControllerType_XBoxOneController
},
// Microsoft X-Box One Elite pad
94
{
MAKE_CONTROLLER_ID
( 0x045e, 0x0719 ),
k_eControllerType_XBox360Controller
},
// Xbox 360 Wireless Receiver
95
{
MAKE_CONTROLLER_ID
( 0x046d, 0xc21d ),
k_eControllerType_XBox360Controller
},
// Logitech Gamepad F310
96
{
MAKE_CONTROLLER_ID
( 0x046d, 0xc21e ),
k_eControllerType_XBox360Controller
},
// Logitech Gamepad F510
97
{
MAKE_CONTROLLER_ID
( 0x046d, 0xc21f ),
k_eControllerType_XBox360Controller
},
// Logitech Gamepad F710
98
{
MAKE_CONTROLLER_ID
( 0x046d, 0xc242 ),
k_eControllerType_XBox360Controller
},
// Logitech Chillstream Controller
99
100
{
MAKE_CONTROLLER_ID
( 0x054c, 0x0268 ),
k_eControllerType_PS3Controller
},
// Sony PS3 Controller
101
{
MAKE_CONTROLLER_ID
( 0x0925, 0x0005 ),
k_eControllerType_PS3Controller
},
// Sony PS3 Controller
102
{
MAKE_CONTROLLER_ID
( 0x8888, 0x0308 ),
k_eControllerType_PS3Controller
},
// Sony PS3 Controller
103
{
MAKE_CONTROLLER_ID
( 0x1a34, 0x0836 ),
k_eControllerType_PS3Controller
},
// Afterglow ps3
104
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x006e ),
k_eControllerType_PS3Controller
},
// HORI horipad4 ps3
105
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x0066 ),
k_eControllerType_PS3Controller
},
// HORI horipad4 ps4
106
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x005f ),
k_eControllerType_PS3Controller
},
// HORI Fighting commander ps3
107
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x005e ),
k_eControllerType_PS3Controller
},
// HORI Fighting commander ps4
108
//{ MAKE_CONTROLLER_ID( 0x0738, 0x3250 ), k_eControllerType_PS3Controller }, // madcats fightpad pro ps3 already in ps4 list.. does this work??
109
{
MAKE_CONTROLLER_ID
( 0x0738, 0x8250 ),
k_eControllerType_PS3Controller
},
// madcats fightpad pro ps4
110
{
MAKE_CONTROLLER_ID
( 0x0079, 0x181a ),
k_eControllerType_PS3Controller
},
// Venom Arcade Stick
111
{
MAKE_CONTROLLER_ID
( 0x0079, 0x0006 ),
k_eControllerType_PS3Controller
},
// PC Twin Shock Controller - looks like a DS3 but the face buttons are 1-4 instead of symbols
112
{
MAKE_CONTROLLER_ID
( 0x0079, 0x1844 ),
k_eControllerType_PS3Controller
},
// From SDL
113
{
MAKE_CONTROLLER_ID
( 0x8888, 0x0308 ),
k_eControllerType_PS3Controller
},
// From SDL
114
{
MAKE_CONTROLLER_ID
( 0x2563, 0x0575 ),
k_eControllerType_PS3Controller
},
// From SDL
115
{
MAKE_CONTROLLER_ID
( 0x0810, 0x0001 ),
k_eControllerType_PS3Controller
},
// actually ps2 - maybe break out later
116
{
MAKE_CONTROLLER_ID
( 0x0810, 0x0003 ),
k_eControllerType_PS3Controller
},
// actually ps2 - maybe break out later
117
{
MAKE_CONTROLLER_ID
( 0x2563, 0x0523 ),
k_eControllerType_PS3Controller
},
// Digiflip GP006
118
{
MAKE_CONTROLLER_ID
( 0x11ff, 0x3331 ),
k_eControllerType_PS3Controller
},
// SRXJ-PH2400
119
{
MAKE_CONTROLLER_ID
( 0x20bc, 0x5500 ),
k_eControllerType_PS3Controller
},
// ShanWan PS3
120
{
MAKE_CONTROLLER_ID
( 0x05b8, 0x1004 ),
k_eControllerType_PS3Controller
},
// From SDL
121
{
MAKE_CONTROLLER_ID
( 0x146b, 0x0603 ),
k_eControllerType_PS3Controller
},
// From SDL
122
{
MAKE_CONTROLLER_ID
( 0x044f, 0xb315 ),
k_eControllerType_PS3Controller
},
// Firestorm Dual Analog 3
123
{
MAKE_CONTROLLER_ID
( 0x0925, 0x8888 ),
k_eControllerType_PS3Controller
},
// Actually ps2 -maybe break out later Lakeview Research WiseGroup Ltd, MP-8866 Dual Joypad
124
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x004d ),
k_eControllerType_PS3Controller
},
// Horipad 3
125
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x0009 ),
k_eControllerType_PS3Controller
},
// HORI BDA GP1
126
{
MAKE_CONTROLLER_ID
( 0x0e8f, 0x0008 ),
k_eControllerType_PS3Controller
},
// Green Asia
127
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x006a ),
k_eControllerType_PS3Controller
},
// Real Arcade Pro 4
128
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x011e ),
k_eControllerType_PS3Controller
},
// Rock Candy PS4
129
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x0214 ),
k_eControllerType_PS3Controller
},
// afterglow ps3
130
{
MAKE_CONTROLLER_ID
( 0x0925, 0x8866 ),
k_eControllerType_PS3Controller
},
// PS2 maybe break out later
131
{
MAKE_CONTROLLER_ID
( 0x0e8f, 0x310d ),
k_eControllerType_PS3Controller
},
// From SDL
132
{
MAKE_CONTROLLER_ID
( 0x2c22, 0x2003 ),
k_eControllerType_PS3Controller
},
// From SDL
133
{
MAKE_CONTROLLER_ID
( 0x056e, 0x2013 ),
k_eControllerType_PS3Controller
},
// JC-U4113SBK
134
{
MAKE_CONTROLLER_ID
( 0x0738, 0x8838 ),
k_eControllerType_PS3Controller
},
// Madcatz Fightstick Pro
135
{
MAKE_CONTROLLER_ID
( 0x1a34, 0x0836 ),
k_eControllerType_PS3Controller
},
// Afterglow PS3
136
{
MAKE_CONTROLLER_ID
( 0x0f30, 0x1100 ),
k_eControllerType_PS3Controller
},
// Quanba Q1 fight stick
137
{
MAKE_CONTROLLER_ID
( 0x1345, 0x6005 ),
k_eControllerType_PS3Controller
},
// ps2 maybe break out later
138
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x0087 ),
k_eControllerType_PS3Controller
},
// HORI fighting mini stick
139
{
MAKE_CONTROLLER_ID
( 0x146b, 0x5500 ),
k_eControllerType_PS3Controller
},
// From SDL
140
{
MAKE_CONTROLLER_ID
( 0x20d6, 0xca6d ),
k_eControllerType_PS3Controller
},
// From SDL
141
{
MAKE_CONTROLLER_ID
( 0x25f0, 0xc121 ),
k_eControllerType_PS3Controller
},
//
142
{
MAKE_CONTROLLER_ID
( 0x8380, 0x0003 ),
k_eControllerType_PS3Controller
},
// BTP 2163
143
{
MAKE_CONTROLLER_ID
( 0x1345, 0x1000 ),
k_eControllerType_PS3Controller
},
// PS2 ACME GA-D5
144
{
MAKE_CONTROLLER_ID
( 0x0e8f, 0x3075 ),
k_eControllerType_PS3Controller
},
// SpeedLink Strike FX
145
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x0128 ),
k_eControllerType_PS3Controller
},
// Rock Candy PS3
146
{
MAKE_CONTROLLER_ID
( 0x2c22, 0x2000 ),
k_eControllerType_PS3Controller
},
// Quanba Drone
147
{
MAKE_CONTROLLER_ID
( 0x06a3, 0xf622 ),
k_eControllerType_PS3Controller
},
// Cyborg V3
148
{
MAKE_CONTROLLER_ID
( 0x044f, 0xd007 ),
k_eControllerType_PS3Controller
},
// Thrustmaster wireless 3-1
149
{
MAKE_CONTROLLER_ID
( 0x25f0, 0x83c3 ),
k_eControllerType_PS3Controller
},
// gioteck vx2
150
{
MAKE_CONTROLLER_ID
( 0x05b8, 0x1006 ),
k_eControllerType_PS3Controller
},
// JC-U3412SBK
151
{
MAKE_CONTROLLER_ID
( 0x20d6, 0x576d ),
k_eControllerType_PS3Controller
},
// Power A PS3
152
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x6302 ),
k_eControllerType_PS3Controller
},
// From SDL
153
{
MAKE_CONTROLLER_ID
( 0x056e, 0x200f ),
k_eControllerType_PS3Controller
},
// From SDL
154
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x1314 ),
k_eControllerType_PS3Controller
},
// PDP Afterglow Wireless PS3 controller
155
156
{
MAKE_CONTROLLER_ID
( 0x054c, 0x05c4 ),
k_eControllerType_PS4Controller
},
// Sony PS4 Controller
157
{
MAKE_CONTROLLER_ID
( 0x054c, 0x09cc ),
k_eControllerType_PS4Controller
},
// Sony PS4 Slim Controller
158
{
MAKE_CONTROLLER_ID
( 0x054c, 0x0ba0 ),
k_eControllerType_PS4Controller
},
// Sony PS4 Controller (Wireless dongle)
159
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x008a ),
k_eControllerType_PS4Controller
},
// HORI Real Arcade Pro 4
160
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x0055 ),
k_eControllerType_PS4Controller
},
// HORIPAD 4 FPS
161
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x0066 ),
k_eControllerType_PS4Controller
},
// HORIPAD 4 FPS Plus
162
{
MAKE_CONTROLLER_ID
( 0x0738, 0x8384 ),
k_eControllerType_PS4Controller
},
// Mad Catz FightStick TE S+ PS4
163
{
MAKE_CONTROLLER_ID
( 0x0738, 0x8250 ),
k_eControllerType_PS4Controller
},
// Mad Catz FightPad Pro PS4
164
{
MAKE_CONTROLLER_ID
( 0x0C12, 0x0E10 ),
k_eControllerType_PS4Controller
},
// Armor Armor 3 Pad PS4
165
{
MAKE_CONTROLLER_ID
( 0x0C12, 0x1CF6 ),
k_eControllerType_PS4Controller
},
// EMIO PS4 Elite Controller
166
{
MAKE_CONTROLLER_ID
( 0x1532, 0x1000 ),
k_eControllerType_PS4Controller
},
// Razer Raiju PS4 Controller
167
{
MAKE_CONTROLLER_ID
( 0x1532, 0X0401 ),
k_eControllerType_PS4Controller
},
// Razer Panthera PS4 Controller
168
{
MAKE_CONTROLLER_ID
( 0x054c, 0x05c5 ),
k_eControllerType_PS4Controller
},
// STRIKEPAD PS4 Grip Add-on
169
{
MAKE_CONTROLLER_ID
( 0x146b, 0x0d01 ),
k_eControllerType_PS4Controller
},
// Nacon Revolution Pro Controller - has gyro
170
{
MAKE_CONTROLLER_ID
( 0x146b, 0x0d02 ),
k_eControllerType_PS4Controller
},
// Nacon Revolution Pro Controller v2 - has gyro
171
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x00a0 ),
k_eControllerType_PS4Controller
},
// HORI TAC4 mousething
172
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x009c ),
k_eControllerType_PS4Controller
},
// HORI TAC PRO mousething
173
{
MAKE_CONTROLLER_ID
( 0x0c12, 0x0ef6 ),
k_eControllerType_PS4Controller
},
// Hitbox Arcade Stick
174
{
MAKE_CONTROLLER_ID
( 0x0079, 0x181b ),
k_eControllerType_PS4Controller
},
// Venom Arcade Stick - XXX:this may not work and may need to be called a ps3 controller
175
{
MAKE_CONTROLLER_ID
( 0x0738, 0x3250 ),
k_eControllerType_PS4Controller
},
// Mad Catz FightPad PRO - controller shaped with 6 face buttons
176
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x00ee ),
k_eControllerType_PS4Controller
},
// Hori mini wired https://www.playstation.com/en-us/explore/accessories/gaming-controllers/mini-wired-gamepad/
177
{
MAKE_CONTROLLER_ID
( 0x0738, 0x8481 ),
k_eControllerType_PS4Controller
},
// Mad Catz FightStick TE 2+ PS4
178
{
MAKE_CONTROLLER_ID
( 0x0738, 0x8480 ),
k_eControllerType_PS4Controller
},
// Mad Catz FightStick TE 2 PS4
179
{
MAKE_CONTROLLER_ID
( 0x7545, 0x0104 ),
k_eControllerType_PS4Controller
},
// Armor 3 or Level Up Cobra - At least one variant has gyro
180
{
MAKE_CONTROLLER_ID
( 0x0c12, 0x0e15 ),
k_eControllerType_PS4Controller
},
// Game:Pad 4
181
{
MAKE_CONTROLLER_ID
( 0x11c0, 0x4001 ),
k_eControllerType_PS4Controller
},
// "PS4 Fun Controller" added from user log
182
183
{
MAKE_CONTROLLER_ID
( 0x1532, 0x1007 ),
k_eControllerType_PS4Controller
},
// Razer Raiju 2 Tournament edition USB- untested and added for razer
184
{
MAKE_CONTROLLER_ID
( 0x1532, 0x100A ),
k_eControllerType_PS4Controller
},
// Razer Raiju 2 Tournament edition BT - untested and added for razer
185
{
MAKE_CONTROLLER_ID
( 0x1532, 0x1004 ),
k_eControllerType_PS4Controller
},
// Razer Raiju 2 Ultimate USB - untested and added for razer
186
{
MAKE_CONTROLLER_ID
( 0x1532, 0x1009 ),
k_eControllerType_PS4Controller
},
// Razer Raiju 2 Ultimate BT - untested and added for razer
187
{
MAKE_CONTROLLER_ID
( 0x1532, 0x1008 ),
k_eControllerType_PS4Controller
},
// Razer Panthera Evo Fightstick - untested and added for razer
188
189
{
MAKE_CONTROLLER_ID
( 0x056e, 0x2004 ),
k_eControllerType_XBox360Controller
},
// Elecom JC-U3613M
190
{
MAKE_CONTROLLER_ID
( 0x06a3, 0xf51a ),
k_eControllerType_XBox360Controller
},
// Saitek P3600
191
{
MAKE_CONTROLLER_ID
( 0x0738, 0x4716 ),
k_eControllerType_XBox360Controller
},
// Mad Catz Wired Xbox 360 Controller
192
{
MAKE_CONTROLLER_ID
( 0x0738, 0x4718 ),
k_eControllerType_XBox360Controller
},
// Mad Catz Street Fighter IV FightStick SE
193
{
MAKE_CONTROLLER_ID
( 0x0738, 0x4726 ),
k_eControllerType_XBox360Controller
},
// Mad Catz Xbox 360 Controller
194
{
MAKE_CONTROLLER_ID
( 0x0738, 0x4728 ),
k_eControllerType_XBox360Controller
},
// Mad Catz Street Fighter IV FightPad
195
{
MAKE_CONTROLLER_ID
( 0x0738, 0x4736 ),
k_eControllerType_XBox360Controller
},
// Mad Catz MicroCon Gamepad
196
{
MAKE_CONTROLLER_ID
( 0x0738, 0x4738 ),
k_eControllerType_XBox360Controller
},
// Mad Catz Wired Xbox 360 Controller (SFIV)
197
{
MAKE_CONTROLLER_ID
( 0x0738, 0x4740 ),
k_eControllerType_XBox360Controller
},
// Mad Catz Beat Pad
198
{
MAKE_CONTROLLER_ID
( 0x0738, 0x4a01 ),
k_eControllerType_XBoxOneController
},
// Mad Catz FightStick TE 2
199
{
MAKE_CONTROLLER_ID
( 0x0738, 0xb726 ),
k_eControllerType_XBox360Controller
},
// Mad Catz Xbox controller - MW2
200
{
MAKE_CONTROLLER_ID
( 0x0738, 0xbeef ),
k_eControllerType_XBox360Controller
},
// Mad Catz JOYTECH NEO SE Advanced GamePad
201
{
MAKE_CONTROLLER_ID
( 0x0738, 0xcb02 ),
k_eControllerType_XBox360Controller
},
// Saitek Cyborg Rumble Pad - PC/Xbox 360
202
{
MAKE_CONTROLLER_ID
( 0x0738, 0xcb03 ),
k_eControllerType_XBox360Controller
},
// Saitek P3200 Rumble Pad - PC/Xbox 360
203
{
MAKE_CONTROLLER_ID
( 0x0738, 0xf738 ),
k_eControllerType_XBox360Controller
},
// Super SFIV FightStick TE S
204
{
MAKE_CONTROLLER_ID
( 0x0955, 0xb400 ),
k_eControllerType_XBox360Controller
},
// NVIDIA Shield streaming controller
205
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x0105 ),
k_eControllerType_XBox360Controller
},
// HSM3 Xbox360 dancepad
206
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x0113 ),
k_eControllerType_XBox360Controller
},
// Afterglow AX.1 Gamepad for Xbox 360
207
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x011f ),
k_eControllerType_XBox360Controller
},
// Rock Candy Gamepad Wired Controller
208
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x0131 ),
k_eControllerType_XBox360Controller
},
// PDP EA Sports Controller
209
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x0133 ),
k_eControllerType_XBox360Controller
},
// Xbox 360 Wired Controller
210
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x0139 ),
k_eControllerType_XBoxOneController
},
// Afterglow Prismatic Wired Controller
211
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x013a ),
k_eControllerType_XBoxOneController
},
// PDP Xbox One Controller
212
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x0146 ),
k_eControllerType_XBoxOneController
},
// Rock Candy Wired Controller for Xbox One
213
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x0147 ),
k_eControllerType_XBoxOneController
},
// PDP Marvel Xbox One Controller
214
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x015c ),
k_eControllerType_XBoxOneController
},
// PDP Xbox One Arcade Stick
215
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x0161 ),
k_eControllerType_XBoxOneController
},
// PDP Xbox One Controller
216
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x0162 ),
k_eControllerType_XBoxOneController
},
// PDP Xbox One Controller
217
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x0163 ),
k_eControllerType_XBoxOneController
},
// PDP Xbox One Controller
218
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x0164 ),
k_eControllerType_XBoxOneController
},
// PDP Battlefield One
219
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x0165 ),
k_eControllerType_XBoxOneController
},
// PDP Titanfall 2
220
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x0201 ),
k_eControllerType_XBox360Controller
},
// Pelican PL-3601 'TSZ' Wired Xbox 360 Controller
221
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x0213 ),
k_eControllerType_XBox360Controller
},
// Afterglow Gamepad for Xbox 360
222
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x021f ),
k_eControllerType_XBox360Controller
},
// Rock Candy Gamepad for Xbox 360
223
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x0246 ),
k_eControllerType_XBoxOneController
},
// Rock Candy Gamepad for Xbox One 2015
224
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x02a0 ),
k_eControllerType_XBox360Controller
},
// Counterfeit 360Controller
225
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x0301 ),
k_eControllerType_XBox360Controller
},
// Logic3 Controller
226
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x0346 ),
k_eControllerType_XBoxOneController
},
// Rock Candy Gamepad for Xbox One 2016
227
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x0401 ),
k_eControllerType_XBox360Controller
},
// Logic3 Controller
228
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x0413 ),
k_eControllerType_XBox360Controller
},
// Afterglow AX.1 Gamepad for Xbox 360
229
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x0501 ),
k_eControllerType_XBox360Controller
},
// PDP Xbox 360 Controller
230
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0xf501 ),
k_eControllerType_XBox360Controller
},
// Counterfeit 360 Controller
231
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0xf900 ),
k_eControllerType_XBox360Controller
},
// PDP Afterglow AX.1
232
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x000a ),
k_eControllerType_XBox360Controller
},
// Hori Co. DOA4 FightStick
233
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x000c ),
k_eControllerType_XBox360Controller
},
// Hori PadEX Turbo
234
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x000d ),
k_eControllerType_XBox360Controller
},
// Hori Fighting Stick EX2
235
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x0016 ),
k_eControllerType_XBox360Controller
},
// Hori Real Arcade Pro.EX
236
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x001b ),
k_eControllerType_XBox360Controller
},
// Hori Real Arcade Pro VX
237
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x0063 ),
k_eControllerType_XBoxOneController
},
// Hori Real Arcade Pro Hayabusa (USA) Xbox One
238
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x0067 ),
k_eControllerType_XBoxOneController
},
// HORIPAD ONE
239
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x0078 ),
k_eControllerType_XBoxOneController
},
// Hori Real Arcade Pro V Kai Xbox One
240
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x008c ),
k_eControllerType_XBox360Controller
},
// Hori Real Arcade Pro 4
241
{
MAKE_CONTROLLER_ID
( 0x11c9, 0x55f0 ),
k_eControllerType_XBox360Controller
},
// Nacon GC-100XF
242
{
MAKE_CONTROLLER_ID
( 0x12ab, 0x0004 ),
k_eControllerType_XBox360Controller
},
// Honey Bee Xbox360 dancepad
243
{
MAKE_CONTROLLER_ID
( 0x12ab, 0x0301 ),
k_eControllerType_XBox360Controller
},
// PDP AFTERGLOW AX.1
244
{
MAKE_CONTROLLER_ID
( 0x12ab, 0x0303 ),
k_eControllerType_XBox360Controller
},
// Mortal Kombat Klassic FightStick
245
{
MAKE_CONTROLLER_ID
( 0x1430, 0x02a0 ),
k_eControllerType_XBox360Controller
},
// RedOctane Controller Adapter
246
{
MAKE_CONTROLLER_ID
( 0x1430, 0x4748 ),
k_eControllerType_XBox360Controller
},
// RedOctane Guitar Hero X-plorer
247
{
MAKE_CONTROLLER_ID
( 0x1430, 0xf801 ),
k_eControllerType_XBox360Controller
},
// RedOctane Controller
248
{
MAKE_CONTROLLER_ID
( 0x146b, 0x0601 ),
k_eControllerType_XBox360Controller
},
// BigBen Interactive XBOX 360 Controller
249
{
MAKE_CONTROLLER_ID
( 0x1532, 0x0037 ),
k_eControllerType_XBox360Controller
},
// Razer Sabertooth
250
{
MAKE_CONTROLLER_ID
( 0x1532, 0x0a00 ),
k_eControllerType_XBoxOneController
},
// Razer Atrox Arcade Stick
251
{
MAKE_CONTROLLER_ID
( 0x1532, 0x0a03 ),
k_eControllerType_XBoxOneController
},
// Razer Wildcat
252
{
MAKE_CONTROLLER_ID
( 0x15e4, 0x3f00 ),
k_eControllerType_XBox360Controller
},
// Power A Mini Pro Elite
253
{
MAKE_CONTROLLER_ID
( 0x15e4, 0x3f0a ),
k_eControllerType_XBox360Controller
},
// Xbox Airflo wired controller
254
{
MAKE_CONTROLLER_ID
( 0x15e4, 0x3f10 ),
k_eControllerType_XBox360Controller
},
// Batarang Xbox 360 controller
255
{
MAKE_CONTROLLER_ID
( 0x162e, 0xbeef ),
k_eControllerType_XBox360Controller
},
// Joytech Neo-Se Take2
256
{
MAKE_CONTROLLER_ID
( 0x1689, 0xfd00 ),
k_eControllerType_XBox360Controller
},
// Razer Onza Tournament Edition
257
{
MAKE_CONTROLLER_ID
( 0x1689, 0xfd01 ),
k_eControllerType_XBox360Controller
},
// Razer Onza Classic Edition
258
{
MAKE_CONTROLLER_ID
( 0x1689, 0xfe00 ),
k_eControllerType_XBox360Controller
},
// Razer Sabertooth
259
{
MAKE_CONTROLLER_ID
( 0x1bad, 0x0002 ),
k_eControllerType_XBox360Controller
},
// Harmonix Rock Band Guitar
260
{
MAKE_CONTROLLER_ID
( 0x1bad, 0x0003 ),
k_eControllerType_XBox360Controller
},
// Harmonix Rock Band Drumkit
261
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf016 ),
k_eControllerType_XBox360Controller
},
// Mad Catz Xbox 360 Controller
262
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf018 ),
k_eControllerType_XBox360Controller
},
// Mad Catz Street Fighter IV SE Fighting Stick
263
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf019 ),
k_eControllerType_XBox360Controller
},
// Mad Catz Brawlstick for Xbox 360
264
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf021 ),
k_eControllerType_XBox360Controller
},
// Mad Cats Ghost Recon FS GamePad
265
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf023 ),
k_eControllerType_XBox360Controller
},
// MLG Pro Circuit Controller (Xbox)
266
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf025 ),
k_eControllerType_XBox360Controller
},
// Mad Catz Call Of Duty
267
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf027 ),
k_eControllerType_XBox360Controller
},
// Mad Catz FPS Pro
268
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf028 ),
k_eControllerType_XBox360Controller
},
// Street Fighter IV FightPad
269
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf02e ),
k_eControllerType_XBox360Controller
},
// Mad Catz Fightpad
270
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf036 ),
k_eControllerType_XBox360Controller
},
// Mad Catz MicroCon GamePad Pro
271
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf038 ),
k_eControllerType_XBox360Controller
},
// Street Fighter IV FightStick TE
272
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf039 ),
k_eControllerType_XBox360Controller
},
// Mad Catz MvC2 TE
273
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf03a ),
k_eControllerType_XBox360Controller
},
// Mad Catz SFxT Fightstick Pro
274
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf03d ),
k_eControllerType_XBox360Controller
},
// Street Fighter IV Arcade Stick TE - Chun Li
275
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf03e ),
k_eControllerType_XBox360Controller
},
// Mad Catz MLG FightStick TE
276
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf03f ),
k_eControllerType_XBox360Controller
},
// Mad Catz FightStick SoulCaliber
277
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf042 ),
k_eControllerType_XBox360Controller
},
// Mad Catz FightStick TES+
278
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf080 ),
k_eControllerType_XBox360Controller
},
// Mad Catz FightStick TE2
279
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf501 ),
k_eControllerType_XBox360Controller
},
// HoriPad EX2 Turbo
280
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf502 ),
k_eControllerType_XBox360Controller
},
// Hori Real Arcade Pro.VX SA
281
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf503 ),
k_eControllerType_XBox360Controller
},
// Hori Fighting Stick VX
282
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf504 ),
k_eControllerType_XBox360Controller
},
// Hori Real Arcade Pro. EX
283
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf505 ),
k_eControllerType_XBox360Controller
},
// Hori Fighting Stick EX2B
284
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf506 ),
k_eControllerType_XBox360Controller
},
// Hori Real Arcade Pro.EX Premium VLX
285
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf900 ),
k_eControllerType_XBox360Controller
},
// Harmonix Xbox 360 Controller
286
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf901 ),
k_eControllerType_XBox360Controller
},
// Gamestop Xbox 360 Controller
287
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf902 ),
k_eControllerType_XBox360Controller
},
// Mad Catz Gamepad2
288
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf903 ),
k_eControllerType_XBox360Controller
},
// Tron Xbox 360 controller
289
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf904 ),
k_eControllerType_XBox360Controller
},
// PDP Versus Fighting Pad
290
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xf906 ),
k_eControllerType_XBox360Controller
},
// MortalKombat FightStick
291
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xfa01 ),
k_eControllerType_XBox360Controller
},
// MadCatz GamePad
292
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xfd00 ),
k_eControllerType_XBox360Controller
},
// Razer Onza TE
293
{
MAKE_CONTROLLER_ID
( 0x1bad, 0xfd01 ),
k_eControllerType_XBox360Controller
},
// Razer Onza
294
{
MAKE_CONTROLLER_ID
( 0x24c6, 0x5000 ),
k_eControllerType_XBox360Controller
},
// Razer Atrox Arcade Stick
295
{
MAKE_CONTROLLER_ID
( 0x24c6, 0x5300 ),
k_eControllerType_XBox360Controller
},
// PowerA MINI PROEX Controller
296
{
MAKE_CONTROLLER_ID
( 0x24c6, 0x5303 ),
k_eControllerType_XBox360Controller
},
// Xbox Airflo wired controller
297
{
MAKE_CONTROLLER_ID
( 0x24c6, 0x530a ),
k_eControllerType_XBox360Controller
},
// Xbox 360 Pro EX Controller
298
{
MAKE_CONTROLLER_ID
( 0x24c6, 0x531a ),
k_eControllerType_XBox360Controller
},
// PowerA Pro Ex
299
{
MAKE_CONTROLLER_ID
( 0x24c6, 0x5397 ),
k_eControllerType_XBox360Controller
},
// FUS1ON Tournament Controller
300
{
MAKE_CONTROLLER_ID
( 0x24c6, 0x541a ),
k_eControllerType_XBoxOneController
},
// PowerA Xbox One Mini Wired Controller
301
{
MAKE_CONTROLLER_ID
( 0x24c6, 0x542a ),
k_eControllerType_XBoxOneController
},
// Xbox ONE spectra
302
{
MAKE_CONTROLLER_ID
( 0x24c6, 0x543a ),
k_eControllerType_XBoxOneController
},
// PowerA Xbox One wired controller
303
{
MAKE_CONTROLLER_ID
( 0x24c6, 0x5500 ),
k_eControllerType_XBox360Controller
},
// Hori XBOX 360 EX 2 with Turbo
304
{
MAKE_CONTROLLER_ID
( 0x24c6, 0x5501 ),
k_eControllerType_XBox360Controller
},
// Hori Real Arcade Pro VX-SA
305
{
MAKE_CONTROLLER_ID
( 0x24c6, 0x5502 ),
k_eControllerType_XBox360Controller
},
// Hori Fighting Stick VX Alt
306
{
MAKE_CONTROLLER_ID
( 0x24c6, 0x5503 ),
k_eControllerType_XBox360Controller
},
// Hori Fighting Edge
307
{
MAKE_CONTROLLER_ID
( 0x24c6, 0x5506 ),
k_eControllerType_XBox360Controller
},
// Hori SOULCALIBUR V Stick
308
{
MAKE_CONTROLLER_ID
( 0x24c6, 0x5510 ),
k_eControllerType_XBox360Controller
},
// Hori Fighting Commander ONE
309
{
MAKE_CONTROLLER_ID
( 0x24c6, 0x550d ),
k_eControllerType_XBox360Controller
},
// Hori GEM Xbox controller
310
{
MAKE_CONTROLLER_ID
( 0x24c6, 0x550e ),
k_eControllerType_XBox360Controller
},
// Hori Real Arcade Pro V Kai 360
311
{
MAKE_CONTROLLER_ID
( 0x24c6, 0x551a ),
k_eControllerType_XBoxOneController
},
// PowerA FUSION Pro Controller
312
{
MAKE_CONTROLLER_ID
( 0x24c6, 0x561a ),
k_eControllerType_XBoxOneController
},
// PowerA FUSION Controller
313
{
MAKE_CONTROLLER_ID
( 0x24c6, 0x5b00 ),
k_eControllerType_XBox360Controller
},
// ThrustMaster Ferrari Italia 458 Racing Wheel
314
{
MAKE_CONTROLLER_ID
( 0x24c6, 0x5b02 ),
k_eControllerType_XBox360Controller
},
// Thrustmaster, Inc. GPX Controller
315
{
MAKE_CONTROLLER_ID
( 0x24c6, 0x5b03 ),
k_eControllerType_XBox360Controller
},
// Thrustmaster Ferrari 458 Racing Wheel
316
{
MAKE_CONTROLLER_ID
( 0x24c6, 0x5d04 ),
k_eControllerType_XBox360Controller
},
// Razer Sabertooth
317
{
MAKE_CONTROLLER_ID
( 0x24c6, 0xfafa ),
k_eControllerType_XBox360Controller
},
// Aplay Controller
318
{
MAKE_CONTROLLER_ID
( 0x24c6, 0xfafb ),
k_eControllerType_XBox360Controller
},
// Aplay Controller
319
{
MAKE_CONTROLLER_ID
( 0x24c6, 0xfafc ),
k_eControllerType_XBox360Controller
},
// Afterglow Gamepad 1
320
{
MAKE_CONTROLLER_ID
( 0x24c6, 0xfafe ),
k_eControllerType_XBox360Controller
},
// Rock Candy Gamepad for Xbox 360
321
{
MAKE_CONTROLLER_ID
( 0x24c6, 0xfafd ),
k_eControllerType_XBox360Controller
},
// Afterglow Gamepad 3
322
323
// These have been added via Minidump for unrecognized Xinput controller assert
324
{
MAKE_CONTROLLER_ID
( 0x0000, 0x0000 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
325
{
MAKE_CONTROLLER_ID
( 0x045e, 0x02a2 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller - Microsoft VID
326
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x1414 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
327
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x1314 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
328
{
MAKE_CONTROLLER_ID
( 0x0e6f, 0x0159 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
329
{
MAKE_CONTROLLER_ID
( 0x24c6, 0xfaff ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
330
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x0086 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
331
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x006d ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
332
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x00a4 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
333
{
MAKE_CONTROLLER_ID
( 0x0079, 0x1832 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
334
{
MAKE_CONTROLLER_ID
( 0x0079, 0x187f ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
335
{
MAKE_CONTROLLER_ID
( 0x0079, 0x1883 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
336
{
MAKE_CONTROLLER_ID
( 0x03eb, 0xff01 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
337
{
MAKE_CONTROLLER_ID
( 0x2c22, 0x2303 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
338
{
MAKE_CONTROLLER_ID
( 0x0c12, 0x0ef8 ),
k_eControllerType_XBox360Controller
},
// Homemade fightstick based on brook pcb (with XInput driver??)
339
{
MAKE_CONTROLLER_ID
( 0x046d, 0x1000 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
340
{
MAKE_CONTROLLER_ID
( 0x1345, 0x6006 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
341
342
{
MAKE_CONTROLLER_ID
( 0x056e, 0x2012 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
343
{
MAKE_CONTROLLER_ID
( 0x146b, 0x0602 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
344
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x00ae ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
345
{
MAKE_CONTROLLER_ID
( 0x146b, 0x0603 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
346
{
MAKE_CONTROLLER_ID
( 0x056e, 0x2013 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
347
{
MAKE_CONTROLLER_ID
( 0x046d, 0x0401 ),
k_eControllerType_XBox360Controller
},
// logitech xinput
348
{
MAKE_CONTROLLER_ID
( 0x046d, 0x0301 ),
k_eControllerType_XBox360Controller
},
// logitech xinput
349
{
MAKE_CONTROLLER_ID
( 0x046d, 0xcaa3 ),
k_eControllerType_XBox360Controller
},
// logitech xinput
350
{
MAKE_CONTROLLER_ID
( 0x046d, 0xc261 ),
k_eControllerType_XBox360Controller
},
// logitech xinput
351
{
MAKE_CONTROLLER_ID
( 0x046d, 0x0291 ),
k_eControllerType_XBox360Controller
},
// logitech xinput
352
{
MAKE_CONTROLLER_ID
( 0x0079, 0x18d3 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
353
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x00b1 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
354
{
MAKE_CONTROLLER_ID
( 0x0001, 0x0001 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
355
{
MAKE_CONTROLLER_ID
( 0x1345, 0x6005 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
356
{
MAKE_CONTROLLER_ID
( 0x0079, 0x188e ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
357
{
MAKE_CONTROLLER_ID
( 0x0079, 0x18d4 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
358
{
MAKE_CONTROLLER_ID
( 0x2c22, 0x2003 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
359
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x00b1 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
360
{
MAKE_CONTROLLER_ID
( 0x0079, 0x187c ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
361
{
MAKE_CONTROLLER_ID
( 0x0079, 0x189c ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
362
{
MAKE_CONTROLLER_ID
( 0x0079, 0x1874 ),
k_eControllerType_XBox360Controller
},
// Unknown Controller
363
364
{
MAKE_CONTROLLER_ID
( 0x1038, 0xb360 ),
k_eControllerType_XBox360Controller
},
// SteelSeries Nimbus/Stratus XL
365
366
367
//{ MAKE_CONTROLLER_ID( 0x1949, 0x0402 ), /*android*/ }, // Unknown Controller
368
369
{
MAKE_CONTROLLER_ID
( 0x05ac, 0x0001 ),
k_eControllerType_AppleController
},
// MFI Extended Gamepad (generic entry for iOS/tvOS)
370
{
MAKE_CONTROLLER_ID
( 0x05ac, 0x0002 ),
k_eControllerType_AppleController
},
// MFI Standard Gamepad (generic entry for iOS/tvOS)
371
372
// We currently don't support using a pair of Switch Joy-Con's as a single
373
// controller and we don't want to support using them individually for the
374
// time being, so these should be disabled until one of the above is true
375
// { MAKE_CONTROLLER_ID( 0x057e, 0x2006 ), k_eControllerType_SwitchJoyConLeft }, // Nintendo Switch Joy-Con (Left)
376
// { MAKE_CONTROLLER_ID( 0x057e, 0x2007 ), k_eControllerType_SwitchJoyConRight }, // Nintendo Switch Joy-Con (Right)
377
378
// This same controller ID is spoofed by many 3rd-party Switch controllers.
379
// The ones we currently know of are:
380
// * Any 8bitdo controller with Switch support
381
// * ORTZ Gaming Wireless Pro Controller
382
// * ZhiXu Gamepad Wireless
383
// * Sunwaytek Wireless Motion Controller for Nintendo Switch
384
{
MAKE_CONTROLLER_ID
( 0x057e, 0x2009 ),
k_eControllerType_SwitchProController
},
// Nintendo Switch Pro Controller
385
386
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x00c1 ),
k_eControllerType_SwitchInputOnlyController
},
// HORIPAD for Nintendo Switch
387
{
MAKE_CONTROLLER_ID
( 0x20d6, 0xa711 ),
k_eControllerType_SwitchInputOnlyController
},
// PowerA Wired Controller Plus
388
{
MAKE_CONTROLLER_ID
( 0x0f0d, 0x0092 ),
k_eControllerType_SwitchInputOnlyController
},
// HORI Pokken Tournament DX Pro Pad
389
390
391
// Valve products - don't add to public list
392
{
MAKE_CONTROLLER_ID
( 0x0000, 0x11fb ),
k_eControllerType_MobileTouch
},
// Streaming mobile touch virtual controls
393
{
MAKE_CONTROLLER_ID
( 0x28de, 0x1101 ),
k_eControllerType_SteamController
},
// Valve Legacy Steam Controller (CHELL)
394
{
MAKE_CONTROLLER_ID
( 0x28de, 0x1102 ),
k_eControllerType_SteamController
},
// Valve wired Steam Controller (D0G)
395
{
MAKE_CONTROLLER_ID
( 0x28de, 0x1105 ),
k_eControllerType_SteamControllerV2
},
// Valve Bluetooth Steam Controller (D0G)
396
{
MAKE_CONTROLLER_ID
( 0x28de, 0x1106 ),
k_eControllerType_SteamControllerV2
},
// Valve Bluetooth Steam Controller (D0G)
397
{
MAKE_CONTROLLER_ID
( 0x28de, 0x1142 ),
k_eControllerType_SteamController
},
// Valve wireless Steam Controller
398
{
MAKE_CONTROLLER_ID
( 0x28de, 0x1201 ),
k_eControllerType_SteamController
},
// Valve wired Steam Controller (HEADCRAB)
399
};
400
401
402
#if 0
/* these are currently unused, so #if 0'd out to prevent compiler warnings for now */
403
static
inline
const
ControllerDescription_t
* GetControllerArray(
int
* nLength
/* Out */
)
404
{
405
*nLength =
sizeof
(
arrControllers
) /
sizeof
( arrControllers[0] );
406
return
arrControllers
;
407
}
408
#endif
409
410
static
inline
EControllerType
GuessControllerType
(
int
nVID,
int
nPID )
411
{
412
unsigned
int
unDeviceID =
MAKE_CONTROLLER_ID
( nVID, nPID );
413
int
iIndex;
414
for
( iIndex = 0; iIndex <
sizeof
(
arrControllers
) /
sizeof
( arrControllers[0] ); ++iIndex )
415
{
416
if
( unDeviceID == arrControllers[ iIndex ].m_unDeviceID )
417
{
418
return
arrControllers[ iIndex ].
m_eControllerType
;
419
}
420
}
421
#undef MAKE_CONTROLLER_ID
422
423
return
k_eControllerType_UnknownNonSteamController
;
424
}
425
426
#endif // CONSTANTS_H
427
ControllerDescription_t::m_eControllerType
EControllerType m_eControllerType
Definition:
controller_type.h:76
k_eControllerType_Unknown
Definition:
controller_type.h:38
ControllerDescription_t::m_unDeviceID
unsigned int m_unDeviceID
Definition:
controller_type.h:75
k_eControllerType_None
Definition:
controller_type.h:37
k_eControllerType_XBoxOneController
Definition:
controller_type.h:48
k_eControllerType_AppleController
Definition:
controller_type.h:52
arrControllers
static const ControllerDescription_t arrControllers[]
Definition:
controller_type.h:79
k_eControllerType_SwitchJoyConLeft
Definition:
controller_type.h:55
GuessControllerType
static EControllerType GuessControllerType(int nVID, int nPID)
Definition:
controller_type.h:410
k_eControllerType_SwitchJoyConRight
Definition:
controller_type.h:56
k_eControllerType_LastController
Definition:
controller_type.h:60
k_eControllerType_SteamControllerV2
Definition:
controller_type.h:43
k_eControllerType_SwitchJoyConPair
Definition:
controller_type.h:57
k_eControllerType_WiiController
Definition:
controller_type.h:51
MAKE_CONTROLLER_ID
#define MAKE_CONTROLLER_ID(nVID, nPID)
Definition:
controller_type.h:72
k_eControllerType_UnknownNonSteamController
Definition:
controller_type.h:46
ControllerDescription_t
Definition:
controller_type.h:73
k_eControllertype_GenericMouse
Definition:
controller_type.h:64
k_eControllerType_MobileTouch
Definition:
controller_type.h:59
k_eControllertype_GenericKeyboard
Definition:
controller_type.h:63
k_eControllerType_SwitchInputOnlyController
Definition:
controller_type.h:58
k_eControllerType_PS4Controller
Definition:
controller_type.h:50
BIsSteamController
static SDL_bool BIsSteamController(EControllerType eType)
Definition:
controller_type.h:67
k_eControllerType_SwitchProController
Definition:
controller_type.h:54
SDL_bool
SDL_bool
Definition:
SDL_stdinc.h:161
k_eControllerType_SteamController
Definition:
controller_type.h:42
EControllerType
EControllerType
Definition:
controller_type.h:35
k_eControllerType_AndroidController
Definition:
controller_type.h:53
k_eControllerType_UnknownSteamController
Definition:
controller_type.h:41
k_eControllerType_XBox360Controller
Definition:
controller_type.h:47
k_eControllerType_PS3Controller
Definition:
controller_type.h:49
src
joystick
controller_type.h
Generated by
1.8.13