Concernant le Slider du Throttle (
Friction Control), ça se passe dans axis/axis_THR_FC.tmc:
- Pour l'instant j'ai pompé une idée qui consiste à manipuler le train
(Landing Gear Up/Down) en jouant avec KeyAxis() et AXMAP2() pour le I-Layer (S4 enfoncé). Ce choix n'a été qu'un prétexte pour la mise en oeuvre de KeyAxis() et il se pourrait bien qu'on puisse lui trouver un meilleur usage.
- Mais j'ai tout de même ajouté une fonction particulière pour la couche MO, toujours dans axis_THR_FC.tmc. Le 2eme KeyAxis() appelle les fonctions slew_key_zoom_set() et slew_mouse_zoom_set() qui ajustent en temps réel la sensibilité du TrackPoint
SC. Ça se passe dans le fichier axis/axis_THR_SC_KEYS.tmc pour
keyboard turn speed et axis/axis_THR_SC_MOUSE.tmc pour ajuster le zoom pour
SCX et
SCY à coup de
SetSCurve().
Mais on n'est pas obligé de piger tout ce qu'il y a là dedans pour s'en servir, y'a qu'a faire marcher le trackpoint et jouer avec le slider pour voir ce que ça donne. Actuellement, il faut appuyer sur
SCP MI-layer, ce qui fait (SCP = Push) avec (S4 enfoncé) pour basculer entre
TrackPoint (pointeur de la souris) et
Slew Control (TAD et HUD cursor).
Une dernière astuce dans tout ça: Les fonctions set_turn_speed[FAST NORMAL SLOW] sont appelées en cliquant SCP avec Micro-Switch en haut ou en bas
(couche UO et DO) pour accélerer ou ralentir la vitesse des curseurs
(TrackPoint ou Slew keys en fonction du choix courant). La vitesse NORMAL est restaurée en même temps que le basculement entre TrackPoint et Slew Control (click SCP + S4)
(économie d'un bouton).
Si ça paraît bien compliqué, ça l'est tout de même moins que certaines fonctions du cockpit! Il suffit de s'en servir pour se rendre compte qu'on s'y fait très bien
A propos de TeamSpeak:
Je ne me suis pas encore lancé dans une synthèse ergonomique d'ensemble mais dans mon raisonnement actuel, la couche MO
(couche par défaut Middle Out), pour le Joystick autant que pour le Throttle devrait rester aussi proche du fonctionnement plug-and-play que possible. L'idée étant de faciliter le basculement [USB HID RÉEL Plug & Play] -- [HID COMBINED VIRTUEL avec TARGET]. J'ai donc réservé mes fantaisies pour les layers optionnels.
Mais on a largement de quoi faire! Je n'ai pas fait le compte de tous les boutons disponibles mais par exemple pour la couche UI, je n'en ai mappé que 2 pour l'instant (Alt-Tab LEFT et Alt-Tab RIGHT).
Mai je vois bien où tu veux an venir pour TeamSpeak. Une activation directe sans modifier est bien commode mais, malgré les apparences, il nous reste plein d'autres couches au delà de IOUMD!
Custom Modes:
Si TARGET propose d'activer une fonction particulière selon qu'on se trouve dans l'un des 6 modes possibles (IOUMD), on peut facilement surenchérir en disant par exemple que si on maintient S3 enfoncé, certaines de nos fonctions en tiendront compte même si on n'en a rien dit à TARGET dans
SetShiftButton(&Joystick, S4, &Throttle, MSU, MSD, 0).
Et bah m'en fallait pas plus pour que je saute sur l'occasion et j'ai validé l'idée dans js/js_MO.tmc. Si on clique S3 en moins de 200ms, il fait simplement son boulot qui consiste à envoyer INSERT (Nosewheel Steering).
Par contre, si on le maintient appuyé, INSERT ne sera pas envoyé mais ma fonction
slew_mouse_zoom_freeze() est appelée pour calmer le pointeur
Slew Control (... axis/axis_THR_SC_MOUSE.tmc). On peut alors cliquer sur SC sans pisser à côté de la cuvette
![Wink ;)](./images/smilies/wink.gif)
.
Et voilà une couche de plus! Ça n'a rien à voir avec IOUMB et on peut en faire autant avec n'importe quel bouton. Il suffit de gérer MapKeyR() pour ces touches de façon a sortir du mode correspondant à ce bouton (slew_mouse_zoom_unfreeze() dans mon cas).
Même si ça apparaît compliqué quand on entre dans le détail, je cherche toujours m'assurer que l'utilisation de ces fonctions puisse devenir reflex. Il faut bien s'attendre à un temps d'assimilation mais si ça ne vient pas assez rapidement, ça veut dire qu'il faut reconsidérer l'ensemble.