Logiciels Libres et Systèmes Embarqués


2.4. Évolutions

2.4.1. Création de la carte de traduction

Cette fonctionnalité est presque implémentée, ce n'est pas ce qui est le plus urgent. En effet, il existe un risque de « segmentation fault » dans j2m_create_default_map(), qui a été découvert pendant la rédaction de ce rapport. Cela peut se produire uniquement si le nombre de boutons du joystick est inférieur à 3.

2.4.2. simplification du code

Le fait que ce soit deux fonctions qui gèrent la variable state rend le code peu lisible. Dans peu de temps, ce sera exclusivement j2m_convert() qui s'en occupera.

2.4.3. Boutons analogiques

Sur certains joysticks il existe des boutons analogiques qui sont vus par les pilotes comme des axes. L'ajout de cette fonctionnalité semble indispensable pour que Js2Mouse puisse fonctionner avec un maximum de modèles.

2.4.4. Passage dans l'espace noyau

Extrait de joystick.txt des sources du noyau Linux :

For all joystick drivers to function, you'll need the userland interface module in kernel, either loaded or compiled in: modprobe joydev

C'est donc dans le fichier joydev.c que Js2Mouse sera implémenté, en effet c'est par ici que les événements des joysticks arrivent avant de passer dans l'espace d'adressage utilisateur. Il suffira donc de convertir les données avant de les envoyer. Comme la fonction joydev_write() n'est pas utilisée, une écriture sur le fichier de périphérique pourrait demander la commutation entre le mode souris et le mode joystick, ou entre différents types de souris. L'objectif final de ce pilote étant le passage dans le mode noyau, les fonctions principales, disponible dans map.c et dans convert_ps2.c des sources de Js2Mouse, ont été codées de manière à n'utiliser aucunes fonctions du mode utilisateur. Leurs intégrations en sera facilitées.