usb_ids.h 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. /*
  2. Simple DirectMedia Layer
  3. Copyright (C) 1997-2026 Sam Lantinga <slouken@libsdl.org>
  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. Permission is granted to anyone to use this software for any purpose,
  8. including commercial applications, and to alter it and redistribute it
  9. freely, subject to the following restrictions:
  10. 1. The origin of this software must not be misrepresented; you must not
  11. claim that you wrote the original software. If you use this software
  12. in a product, an acknowledgment in the product documentation would be
  13. appreciated but is not required.
  14. 2. Altered source versions must be plainly marked as such, and must not be
  15. misrepresented as being the original software.
  16. 3. This notice may not be removed or altered from any source distribution.
  17. */
  18. #ifndef usb_ids_h_
  19. #define usb_ids_h_
  20. // Definitions of useful USB VID/PID values
  21. #define USB_VENDOR_8BITDO 0x2dc8
  22. #define USB_VENDOR_AMAZON 0x1949
  23. #define USB_VENDOR_ANDGAMER 0x38d2
  24. #define USB_VENDOR_APPLE 0x05ac
  25. #define USB_VENDOR_ASTRO 0x9886
  26. #define USB_VENDOR_ASUS 0x0b05
  27. #define USB_VENDOR_BACKBONE 0x358a
  28. #define USB_VENDOR_CRKD 0x3651
  29. #define USB_VENDOR_CORSAIR 0x1b1c
  30. #define USB_VENDOR_GAMESIR 0x3537
  31. #define USB_VENDOR_DRAGONRISE 0x0079
  32. #define USB_VENDOR_FLYDIGI_V1 0x04b4
  33. #define USB_VENDOR_FLYDIGI_V2 0x37d7
  34. #define USB_VENDOR_GOOGLE 0x18d1
  35. #define USB_VENDOR_HARMONIX 0x1bad
  36. #define USB_VENDOR_HORI 0x0f0d
  37. #define USB_VENDOR_HP 0x03f0
  38. #define USB_VENDOR_HYPERKIN 0x2e24
  39. #define USB_VENDOR_LOGITECH 0x046d
  40. #define USB_VENDOR_MADCATZ 0x0738
  41. #define USB_VENDOR_MAYFLASH 0x33df
  42. #define USB_VENDOR_MICROSOFT 0x045e
  43. #define USB_VENDOR_NACON 0x146b
  44. #define USB_VENDOR_NACON_ALT 0x3285
  45. #define USB_VENDOR_NINTENDO 0x057e
  46. #define USB_VENDOR_NVIDIA 0x0955
  47. #define USB_VENDOR_PDP 0x0e6f
  48. #define USB_VENDOR_POWERA 0x24c6
  49. #define USB_VENDOR_POWERA_ALT 0x20d6
  50. #define USB_VENDOR_QANBA 0x2c22
  51. #define USB_VENDOR_RAZER 0x1532
  52. #define USB_VENDOR_RED_OCTANE 0x1430
  53. #define USB_VENDOR_RED_OCTANE_GAMES 0x3958
  54. #define USB_VENDOR_SAITEK 0x06a3
  55. #define USB_VENDOR_SCEA 0x12ba
  56. #define USB_VENDOR_SHANWAN 0x2563
  57. #define USB_VENDOR_SHANWAN_ALT 0x20bc
  58. #define USB_VENDOR_SONY 0x054c
  59. #define USB_VENDOR_THRUSTMASTER 0x044f
  60. #define USB_VENDOR_TURTLE_BEACH 0x10f5
  61. #define USB_VENDOR_SWITCH 0x2563
  62. #define USB_VENDOR_VALVE 0x28de
  63. #define USB_VENDOR_ZEROPLUS 0x0c12
  64. #define USB_VENDOR_RASPBERRYPI 0x2e8a // Commercial hardware from various companies are registered under this VID
  65. #define USB_VENDOR_ZUIKI 0x33dd
  66. #define USB_PRODUCT_8BITDO_SF30_PRO 0x6000 // B + START
  67. #define USB_PRODUCT_8BITDO_SF30_PRO_BT 0x6100 // B + START
  68. #define USB_PRODUCT_8BITDO_SN30_PRO 0x6001 // B + START
  69. #define USB_PRODUCT_8BITDO_SN30_PRO_BT 0x6101 // B + START
  70. #define USB_PRODUCT_8BITDO_PRO_2 0x6003 // mode switch to D
  71. #define USB_PRODUCT_8BITDO_PRO_2_BT 0x6006 // mode switch to D
  72. #define USB_PRODUCT_8BITDO_PRO_3 0x6009 // mode switch to D
  73. #define USB_PRODUCT_8BITDO_ULTIMATE2_WIRELESS 0x6012 // mode switch to BT
  74. #define USB_PRODUCT_8BITDO_ULTIMATE3 0x202f // mode switch to BT
  75. #define USB_PRODUCT_AMAZON_LUNA_CONTROLLER 0x0419
  76. #define USB_PRODUCT_ASTRO_C40_XBOX360 0x0024
  77. #define USB_PRODUCT_BACKBONE_ONE_IOS 0x0103
  78. #define USB_PRODUCT_BACKBONE_ONE_IOS_PS5 0x0104
  79. #define USB_PRODUCT_BACKBONE_ONE_PS5_V2 0x0304
  80. #define USB_PRODUCT_BDA_XB1_CLASSIC 0x581a
  81. #define USB_PRODUCT_BDA_XB1_FIGHTPAD 0x791a
  82. #define USB_PRODUCT_BDA_XB1_SPECTRA_PRO 0x592a
  83. #define USB_PRODUCT_GOOGLE_STADIA_CONTROLLER 0x9400
  84. #define USB_PRODUCT_EVORETRO_GAMECUBE_ADAPTER1 0x1843
  85. #define USB_PRODUCT_EVORETRO_GAMECUBE_ADAPTER2 0x1844
  86. #define USB_PRODUCT_EVORETRO_GAMECUBE_ADAPTER3 0x1846
  87. #define USB_PRODUCT_FLYDIGI_V1_GAMEPAD 0x2412
  88. #define USB_PRODUCT_FLYDIGI_V2_APEX 0x2501
  89. #define USB_PRODUCT_FLYDIGI_V2_VADER 0x2401
  90. #define USB_PRODUCT_GAMESIR_GAMEPAD_G7_PRO_8K 0x10B8 // Wired/2.4G/Bluetooth 8K mode
  91. #define USB_PRODUCT_HARMONIX_WII_RB1_GUITAR 0x0004
  92. #define USB_PRODUCT_HARMONIX_WII_RB1_DRUMS 0x0005
  93. #define USB_PRODUCT_HARMONIX_WII_RB2_GUITAR 0x3010
  94. #define USB_PRODUCT_HARMONIX_WII_RB2_DRUMS 0x3110
  95. #define USB_PRODUCT_HARMONIX_WII_RB3_MPA_DRUMS_MODE 0x3138
  96. #define USB_PRODUCT_HORI_FIGHTING_STICK_ALPHA_PS4 0x011c
  97. #define USB_PRODUCT_HORI_FIGHTING_STICK_ALPHA_PS5 0x0184
  98. #define USB_PRODUCT_HORI_FIGHTING_STICK_ALPHA_PS5 0x0184
  99. #define USB_PRODUCT_HORI_STEAM_CONTROLLER 0x01AB
  100. #define USB_PRODUCT_HORI_STEAM_CONTROLLER_BT 0x0196
  101. #define USB_PRODUCT_LOGITECH_F310 0xc216
  102. #define USB_PRODUCT_LOGITECH_CHILLSTREAM 0xcad1
  103. #define USB_PRODUCT_MADCATZ_SAITEK_SIDE_PANEL_CONTROL_DECK 0x2218
  104. #define USB_PRODUCT_MADCATZ_XB1_STRATOCASTER_GUITAR 0x4161
  105. #define USB_PRODUCT_MADCATZ_XB1_DRUM_KIT 0x4262
  106. #define USB_PRODUCT_MADCATZ_XB1_LEGACY_ADAPTER 0x4164
  107. #define USB_PRODUCT_NACON_REVOLUTION_5_PRO_PS4_WIRELESS 0x0d16
  108. #define USB_PRODUCT_NACON_REVOLUTION_5_PRO_PS4_WIRED 0x0d17
  109. #define USB_PRODUCT_NACON_REVOLUTION_5_PRO_PS5_WIRELESS 0x0d18
  110. #define USB_PRODUCT_NACON_REVOLUTION_5_PRO_PS5_WIRED 0x0d19
  111. #define USB_PRODUCT_NACON_REVOLUTION_X_UNLIMITED_BT 0x0689
  112. #define USB_PRODUCT_NINTENDO_GAMECUBE_ADAPTER 0x0337
  113. #define USB_PRODUCT_NINTENDO_N64_CONTROLLER 0x2019
  114. #define USB_PRODUCT_NINTENDO_SEGA_GENESIS_CONTROLLER 0x201e
  115. #define USB_PRODUCT_NINTENDO_SNES_CONTROLLER 0x2017
  116. #define USB_PRODUCT_NINTENDO_SWITCH_JOYCON_GRIP 0x200e
  117. #define USB_PRODUCT_NINTENDO_SWITCH_JOYCON_LEFT 0x2006
  118. #define USB_PRODUCT_NINTENDO_SWITCH_JOYCON_PAIR 0x2008 // Used by joycond
  119. #define USB_PRODUCT_NINTENDO_SWITCH_JOYCON_RIGHT 0x2007
  120. #define USB_PRODUCT_NINTENDO_SWITCH_PRO 0x2009
  121. #define USB_PRODUCT_NINTENDO_SWITCH2_GAMECUBE_CONTROLLER 0x2073
  122. #define USB_PRODUCT_NINTENDO_SWITCH2_JOYCON_LEFT 0x2067
  123. #define USB_PRODUCT_NINTENDO_SWITCH2_JOYCON_PAIR 0x2068
  124. #define USB_PRODUCT_NINTENDO_SWITCH2_JOYCON_RIGHT 0x2066
  125. #define USB_PRODUCT_NINTENDO_SWITCH2_PRO 0x2069
  126. #define USB_PRODUCT_NINTENDO_WII_REMOTE 0x0306
  127. #define USB_PRODUCT_NINTENDO_WII_REMOTE2 0x0330
  128. #define USB_PRODUCT_NVIDIA_SHIELD_CONTROLLER_V103 0x7210
  129. #define USB_PRODUCT_NVIDIA_SHIELD_CONTROLLER_V104 0x7214
  130. #define USB_PRODUCT_PDP_ROCK_CANDY 0x0246
  131. #define USB_PRODUCT_PDP_REALMZ_WIRELESS 0x018c
  132. #define USB_PRODUCT_PDP_XB1_DRUM_KIT 0x0171
  133. #define USB_PRODUCT_PDP_XB1_JAGUAR_GUITAR 0x0170
  134. #define USB_PRODUCT_PDP_XB1_RIFFMASTER_GUITAR 0x0248
  135. #define USB_PRODUCT_POWERA_MINI 0x541a
  136. #define USB_PRODUCT_RAZER_ATROX 0x0a00
  137. #define USB_PRODUCT_RAZER_KITSUNE 0x1012
  138. #define USB_PRODUCT_RAZER_PANTHERA 0x0401
  139. #define USB_PRODUCT_RAZER_PANTHERA_EVO 0x1008
  140. #define USB_PRODUCT_RAZER_RAIJU 0x1000
  141. #define USB_PRODUCT_RAZER_RAIJU_V3_PRO_PS5_WIRED 0x1024
  142. #define USB_PRODUCT_RAZER_RAIJU_V3_PRO_PS5_WIRELESS 0x1026
  143. #define USB_PRODUCT_RAZER_TOURNAMENT_EDITION_USB 0x1007
  144. #define USB_PRODUCT_RAZER_TOURNAMENT_EDITION_BLUETOOTH 0x100a
  145. #define USB_PRODUCT_RAZER_ULTIMATE_EDITION_USB 0x1004
  146. #define USB_PRODUCT_RAZER_ULTIMATE_EDITION_BLUETOOTH 0x1009
  147. #define USB_PRODUCT_RAZER_WOLVERINE_V2 0x0a29
  148. #define USB_PRODUCT_RAZER_WOLVERINE_V2_CHROMA 0x0a2e
  149. #define USB_PRODUCT_RAZER_WOLVERINE_V2_PRO_PS5_WIRED 0x100b
  150. #define USB_PRODUCT_RAZER_WOLVERINE_V2_PRO_PS5_WIRELESS 0x100c
  151. #define USB_PRODUCT_RAZER_WOLVERINE_V2_PRO_XBOX_WIRED 0x1010
  152. #define USB_PRODUCT_RAZER_WOLVERINE_V2_PRO_XBOX_WIRELESS 0x1011
  153. #define USB_PRODUCT_RAZER_WOLVERINE_V3_PRO 0x0a3f
  154. #define USB_PRODUCT_RED_OCTANE_XB1_GUITAR_HERO_LIVE_GUITAR 0x0170
  155. #define USB_PRODUCT_RED_OCTANE_XB1_STAGE_TOUR_GUITAR 0x4161
  156. #define USB_PRODUCT_RED_OCTANE_XB1_STAGE_TOUR_DRUMS 0xD300
  157. #define USB_PRODUCT_SAITEK_CYBORG_V3 0xf622
  158. #define USB_PRODUCT_SCEA_PS3_GH_GUITAR 0x0100
  159. #define USB_PRODUCT_SCEA_PS3_GH_DRUMS 0x0120
  160. #define USB_PRODUCT_SCEA_PS3_RB_GUITAR 0x0200
  161. #define USB_PRODUCT_SCEA_PS3_RB_DRUMS 0x0210
  162. #define USB_PRODUCT_SCEA_PS3_RB3_MPA_DRUMS_MODE 0x0218
  163. #define USB_PRODUCT_SCEA_PS3WIIU_GHLIVE 0x074b
  164. #define USB_PRODUCT_SHANWAN_DS3 0x0523
  165. #define USB_PRODUCT_SONY_DS3 0x0268
  166. #define USB_PRODUCT_SONY_DS4 0x05c4
  167. #define USB_PRODUCT_SONY_DS4_DONGLE 0x0ba0
  168. #define USB_PRODUCT_SONY_DS4_SLIM 0x09cc
  169. #define USB_PRODUCT_SONY_DS4_STRIKEPAD 0x05c5
  170. #define USB_PRODUCT_SONY_DS5 0x0ce6
  171. #define USB_PRODUCT_SONY_DS5_EDGE 0x0df2
  172. #define USB_PRODUCT_STEALTH_ULTRA_WIRED 0x7073
  173. #define USB_PRODUCT_SWITCH_RETROBIT_CONTROLLER 0x0575
  174. #define USB_PRODUCT_THRUSTMASTER_ESWAPX_PRO_PS4 0xd00e
  175. #define USB_PRODUCT_THRUSTMASTER_T_FLIGHT_HOTAS_ONE 0xb68c
  176. #define USB_PRODUCT_VALVE_STEAM_CONTROLLER_DONGLE 0x1142
  177. #define USB_PRODUCT_VALVE_STEAM_PROTEUS_DONGLE 0x1304
  178. #define USB_PRODUCT_VALVE_STEAM_NEREID_DONGLE 0x1305
  179. #define USB_PRODUCT_VICTRIX_FS_PRO 0x0203
  180. #define USB_PRODUCT_VICTRIX_FS_PRO_V2 0x0207
  181. #define USB_PRODUCT_XBOX360_XUSB_CONTROLLER 0x02a1 // XUSB driver software PID
  182. #define USB_PRODUCT_XBOX360_WIRED_CONTROLLER 0x028e
  183. #define USB_PRODUCT_XBOX360_WIRELESS_RECEIVER 0x0719
  184. #define USB_PRODUCT_XBOX360_WIRELESS_RECEIVER_THIRDPARTY1 0x02a9
  185. #define USB_PRODUCT_XBOX360_WIRELESS_RECEIVER_THIRDPARTY2 0x0291
  186. #define USB_PRODUCT_XBOX_ONE_ADAPTIVE 0x0b0a
  187. #define USB_PRODUCT_XBOX_ONE_ADAPTIVE_BLUETOOTH 0x0b0c
  188. #define USB_PRODUCT_XBOX_ONE_ADAPTIVE_BLE 0x0b21
  189. #define USB_PRODUCT_XBOX_ONE_ELITE_SERIES_1 0x02e3
  190. #define USB_PRODUCT_XBOX_ONE_ELITE_SERIES_2 0x0b00
  191. #define USB_PRODUCT_XBOX_ONE_ELITE_SERIES_2_BLUETOOTH 0x0b05
  192. #define USB_PRODUCT_XBOX_ONE_ELITE_SERIES_2_BLE 0x0b22
  193. #define USB_PRODUCT_XBOX_ONE_S 0x02ea
  194. #define USB_PRODUCT_XBOX_ONE_S_REV1_BLUETOOTH 0x02e0
  195. #define USB_PRODUCT_XBOX_ONE_S_REV2_BLUETOOTH 0x02fd
  196. #define USB_PRODUCT_XBOX_ONE_S_REV2_BLE 0x0b20
  197. #define USB_PRODUCT_XBOX_SERIES_X 0x0b12
  198. #define USB_PRODUCT_XBOX_SERIES_X_BLE 0x0b13
  199. #define USB_PRODUCT_XBOX_ONE_XBOXGIP_CONTROLLER 0x02ff // XBOXGIP driver software PID
  200. #define USB_PRODUCT_STEAM_VIRTUAL_GAMEPAD 0x11ff
  201. #define USB_PRODUCT_HANDHELDLEGEND_SINPUT_GENERIC 0x10c6
  202. #define USB_PRODUCT_HANDHELDLEGEND_PROGCC 0x10df
  203. #define USB_PRODUCT_HANDHELDLEGEND_GCULTIMATE 0x10dd
  204. #define USB_PRODUCT_BONZIRICHANNEL_FIREBIRD 0x10e0
  205. #define USB_PRODUCT_ZUIKI_MASCON_PRO 0x0006
  206. #define USB_PRODUCT_ZUIKI_EVOTOP_UWB_DINPUT 0X001c
  207. #define USB_PRODUCT_ZUIKI_EVOTOP_PC_DINPUT 0X001d
  208. #define USB_PRODUCT_ZUIKI_EVOTOP_PC_BT 0X0017
  209. #define USB_PRODUCT_VOIDGAMING_PS4FIREBIRD 0x10e5
  210. #define USB_PRODUCT_VOIDGAMING_GENESIS_SINPUT 0x1014
  211. // USB usage pages
  212. #define USB_USAGEPAGE_GENERIC_DESKTOP 0x0001
  213. #define USB_USAGEPAGE_SIMULATION 0x0002
  214. #define USB_USAGEPAGE_DEVICE_CONTROLS 0x0006
  215. #define USB_USAGEPAGE_BUTTON 0x0009
  216. #define USB_USAGEPAGE_CONSUMER 0x000C
  217. #define USB_USAGEPAGE_VENDOR_FLYDIGI 0xFFA0
  218. // USB usages for USAGE_PAGE_GENERIC_DESKTOP
  219. #define USB_USAGE_GENERIC_POINTER 0x0001
  220. #define USB_USAGE_GENERIC_MOUSE 0x0002
  221. #define USB_USAGE_GENERIC_JOYSTICK 0x0004
  222. #define USB_USAGE_GENERIC_GAMEPAD 0x0005
  223. #define USB_USAGE_GENERIC_KEYBOARD 0x0006
  224. #define USB_USAGE_GENERIC_KEYPAD 0x0007
  225. #define USB_USAGE_GENERIC_MULTIAXISCONTROLLER 0x0008
  226. #define USB_USAGE_GENERIC_X 0x0030
  227. #define USB_USAGE_GENERIC_Y 0x0031
  228. #define USB_USAGE_GENERIC_Z 0x0032
  229. #define USB_USAGE_GENERIC_RX 0x0033
  230. #define USB_USAGE_GENERIC_RY 0x0034
  231. #define USB_USAGE_GENERIC_RZ 0x0035
  232. #define USB_USAGE_GENERIC_SLIDER 0x0036
  233. #define USB_USAGE_GENERIC_DIAL 0x0037
  234. #define USB_USAGE_GENERIC_WHEEL 0x0038
  235. #define USB_USAGE_GENERIC_HAT 0x0039
  236. // USB usages for USB_USAGEPAGE_SIMULATION
  237. #define USB_USAGE_SIMULATION_ACCELERATOR 0x00C4
  238. #define USB_USAGE_SIMULATION_BRAKE 0x00C5
  239. // USB usages for USB_USAGEPAGE_DEVICE_CONTROLS
  240. #define USB_USAGE_DEVICE_CONTROLS_BATTERY_STRENGTH 0x0020
  241. // USB usages for USB_USAGEPAGE_CONSUMER
  242. #define USB_USAGE_CONSUMER_ASSIGN_SELECTION 0x0081
  243. #define USB_USAGE_CONSUMER_ORDER_MOVIE 0x0085
  244. #define USB_USAGE_CONSUMER_RECORD 0x00B2
  245. #define USB_USAGE_CONSUMER_AC_HOME 0x0223
  246. #define USB_USAGE_CONSUMER_AC_BACK 0x0224
  247. #define MAKE_USAGE(PAGE, USAGE) (((Uint32)PAGE) << 16 | USAGE)
  248. /* Bluetooth SIG assigned Company Identifiers
  249. https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers/ */
  250. #define BLUETOOTH_VENDOR_AMAZON 0x0171
  251. #define BLUETOOTH_PRODUCT_LUNA_CONTROLLER 0x0419
  252. #endif // usb_ids_h_