csutorasa / XOutput

DirectInput to XInput wrapper
MIT License
1.16k stars 100 forks source link

Start/stop controller when device attached/detached #119

Open kog00003 opened 5 years ago

kog00003 commented 5 years ago

Pls add this feature...

csutorasa commented 5 years ago

Why do you need this? The controller can be started when the application is started. The controller does nothing if you just detach your controller.

peternsilva commented 4 years ago

This would be helpful when the user wants to easily switch between real XInput controllers and other hid/dinput controllers (being emulated as XInput). I have this scenario with a retro/emulation PC setup of mine.

If the virtual controllers stay visible when I unplug my hid/dinput controllers and then I plug in a real XB360 controller, all the emulators (and some windows games) insist on using the virtual controllers instead of the real 360 controller I just plugged in.

I was hoping that any older controller I plug in could appear as XInput (provided prior mapping) and disappear when removed. I know you can just click stop/start in the GUI but this is less than optimal for HTPC/Kiosk/Console like setups where there's no mouse. My dream is for players to plug in any controller I have mapped and just work via the uniform XInput layer.

Perhaps the functions called by the GUI buttons could be hooked into controller detection. Or at least if there was some cmd line based way to start/stop I could call those functions from another script/tool that triggers on controller attach/detach events.

Thank you for a great app so far!

D1Vad22 commented 3 years ago

I recently swapped to XOutput from Steam/DS4Windows to solve my latency issues. I have a unique setup where I have a 15m HDMI cable from my Study to my living room TV. Using the PS4 controller in native bluetooth has always worked well at that distance (through a wall). BUT not all games have directinput/native PS4 controller support. For games that needed Xinput i would enable Steam/DS4windows but this made the latency horrible (at distance) so couldn't play on my TV. This is because Steam/DS4Windows enable extra features of the controller (vibration/trackpad/gryo) which require additional bluetooth data.

XOutput is working fantastic, thank you soo much for your work!

In games that support the PS4 controller natively, i prefer to leave it as "DirectInput" as typically you get the PS4 icons displayed (not Xbox). So a "Start/Stop" base on certain PS4 controller would help me as i have 7 and could have some setup for xinput and some setup for directinput. Or even better, "Start/Stop" based on which game i launch.

But i am already SUPER happy, and probably not worth the effort for 'unique' situations like mine :)

ghost commented 3 years ago

Can agree this would be a nice feature, I have xoutput set to auto start and if I unplug the controllers games still detect the controller as if its plugged in.

appiekap653 commented 2 years ago

Why do you need this? The controller can be started when the application is started. The controller does nothing if you just detach your controller.

I also would like this function. Now when I leave the program running and disconnect my controller all my games will still show controller buttons while using keyboard and mouse. the games are still seeing the virtual controller as connected and updates the user interface to controller scheme.

It would be nice for the virtual controller to auto start when the physical device is connected and auto stop when the physical device is disconnected.

Then all games will switch their profile rightly between controller mode and keyboard+mouse mode without having to go in your program and manually stop the virtual controller.

felsjc commented 1 year ago

As much as I love this app I would also love to see this feature!

I explain my case: I use my normal 2 xinput compatible controllers for RetroArch. There are 2 spare Stadia controllers to play with friends, for which XOuput does the trick.

The problem is when I want to play alone as RetroArch assigns player 1 and player inputs to the Sadia controllers. Every time I have to edit the configuration to switch to my real xinput controllers :(.