Hi all,
 
I tried to use two different joysticks with freevo and they didn't work well. I made several changes to the joystick plugins and it improved the behaviour. Since I'm not a linux/freevo/python/joystick expert, i would like to share some of my ideas. I think my changes could be interesting for freevo joystick users.
 
* problem 1 (already solved in CVS): I use low cost, low precision, hard to calibrate analog joystick. In the last release the joystick plugin was too sensitive when detecting up/down/left/right changes, resulting in nearly random behaviour. This has already been solved in CVS.
 
*problem 2:  Sometimes freevo doesn't respond to joystick commands. After some debugging, I found that, in my case, some joystick events where lost. The linux kernel documentation about the joystick driver suggests that the event queue should be completely emptied.  I modified the joystick plugin to empty the queue in the poll function --> it solved my problems.
 
*problem 3:  Too many events where sent. When pushing my joystick up, there where typically as much as 5 events sent with different Y axis values. This resulted in too many commands beeing sent. I modified the code to only report big state changes (ie: up <-> deadzone <-> down).
 
* problem 4: Too few events where sent.  When you keep your joystick up for some time, no events are sent by the joystick driver. However, you expect it to behave like a keyboard : if you keep your finger on a key, you expect to see multiple letters after some time. I also modified the source code to take this into account.
 
==> Since i have two analog joystick, my changes should be tested by someone else. Do not hesitate to criticize, it's the first time i deal with freevo/linux/joystick.
 
*** If you are interested by the source code, tell me where (or to who) i can send/post it ****
 
Also I would like to improve configurability (choosing what axis/button does what, sensibility, repeat rate, etc...)
 
Regards,
Olivier Ceulemans.
 

Reply via email to