Thank you, nefarius! Appreciate the prompt reply.
I had a quick look at the test code and the API does seem to be pretty straight forward to use, how cool!
I do have a couple of technical and a few general questions, if you don't mind and have some time to answer.
Basically, as a (mainly) Java developer what I'd like to do is to expose the client API in some way so that I can access it from my favorite language (well, basically that's what I've used to implement most of my tooling).
I've been thinking about using JNA to expose a minimal set of bindings directly through the DLL, if feasible, just to get the job done, or spawn a server socket thread in C# and communicate with Java that way (it'd probably be easier to just do it in C# but I feel quite old to drop my Java habits )
As far as I understand, assuming I'd go with the second approach, I could simply parse the client message on the server side (e.g. PRESS:X) and invoke the report API:
Are there any thread related considerations in using that sort of approach? I don't even know at this point if SetButtons or SendReport are blocking APIs. Moreover, is there some timer internally for keeping a button pressed for a certain amount of time?
I came across this tool some time ago PS4RemotePlayInterceptor where you'd have to keep the assignment in the callback for as long as you wanted the button pressed. Is there something similar in ViGEm client?
I have one more technical Q before I bore you too much with my questions. After installing the driver, is there some trigger to enable it or is it always there sitting waiting for a client to talk to it? Is it OK if an actual DS4 is connected at the same time also sending input?
Finally, I've got one general question Is there any possibility that Sony to start warning/banning accounts based on whether users have been using such tools? Is it against some of their policy?
Apologies for the super long reply, I guess I've got too excited! Thanks again for all you've done, even though I haven't used it yet (but I have a feeling it's exactly what I need).