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 14/02/2015 23:38 | #
Ah, c'est donc ça
Ben du coup ça va me permettre de corriger deux trois bugs de plus
Ajouté le 14/02/2015 à 23:39 :
Merci pour l'info en tout cas.
Citer : Posté le 14/02/2015 23:39 | #
Ça me rassure un peu, je comprenais pas trop que je sois tout seul à avoir des bugs avec ça :E…
Citer : Posté le 14/02/2015 23:42 | #
Ben, de temps en temps ça marchait bien, d'autres non, donc maintenant je sais pourquoi
Citer : Posté le 15/02/2015 03:29 | #
Je réitère ma question :
Précise si la lib est compatible SH4.
Vérifie bien la compatibilité, puisque tu utilises des syscalls. C'est indispensable pour que la lib soit utilisable.
Escape prison
Bloxorz
Free wheel
QR code
Nombre en or
RayCasting Engine
Mario Party
Zelda
et Planète Casio
Citer : Posté le 16/02/2015 13:15 | # | Fichier joint
Voici la V3.0 !
Au programme :
- 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
Remplacez bien les fichiers EasyInput.c, .h, et .src / .s !
Attention, EI_CENTER, EI_LEFT, EI_RIGHT on été remplacé par EI_ALIGN_****. Changez vos réglages si c'est le cas, sinon rien n'a changé coté utilisateur !
----- Edit -----
Le fichier joint est la V3.1, qui modifie légèrement le système de config.
Citer : Posté le 16/02/2015 13:58 | #
Bizarre ton système de config. Tu ferais mieux de fixer des define (ou enum) à des valeurs strictement positives et renvoyer la config actuelle si le paramètre est 0.
Ou alors tu fais une fonction EI_configure(int parameter, int value)(void) et une fonction EI_getConfig(int parameter)(int).
Citer : Posté le 16/02/2015 14:06 | #
Eh, j'ai fait exactement comme tu m'avais conseillé de faire. Du coup avec une unique fonction je peux modifier ou récupérer les valeurs qui m’intéressent.
Citer : Posté le 16/02/2015 14:13 | #
Si tu veux garder une fonction je te conseille de changer le type de paramètre pour prendre une valeur entière, ça évite de passer par une variable. Ça alourdit le code...
{
EI_SET_COLUMN = 0,
EI_SET_ROW = 1,
EI_SET_BOX_LENGTH = 2,
EI_SET_ALIGN = 3,
EI_SET_START_MODE = 4,
EI_SET_Aa_KEY = 5
};
enum EI_ALIGN
{
EI_ALIGN_LEFT = 1,
EI_ALIGN_CENTER = 2,
EI_ALIGN_LEFT = 3
};
static int config[ /* nb_parametres */ ];
// ...
int EI_manage_config(EI_PARAMETER parameter, int value)
{
if(value == 0) return config[parameter];
config[parameter] = value;
return 0;
}
Citer : Posté le 16/02/2015 14:16 | #
Pas faux...
Bon, MaJ 3.1 en cours...
Citer : Posté le 16/02/2015 14:22 | #
Au passage, normalement on n'augmente le numéro de version majeur que lorsqu'il y a des grandes incompatibilités entre les codes utilisés par les deux versions du programme
Du coup :
Changez vos réglages si c'est le cas, sinon rien n'a changé coté utilisateur !
En général on augmente le numéro de version mineur quand on ne fait que de l'ajout de fonctionnalités.
Confer la bible du semantic versioning
Citer : Posté le 16/02/2015 14:56 | #
Bah, plus de 40% du code a été modifié entre la V2.3 et la V3.0, alors bon...
Et puis c'est ma lib, je fais ce que je veux avec
Citer : Posté le 05/03/2015 21:26 | #
Salut,
C'est pas tellement au sujet de la librairie elle meme (qui est bien faite en passant), mais plus au niveau des caracteres que t'utilises.
Voila j'ai vu que tu pouvais afficher les fleches (si le texte par trop a gauche par exemple) surement contenues dans le systeme. Donc j'ai jeté un coup d'oeil et c'est le caractere 230 (pour l'une des deux).
Alors si y'avais une liste qui existait histoire de m'eviter de chercher un par un les caracteres ca serait cool
Citer : Posté le 05/03/2015 22:10 | #
C'est dans l'archive en téléchargement avec le SDK.
Pour utiliser le caractère de code 0xabcd, utilise une séquence d'échappement.
Citer : Posté le 05/03/2015 22:19 | #
En effet merci de m'avoir aiguillé
Citer : Posté le 05/03/2015 22:41 | #
C'est pas tellement au sujet de la librairie elle meme (qui est bien faite en passant)
Merci, ça fait toujours plaisir d'avoir des retours (surtout quand ils sont positifs).
Ça me fait penser que j'ai encore quelques détails à régler, mais rien de bien grave.
Ajouté le 21/04/2016 à 13:14 :
Dernière version disponible ici : https://git.planet-casio.com/Dark-Storm/EasyInput
Pas eu de changements, mais si j'en fais ça sera toujours à jour
Citer : Posté le 25/04/2016 16:20 | #
Je vais l'utiliser pour mon jeu bientôt donc t'auras de mes nouvelles vu que ma dernière tentative était un échec x)