I’m using the RawInput plugin so I can support DS gamepads. I’ve got this set up and I’m receiving input from my controllers.
However, I need to get the ID/name for the controller so I can save the config setup for later use. Any ideas on how to do this? I’ve combed through the code and can’t see how to do it.
In 4.26 there is a new WinDualShock plugin. I’d look into that and see if it works better than RawInput.
I think one problem with DS4 is it has slightly different directinput mappings (I think around the touchpad?) depending on whether it is connected wirelessly or through USB, but has the same id. I’m not sure if they have addressed this in the WinDualShock plugin.
Nevermind, I looked into it a bit, it is new in 4.26 but it looks like it may be some proprietary devkit thing:
// Use reflection to allow type not to exist if console code is not present
System.Type LibScePadType = System.Type.GetType("LibScePad");
bool bHasSupport = false;
if (LibScePadType != null)
As far as I can tell, FInputDeviceScopeis supposed to provide that information, but I can’t tell how I’m supposed to go about getting that information for a specific controller. After looking through the code for awhile, I assumed I could use FInputDeviceScope::GetCurrent() to somehow get the information I need, but it seems to always return a nullptr.
I ended up including my old SDL2 code in the end. SLD2 will give you all the details for the attached gamepad/joystick devices.
Will have a look if 4.26 works any better.
When using SDL2, do you use the includes that come with the engine? Or do you package a separate DLL with the game? I’ve heard a couple people mention they solved this with SDL2, but they never really expanded on the process they went through to solve it.
I use my own copy of SDL. In my prjoect I add the SDL headers, lib and dll files (I build these from a separate SDL .sln). Then in my project build.cs file I add the following: