mirror of https://github.com/encounter/SDL.git
Special case for k_eControllerType_XInputSwitchController in the raw input path
This commit is contained in:
parent
e6cb082232
commit
c7f4103807
|
@ -28,6 +28,7 @@
|
||||||
#include "SDL_sysjoystick.h"
|
#include "SDL_sysjoystick.h"
|
||||||
#include "SDL_joystick_c.h"
|
#include "SDL_joystick_c.h"
|
||||||
#include "SDL_gamecontrollerdb.h"
|
#include "SDL_gamecontrollerdb.h"
|
||||||
|
#include "controller_type.h"
|
||||||
#include "usb_ids.h"
|
#include "usb_ids.h"
|
||||||
|
|
||||||
#if !SDL_EVENTS_DISABLED
|
#if !SDL_EVENTS_DISABLED
|
||||||
|
@ -648,14 +649,13 @@ static ControllerMapping_t *SDL_CreateMappingForRAWINPUTController(SDL_JoystickG
|
||||||
{
|
{
|
||||||
Uint16 vendor;
|
Uint16 vendor;
|
||||||
Uint16 product;
|
Uint16 product;
|
||||||
Uint16 version;
|
|
||||||
SDL_bool existing;
|
SDL_bool existing;
|
||||||
char mapping_string[1024];
|
char mapping_string[1024];
|
||||||
|
|
||||||
SDL_GetJoystickGUIDInfo(guid, &vendor, &product, &version);
|
SDL_GetJoystickGUIDInfo(guid, &vendor, &product, NULL);
|
||||||
|
|
||||||
SDL_strlcpy(mapping_string, "none,*,", sizeof(mapping_string));
|
SDL_strlcpy(mapping_string, "none,*,", sizeof(mapping_string));
|
||||||
if (SDL_JoystickUsesButtonLabelHint(vendor, product) &&
|
if (GuessControllerType(vendor, product) == k_eControllerType_XInputSwitchController &&
|
||||||
SDL_GetHintBoolean(SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS, SDL_TRUE)) {
|
SDL_GetHintBoolean(SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS, SDL_TRUE)) {
|
||||||
SDL_strlcat(mapping_string, "a:b1,b:b0,x:b3,y:b2,back:b6,guide:b10,start:b7,leftstick:b8,rightstick:b9,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a4,righttrigger:a5,", sizeof(mapping_string));
|
SDL_strlcat(mapping_string, "a:b1,b:b0,x:b3,y:b2,back:b6,guide:b10,start:b7,leftstick:b8,rightstick:b9,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a4,righttrigger:a5,", sizeof(mapping_string));
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -2186,18 +2186,6 @@ SDL_IsJoystickSteamController(Uint16 vendor_id, Uint16 product_id)
|
||||||
eType == k_eControllerType_SteamControllerV2);
|
eType == k_eControllerType_SteamControllerV2);
|
||||||
}
|
}
|
||||||
|
|
||||||
SDL_bool
|
|
||||||
SDL_JoystickUsesButtonLabelHint(Uint16 vendor_id, Uint16 product_id)
|
|
||||||
{
|
|
||||||
EControllerType eType = GuessControllerType(vendor_id, product_id);
|
|
||||||
return (eType == k_eControllerType_SwitchProController ||
|
|
||||||
eType == k_eControllerType_SwitchInputOnlyController ||
|
|
||||||
eType == k_eControllerType_XInputSwitchController ||
|
|
||||||
(vendor_id == USB_VENDOR_NINTENDO && product_id == USB_PRODUCT_NINTENDO_SWITCH_JOY_CON_GRIP) ||
|
|
||||||
(vendor_id == USB_VENDOR_NINTENDO && product_id == USB_PRODUCT_NINTENDO_GAMECUBE_ADAPTER) ||
|
|
||||||
(vendor_id == USB_VENDOR_SHENZHEN && product_id == USB_PRODUCT_EVORETRO_GAMECUBE_ADAPTER));
|
|
||||||
}
|
|
||||||
|
|
||||||
SDL_bool
|
SDL_bool
|
||||||
SDL_IsJoystickXInput(SDL_JoystickGUID guid)
|
SDL_IsJoystickXInput(SDL_JoystickGUID guid)
|
||||||
{
|
{
|
||||||
|
|
|
@ -90,9 +90,6 @@ extern SDL_bool SDL_IsJoystickNintendoSwitchJoyConRight(Uint16 vendor_id, Uint16
|
||||||
/* Function to return whether a joystick is a Steam Controller */
|
/* Function to return whether a joystick is a Steam Controller */
|
||||||
extern SDL_bool SDL_IsJoystickSteamController(Uint16 vendor_id, Uint16 product_id);
|
extern SDL_bool SDL_IsJoystickSteamController(Uint16 vendor_id, Uint16 product_id);
|
||||||
|
|
||||||
/* Function to return whether a joystick uses SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS */
|
|
||||||
extern SDL_bool SDL_JoystickUsesButtonLabelHint(Uint16 vendor_id, Uint16 product_id);
|
|
||||||
|
|
||||||
/* Function to return whether a joystick guid comes from the XInput driver */
|
/* Function to return whether a joystick guid comes from the XInput driver */
|
||||||
extern SDL_bool SDL_IsJoystickXInput(SDL_JoystickGUID guid);
|
extern SDL_bool SDL_IsJoystickXInput(SDL_JoystickGUID guid);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue