EasyInput
Posté le 02/06/2014 21:33
INFORMATIONS IMPORTANTES
Nom : EasyInput
Auteur : Dark Storm (L.GATIN)
Dernière mise à jour : 16/02/2015
Version : 3.1
Licence : GNU General Public License
Présentation
EasyInput est une librairie de fonctions destinée à simplifier les méthodes de saisie de texte par un utilisateur.
Elle est utilisable gratuitement, vous pouvez la télécharger
sur notre GitLab.
Utilisation
--- Fichiers ---
Quoi qu'il arrive, vous avez besoin des fichiers <EasyInput.c> et <EasyInput.h>
Selon votre compilateur, il vous faut chosir le bon fichier de syscalls :
- Pour le Fx9860 SDK : gardez le fichier <EasyInout_.src>
- Pour GCC : gardez le fichier <EasyInput_.s>
--- Initialisation ---
Utilisez EI_init() pour mettre toutes les valeurs de configuration par défaut.
Ensuite, vous pouvez modifier les paramètres suivants en appelant la fonction EI_manage_config(int parameter, int value).
→ EI_SET_COLUMN : Un nombre entre 1 et 21 qui correspond à la colonne de début de la zone de texte
→ EI_SET_ROW : Idem, mais entre 1 et 8 pour les lignes
→ EI_SET_BOX_LENGTH : La longueur de la zone de texte, en caractères.
→ EI_SET_ALIGN : Le mode d'alignement du texte (EI_ALIGN_LEFT, EI_ALIGN_CENTER, EI_ALIGN_RIGHT)
→ EI_SET_START_MODE : Le mode de départ du curseur (EI_NORMAL, EI_ALPHA, EI_ALPHA_LOCKED)
→ EI_SET_Aa_KEY : Le code de la touche qui servira à changer la casse
Exemple, pour fixer le mode de départ du curseur :
char var;
EI_manage_config(EI_SET_START_MODE, EI_ALPHA);
Si <value> est égale à 0, la fonction retourne un pointeur sur l'élément demandé. Cela permet de récupérer les valeurs de configuration.
Exemple, récupérer la valeur de la longueur de la box :
longueur = EI_manage_config(EI_SET_LENGHT_BOX, NULL);
--- Appel ---
La fonction EI_input_string(int string_length, const char *chars_allowed) retourne un pointeur sur la chaine et doit être appellée de la manière suivante :
my_string = EI_input_string(21, (const char*)".0123456789");
La chaine <chars_allowed> contient tout les caractères dont la saisie est autorisée.
Changelog
Cliquer pour enrouler
--- V3.1 ---
- Simplification du système de configuration
--- V3.0 ---
- Réécriture de la boucle principale
- Correction des bugs concernant les syscalls à destination de l'OS 2.00 et ultérieur (merci à Nemhardy pour l'info)
- Correction des bugs concernant les ajouts de caractères impromptus
- Correction des bugs concernant les alignements de texte
--- V2.3 ---
- Refonte du système d'affichage
--- V2.2 ---
- Refonte du système de configuration
- Ajout de la gestion des minuscules
--- V2.1 ---
- Ajout de la "regex" pour les caractères autorisés
- Correction d'une fuite de mémoire lorsque l'on quitte avec Ac/ON
- Changement de licence
--- V2.0 ---
- Modification du mode de retour de la chaine
--- V1.2 ---
- Correction de quelques bugs
--- V1.0 ---
- Création de la librairie
Citer : Posté le 20/07/2014 22:19 | #
Je l'ai reçu 30min après avoir écrit la news
Pas grave, ça sera pour la semaine prochaine
Citer : Posté le 20/07/2014 22:21 | #
Je sais, désolé mais j'avais oublié .
Pong400
PierrePaCiseaux (CP400)
Les Triangles
Menu
ASCII
Nombres premiers
Citer : Posté le 20/07/2014 22:26 | #
Je vois, seulement je ne vois pas l'utilité de poster également sur le forum... C'est quand même censé être une surprise (mais ce n'est que mon avis)
Citer : Posté le 15/10/2014 18:05 | #
Legolas vient de me passer son code pour notre projet et je me suis aperçu qu'il utilise les syscalls avec cette librairie. Je me demandais donc si elle est compatible avec la librairie usefull et sinon, comment la rendre compatible ( setFPS est déclaré dans syscall.c et usefull ). Depuis que j'ai rajouté le code de Legolas, j'ai également une erreur de compil' :
Undefined external symbol "_EI_input_string" referenced in "C:\[...]\Debug\Enigmes.obj"
Ajouté le 15/10/2014 à 19:46 :
Ah non, excusez moi, je ne regardais pas le bon fichier quand j'ai cru que setFPS était présent dans syscall.c.
Mon erreur vient donc, je pense, de la lib easy input. Si vous avez une idée de l'origine du problème (Undefined external symbol "_EI_input_string" referenced in "C:\[...]\Debug\Enigmes.obj") n'hésitez pas à me prévenir. Cela fait plusieurs heures que je cherche en vain. :aie2:
Notes ( logiciel qui calcule votre moyenne, basic )
Professeur Layton ( jeu d'énigme en C )
Mario & Sonic Rush ( jeu de course 3D en C )
Jetpack Joyride de Drakalex007
Arcuz de Dark Storm
Casion de Az et Darkysun
Un jeu de course en 3D pour calculatrice :
http://www.planet-casio.com/Fr/programmes/voir_un_programme_casio.php?showid=2773&page=1.
Citer : Posté le 15/10/2014 19:50 | #
Je pense savoir d'où viens ton erreur :
1) Tu n'as pas bien inclu le .c
2) Tu as fais "Rebuild" au lieu de "Rebuild all"
Citer : Posté le 15/10/2014 19:57 | #
Nooooon ! J'ai perdu plusieurs heures à chercher la solution à une erreur stupide.
Merci beaucoup Xavier, tu avais raison : j'avais simplement oublié d'inclure EasyInput.c (j'avais mis tout les fichiers de la lib sauf celui-là :boulet: ).
Notes ( logiciel qui calcule votre moyenne, basic )
Professeur Layton ( jeu d'énigme en C )
Mario & Sonic Rush ( jeu de course 3D en C )
Jetpack Joyride de Drakalex007
Arcuz de Dark Storm
Casion de Az et Darkysun
Un jeu de course en 3D pour calculatrice :
http://www.planet-casio.com/Fr/programmes/voir_un_programme_casio.php?showid=2773&page=1.
Citer : Posté le 15/10/2014 19:59 | #
D'ailleurs, @Dark Storm, si tu pouvais faire en sorte que l'ont puisse écrire en minuscule ce serait pas mal, car j'ai essayé de le faire, ça marche, mais c'est quand même bien buggé
Citer : Posté le 15/10/2014 20:00 | #
Un petit merci au passage pour ta lib, super utile
Citer : Posté le 15/10/2014 20:00 | #
Citer : Posté le 15/10/2014 20:24 | #
Oups, dommage que j'ai été absent, j'aurais pu te le dire avant.
Et Aragorn, j'ai re-changé pas mal de petits bug comme ALLOW_ALL et pas ALLOW_09, mais cela n'est que des petit trucs, je te le passerai bientôt.
[/HS]
Pong400
PierrePaCiseaux (CP400)
Les Triangles
Menu
ASCII
Nombres premiers
Citer : Posté le 10/11/2014 20:37 | #
On pourrais pas bidouiller un truc pour que la fonction EI_input_string ne soit pas bloquante, ça ne m'arrange pas
Citer : Posté le 10/11/2014 20:39 | #
Comment veux-tu qu'elle ne soit pas bloquante ?
Il faut bien entrer au clavier...
Citer : Posté le 10/11/2014 20:40 | #
oui mais exécuter ta fonction en même temps c'est pour faire une recherche instantanée dans mon tableau périodique
Citer : Posté le 10/11/2014 20:44 | #
Dans ce cas, modifie-la, pour qu'à chaque fois que la chaîne dans le champ change, tu fasses la recherche.
Citer : Posté le 10/11/2014 20:45 | #
j'ai pas bien compris le code entier de la lib même si elle n'est pas bien compliqué
Je sais pas d'où vienne les caractères
Citer : Posté le 10/11/2014 20:47 | #
Ben en fait, ça vient d'un coup de chance (voulu par CASIO quand même) : quand t'appuie sur les chiffres, GetKey() renvoie... le caractère correspondant ! Et de même pour les touches letrées avec [ALPHA].
Citer : Posté le 10/11/2014 20:48 | #
ah ok mais j'ai pas envie de modifier cette lib mais je vais quand même essayer quelque chose
Citer : Posté le 20/11/2014 17:27 | #
@lephe comment ca un coup de chance ??? Pourquoi aurait-ils fait une fonction getkey si ce n'est pas pour avoir le code de la touche
-Mon Fall Down
-Mon jeu de mains
-Mon starwars
-Mon dessinatout
-Mon niaiseux version 2.0
-Mon niaiseux version 3.0
-Inferno
-Mon super labyrinthe (en cours)
-Mon call of duty en 3D
-Casion (avec Az)
Citer : Posté le 20/11/2014 18:26 | #
Le coup de chance, c'est que lorsque tu appuies sur le chiffre [5] le code soit le caractère '5' ! Ça aurait pu être autrement, comme en Basic.
Citer : Posté le 20/11/2014 18:27 | #
il aurait fallu faire des tableaux de conversion dans ce cas là
Ajouté le 02/12/2014 à 19:06 :
Je n'arrive pas à faire marcher les minuscule avec
EI_input_string(numero,15,ALLOW_az,1,2,15,LEFT,ALPHA_LOCKED);
Citer : Posté le 02/12/2014 21:00 | #
En fait il y a un gros risque que lorsque tu démarres en ALPHA_LOCKED tu tapes uniquement des majuscules au clavier. Je me trompe ?
Sinon, faudrait préciser ton problème. Que se passe-t-il ? Tu as des majuscules, tu n'as rien du tout ? Donne-nous des détails, dire que ça ne fonctionne pas ne nous aide pas.