Bienvenue dans la documentation de la librairie de fonctions "TouchLib", destinée à utiliser le pavé de touches des Graphs Casio (Graphs 75/85/95 et 35++). Vous trouverez ici des informations complémentaires sur la syntaxe des différentes fonctions disponible.
TouchLib est une librairie de fonctions gratuite, crée par Dark Storm (Louis GATIN), distribuable et réutilisable gratuitement. Toutefois, celle-ci ne doit pas être utilisée à des fins commerciales. Elle est principalement disponible sur le site Planète Casio, vous pouvez à tout moment la télécharger (aucune inscription n'est requise).
En cas de problème, vous pouvez contacter l'auteur à l'adresse suivante : l.gatin [at] neuf.fr
Bonne lecture !
TouchLib utilise dans ses fonctions différentes variables et structures, pour pouvoir fonctionner correctement. Il y a trois types de données possibles : les structures, les #define, et les variables globales.
Il existe deux structures, mais vous ne pourrez rien faire sans la première. C'est une structure contenant deux variables, coordonnées d'un point. Vous pouvez l'initialiser avec l'une de ces manières :
TL_Point myPoint = {0, 0};
TL_Point myPoint;
myPoint.x = 0;
myPoint.y = 0;
La plupart des fonctions demandent un pointeur sur TLPoint, dans notre cas, l'utilisation de TL_getTouchXY se fait de la manière suivante :
TL_Point myPoint = {0, 0};
TL_getTouchXY(&mypoint);
// myPoint contient maintenant les coordonnées de l'appui tactile
TL_GlobalVariables
{
TL_Point TL_GestureTimer_Origin; // Les coordonnées du point d'arrivée du mouvement
TL_Point TL_GestureTimer_PreviousOrigin; // Les coordonnées du point de départ du mouvement
TL_Point TL_GestureTimer_Displacement; // Les coordonnées du vecteur de déplacement
int TL_GestureTimer_Delay; // Le temps (en occurences du timer) entre deux changement d'état de TL_GestureTimer_IsTouched
char TL_GestureTimer_IsTouched; // L'état du TouchPad (1 si appui, 0 sinon)
};
Il y en a deux : TL_GET_TOUCH_ROUND et TL_TIMER_DELAY.
TL_GET_TOUCH_ROUND correspond au nombre de touches qui seront prises en compte lors de l'appui sur le "TouchPad" : par exemple, si les touches 1, 2 et 4 sont pressées, alors la valeur du TL_Point sera un arrondi entre les valeurs des positions des touches 1, 2 et 4. Attention, la constante doit être superieure ou égale à 1, et plus celle-ci est grande, plus les fonctions sont lentes. Une valeur de 4 est recommandée.
TL_TIMER_DELAY correspond à la fréquence (en millisecondes) à laquelle le timer calculera le déplacement en cours.
Il en existe 4 et servent à la récupération des données lors de l'utilisation de la fonction TL_gestureTimer : TL_Point TL_GestureTimer_Origin, TL_Point TL_GestureTimer_Displacement, int TL_GestureTimer_Delay, char TL_GestureTimer_IsTouched.
TL_Point TL_GestureTimer_Origin contient les coordonnées du point pressé lors de la dernière mise à jour du timer.
TL_Point TL_GestureTimer_Displacement, sous la forme d'un TL_Point, contient les coordonnées du vecteur déplacement lors de la dernière mise à jour du timer. Ces coordonnées peuvent être positives comme négatives : (0, 0) => aucun déplacement, (-1, -1) => déplacement vers le haut à gauche, (1, 1) => déplacement vers le bas à droite.
int TL_GestureTimer_Delay contient le nombre d'itérations du timer a partir moment où un appui a été déecté ou que celui-ci a été relaché.
char TL_GestureTimer_IsTouched contient 0 si aucun appui n'est détecté, 1 si il y en a un.
C'est sans doute la fonction la plus importante. Elle demande en paramètre un pointeur sur un TL_Point, et ne retourne rien. Dans la variable passée par le pointeur, vous aurez les coordonées du point sur lequel l'utilisateur appuie.
TL_Point myPoint = (-1, -1);
TL_getTouchXY(&myPoint);
myPoint; // myPoint contient les coordonnées du point pressé.
Cette fonction est assez complexe en ce qu'elle demande une initialisation complète : vous lancez un timer qui se chargera de mettre à jour une variable globale sous la forme d'une structure. Pour cela, suivez les étapes suivantes :
TL_GlobalVariables *donnees; // On crée un pointeur sur les variables gloables
donnees = (TL_GlobalVariables*)TL_initGT() // On associe ce pointeur aux variables. Le cast est obligatoire lors de la compilation
TL_startGT(); // On lance le timer. A partir de ce moment, vous pouvez récupérer et traiter les infos contenues dans la structure "donnees"
while(IsKeyUp(KEY_CTRL_F1)) {
depX = donnees->TL_GestureTimer_Displacement.x; // donnees est un pointeur, donc on accède à ses données avec l'opérateur ->, ensuite, la navigation se fait normalement avec le . pour acceder aux coordonées des TL_Points
isTouched = variables->TL_GestureTimer_IsTouched;
}
TL_stopGT(); // On quitte le timer
Cette fonction stoppe le programme jusqu'à ce qu'un appui entre les coordonnées précisées soit détecté. S'utilise comme ceci :
TL_waitTouchXY(Xmin, Xmax, Ymin, Ymax);
Cette fonction stoppe le programme jusqu'à ce qu'un mouvement entre les coordonnées précisées soit détecté. Demande une zone de départ, et une zone d'arrivée sous forme de vecteur. S'utilise comme ceci :
TL_waitGesture(origineXmin, origineXmax, origineYmin, origineYmax, deplacementXmin, deplacementXmax, deplacementYmin, deplacementYmax, temps);
La variable "temps" est le nombre de boucles durant lequel on accepte que l'utilisateur ait relevé le doigt, tout en acceptant tout de même le mouvement comme valide. Une valeur de 20 est conseillée.Cette fonction stoppe le programme jusqu'à ce qu'un mouvement complet ai été détecté. Elle demande des pointeurs sur char pour retourner les données.
TL_waitGesture(&originX_min, &originX_max, &originY_min, &originY_max, &displacementX_min, &displacementX_max, &displacementY_min, &displacementY_max, temps);
De la même manière que pour TL_waitGesture, "temps" correspond au nombre de boucles durant lequel on ne détecte aucun appui avant de compter le mouvement comme fini. Une valeur de 20 est ici aussi conseillée.Merci à toute la communauté de Planète Casio pour son aide et ses conseils.
Vous pouvez réutiliser gratuitement le design de cette documentation pour vos propres documents, DWTFYWT.