forked from Ports/perfect_dark
port: add settings for HIDAPI and raw input
This commit is contained in:
1 parent
91c207a51b
commit
be4d8330bd
1 file changed
+24
-14
+24
-14
@@ -74,6 +74,9 @@ static s32 connectedMask = 0;
|
|||||||
|
|
||||||
static s32 numJoysticks = 0;
|
static s32 numJoysticks = 0;
|
||||||
|
|
||||||
|
static s32 useHIDAPI = 1;
|
||||||
|
static s32 useRawInput = 1;
|
||||||
|
|
||||||
static s32 mouseEnabled = 1;
|
static s32 mouseEnabled = 1;
|
||||||
static s32 mouseX, mouseY;
|
static s32 mouseX, mouseY;
|
||||||
static s32 mouseDX, mouseDY;
|
static s32 mouseDX, mouseDY;
|
||||||
@@ -674,24 +677,29 @@ static inline void inputLoadBinds(void)
|
|||||||
|
|
||||||
s32 inputInit(void)
|
s32 inputInit(void)
|
||||||
{
|
{
|
||||||
|
// Set SDL hints before initializing the controller subsystem.
|
||||||
|
if (useHIDAPI) {
|
||||||
|
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_PS3, "1");
|
||||||
|
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_PS4, "1");
|
||||||
|
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_PS5, "1");
|
||||||
|
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_SWITCH, "1");
|
||||||
|
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS, "1");
|
||||||
|
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_COMBINE_JOY_CONS, "1");
|
||||||
|
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_GAMECUBE, "1");
|
||||||
|
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_WII, "1");
|
||||||
|
// the two hints below enable Rumble and Motion Sensor for PS4/5 pads connected via bluetooth
|
||||||
|
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE, "1");
|
||||||
|
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_PS5_RUMBLE, "1");
|
||||||
|
}
|
||||||
|
if (useRawInput) {
|
||||||
|
SDL_SetHint(SDL_HINT_JOYSTICK_RAWINPUT, "1");
|
||||||
|
SDL_SetHint(SDL_HINT_JOYSTICK_RAWINPUT_CORRELATE_XINPUT, "1");
|
||||||
|
}
|
||||||
|
|
||||||
if (!SDL_WasInit(SDL_INIT_GAMECONTROLLER | SDL_INIT_HAPTIC)) {
|
if (!SDL_WasInit(SDL_INIT_GAMECONTROLLER | SDL_INIT_HAPTIC)) {
|
||||||
SDL_InitSubSystem(SDL_INIT_GAMECONTROLLER | SDL_INIT_HAPTIC);
|
SDL_InitSubSystem(SDL_INIT_GAMECONTROLLER | SDL_INIT_HAPTIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set SDL hints before loading controller mappings
|
|
||||||
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_PS3, "1");
|
|
||||||
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_PS4, "1");
|
|
||||||
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_PS5, "1");
|
|
||||||
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_SWITCH, "1");
|
|
||||||
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE, "1"); // Enables Rumble and Motion Sensor functionality when under Bluetooth connectivity.
|
|
||||||
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_PS5_RUMBLE, "1"); // same case as PS4_Rumble hint.
|
|
||||||
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS, "1");
|
|
||||||
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_COMBINE_JOY_CONS, "1");
|
|
||||||
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_GAMECUBE, "1");
|
|
||||||
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_WII, "1");
|
|
||||||
SDL_SetHint(SDL_HINT_JOYSTICK_RAWINPUT, "1");
|
|
||||||
SDL_SetHint(SDL_HINT_JOYSTICK_RAWINPUT_CORRELATE_XINPUT, "1");
|
|
||||||
|
|
||||||
// try to load controller db from an external file in the save folder
|
// try to load controller db from an external file in the save folder
|
||||||
if (fsFileSize("$S/" CONTROLLERDB_FNAME)) {
|
if (fsFileSize("$S/" CONTROLLERDB_FNAME)) {
|
||||||
const char *dbpath = fsFullPath("$S/" CONTROLLERDB_FNAME);
|
const char *dbpath = fsFullPath("$S/" CONTROLLERDB_FNAME);
|
||||||
@@ -1496,6 +1504,8 @@ PD_CONSTRUCTOR static void inputConfigInit(void)
|
|||||||
configRegisterFloat("Input.MouseSpeedY", &mouseSensY, -10.f, 10.f);
|
configRegisterFloat("Input.MouseSpeedY", &mouseSensY, -10.f, 10.f);
|
||||||
configRegisterInt("Input.FakeGamepads", &fakeControllers, 0, 4);
|
configRegisterInt("Input.FakeGamepads", &fakeControllers, 0, 4);
|
||||||
configRegisterInt("Input.FirstGamepadNum", &firstController, 0, 3);
|
configRegisterInt("Input.FirstGamepadNum", &firstController, 0, 3);
|
||||||
|
configRegisterInt("Input.UseHIDAPI", &useHIDAPI, 0, 1);
|
||||||
|
configRegisterInt("Input.UseRawInput", &useRawInput, 0, 1);
|
||||||
|
|
||||||
char secname[] = "Input.Player1.Binds";
|
char secname[] = "Input.Player1.Binds";
|
||||||
char keyname[256] = { 0 };
|
char keyname[256] = { 0 };
|
||||||
|
|||||||
Reference in new issue
Block a user