|
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.
|
