Add SetLightColor method to IInputDevice interface

Hey there at Epic,

I have a suggestion which I would like to make in this post first. I don’t know if I tagged everything correct, so sorry if not.

I would like to suggest to add a “SetLightColor(FColor)” method to the “IInputDevice” interface.

Now let me explain, why! Recently, we were granted access to the PS4 section and we want to support most features of the DS4 controller on the Win64 build of our game, too. This includes the light bar. This feature, however, doesn’t work.

I noticed that there was a method in the APlayerController-Class already, which did nothing but simply forward the call to the IInputInterface-Classes SetLightColor-Method.

For Windows however, this method simply does nothing.

Now, there is the WinDualShock plugin, which works for most features, but not the light bar. And while it would be relatively easy to support the call, I can’t without changing the engine. I could now:

Add a SetLightColor(FColor) method to the IInputDevice method, which in my oppinion would be the best solution I could think of, because I know you are permitted to give the majority access to Sony DS4 libraries. And with this change, you could support the lightbar in the WinDualShock plugin, without having an impact on engine users without PS4 access.

Or I could modify the FWindowsApplication class to embed a PS4Controllers object (similar to what the plugin does) and implement it there (this would be a lot of work and could not be distributed to non-ps4-engine-users).

So… I am asking you to change this, because I think it would be useful and I realize that every implementation of IInputDevice would have to be adjusted. So this would mean quiet some class changes (although almost every other implementation would simply just add an empty method there), and I would not want to apply these changes after every UE4 upgrade.

Would this be possible?

Hope to hear back from you. I would also be willing to provide these changes in a pull request on the official repository if approved by you.