xbmc / peripheral.joystick

Kodi joystick support (drivers and button maps)
GNU General Public License v2.0
24 stars 46 forks source link

PS4 controller blocks screensaver #124

Closed arucard21 closed 6 years ago

arucard21 commented 6 years ago

I've noticed that when my PS4 controller is on, my Kodi screensaver never gets triggered. I use the Picture Slideshow Screensaver, but I verified this with the Dim screensaver as well. If I leave my PS4 controller on and just put it down somewhere, it should not generate any input, so my screensaver should be triggered after the configured amount of time. However, this doesn't happen.

If the PS4 controller is off, the screensaver gets triggered normally. If you then turn the PS4 controller on, the screensaver is exited right away, even if the controller was left untouched after pressing the On button. Note that this behavior, exiting the screensaver right away, was not consistent across different versions of the linux kernel (presumably through some driver changes). It does exit the screensaver in kernel 4.13. The behavior where the screensaver no longer gets triggered, was consistent for all recent versions of the linux kernel.

Note that I only have a PS4 and PS4v2 controller. This problem occurs with both of them, but I do not know if this problem could also affect other controllers.

Environment Debian Unstable (linux kernel 4.13) Kodi self-compiled from 17.4-Krypton tagged source peripheral.joystick self-compiled from v1.3.2 tagged source

Reproduction 1

Reproduction 2

Log I'm not exactly sure which logging I should provide. I couldn't really find anything that seemed directly related to this. I did find this in my kodi.log file, which may be related:

11:19:17.965 T:139985304921856    INFO: AddOnLog: Joystick Support: Initialized joystick 4: "Wireless Controller", axes: 8, hats: 0, buttons: 13
11:19:17.965 T:139985304921856    INFO: AddOnLog: Joystick Support: Initialized joystick 5: "Wireless Controller Motion Sensors", axes: 6, hats: 0, buttons: 0
11:19:17.965 T:139985304921856   DEBUG: GetMappingForDevice - device (0000:0000) mapped to  (type = joystick)
11:19:17.966 T:139985304921856   DEBUG: AddOnLog: Joystick Support: Loaded device "Wireless Controller" with 8 controller profiles and 106 total features
11:19:17.970 T:139985304921856   DEBUG: Initialise - initialised peripheral on 'peripheral.joystick/4' with 1 features and 0 sub devices
11:19:17.970 T:139985304921856  NOTICE: Register - new joystick device registered on addon->peripheral.joystick/4: Wireless Controller
11:19:17.970 T:139985304921856   DEBUG: GetMappingForDevice - device (0000:0000) mapped to  (type = joystick)
11:19:17.974 T:139985304921856   DEBUG: Failed to load button map for "Wireless Controller Motion Sensors"
11:19:17.976 T:139985304921856   DEBUG: Previous line repeats 1 times.
11:19:17.976 T:139985304921856   DEBUG: Initialise - initialised peripheral on 'peripheral.joystick/5' with 1 features and 0 sub devices
11:19:17.976 T:139985304921856  NOTICE: Register - new joystick device registered on addon->peripheral.joystick/5: Wireless Controller Motion Sensors

It seems like the controller is recognized as 2 devices, the second one being for the motion sensors. I've had this problem since before this was ever the case, but it might be relevant now. Maybe the motion sensors are always providing input, even if the controller is stationary. Or maybe it just needs to be handled differently than normal controller input (or just ignored entirely, if it's not useful for Kodi).

arucard21 commented 6 years ago

Thank you, this is just awesome. I just confirmed that this is fixed in the 17.5 release.