[Linux]-Console Color : besoin de testeurs

Codes specifiques à Linux
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

[Linux]-Console Color : besoin de testeurs

Message par flaith »

Salut,

j'ai besoin de testeurs pour ma petite librairie que je viens de faire sous Linux.

Ma librarie fonctionne parfaitement sur ma machine et sous Debian, mais j'aimerais être sur qu'elle fonctionnera aussi bien sur d'autres

Merci par avance pour les tests :D

La lib (qui doit être copiée dans le rep userlib) : http://flaith.free.fr/pb_linux_console_color/lib_color
Le programme test : http://flaith.free.fr/pb_linux_console_color/color.pb

Nicolas
Anonyme

Message par Anonyme »

Impec Flaith , sa tourne sous Ubuntu.
le top sera de pouvoir avoir un consolelocate qui fonctionne. :D
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

Cpl.Bator a écrit :Impec Flaith , sa tourne sous Ubuntu.
le top sera de pouvoir avoir un consolelocate qui fonctionne. :D
Nickel, merci

j'va voir pour le locate :wink:
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

Nouvelle MAJ (avec locate, underline et intensité)
Rechargez les mêmes fichiers :wink:
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Au fait, comment fais tu pour créer des userlibs sous Linux ?
Anonyme

Message par Anonyme »

J'allais lui posé la même question , avec le SDK ?
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

Oui, avec le SDK et j'ai utilisé du code C, le code source :

Code : Tout sélectionner

#include <stdio.h>
/*   param devant être un const char *, vide (identique à "0") ou formé
 *   d'une où plusieurs valeurs séparées par des ; parmi
 *       0  réinitialisation         1  haute intensité (des caractères)
 *       5  clignotement             7  video inversé
 *       30, 31, 32, 33, 34, 35, 36, 37 couleur des caractères
 *       40, 41, 42, 43, 44, 45, 46, 47 couleur du fond
 *       les couleurs, suivant la logique RGB, étant respectivement
 *       noir, rouge, vert, jaune, bleu, magenta, cyan et blanc
 */
void PB_ADIR_Console_Title(char *title)
{
  printf("\033]0;%s\007", title);
}

void PB_ADIR_Console_Color(int frontcolor, int backcolor)
{
  char *String;
  int n;

  n=sprintf (String, "3%d;4%d", frontcolor, backcolor);

  if (n > 0) printf("\033[%sm",String);
}

void PB_ADIR_Console_Inverse(void)
{
  printf("\033[7m");
}

void PB_ADIR_Console_Bold(void)
{
  printf("\033[1m");
}

void PB_ADIR_Console_Underline(void)
{
  printf("\033[4m");
}

void PB_ADIR_Console_Normal(void)
{
  printf("\033[0m");
}

void PB_ADIR_Console_Locate(unsigned int x, unsigned int y)
{
  printf("\033[%d;%dH", y, x);
}

void PB_ADIR_Clear_Console(void)
{
  printf("\033[H\033[2J");
//  printf("\033[%d;%dH", 1, 1); printf("\033[2J");
}
le fichier .desc

Code : Tout sélectionner

; Langage used to code the library: ASM or C
; --------------------------
C

; Number of windows DLL than the library need
; --------------------------
0

; Library type (Can be OBJ or LIB)
; --------------------------
LIB

; Number of PureBasic library needed by the library
; --------------------------
0

; --------------------------
; Help directory name
; --------------------------
ADIR_Console_Color

; Library functions (FunctionName, Arg1, Arg2, ...)
;
; First the function name. Its the name of the C function
; that should be exported to PB, without the "PB_" Prefix
; used in C. After function name a comma and a list of
; arguments seperated by comma aswell. in parentheses
; a argument description that is showed by the PureBasic IDE
; as quick help. After the parentheses a general description
; can follow.
;
; Translation table for some arguments:
; ANSI C         | PureBasic
; --------------------------
; int *          |  Long
; byte *         |  Long
; int  (32 bits) |  Long
; char *         |  Long / String
; long (32 bits) |  Long
; float          |  Float
; double         |    -  (must be casted to float in C for now)
; char           |  Byte
; void           |  None
; short(16 bits) |  Word 
; --------------------------
; Return value:
; Type of return value and flags for:
; 'InitFunction' (a function which is called automatically
; at the start of a PureBasic program),
; 'EndFunction' (called at the end, for cleaning)
; and 'DebuggerCheck' (a debugger handler function for this command.) 
; --------------------------
ADIR_Console_Title, string, (title$) - Change the title of the console
None
; --------------------------
ADIR_Clear_Console () - Clear the Console
None
; --------------------------
ADIR_Console_Color, long, long, (frontcolor.l, backcolor.l) - Change the color of the console
None
; --------------------------
ADIR_Console_Locate, long, long, (x.l, y.l) - Locate at position x and y
None
; --------------------------
ADIR_Console_Inverse () - Inverse the color (black character on white background)
None
; --------------------------
ADIR_Console_Normal () - Back to normal
None
; --------------------------
ADIR_Console_Bold () - Set Bold intensity
None
; --------------------------
ADIR_Console_Underline () - Underline
None
; --------------------------
Et le makefile

Code : Tout sélectionner

# PureBasic library makefile
#

OPT = -O3
INCLUDE = 
OBJS = Lib_color.o

String: $(OBJS)
	ar rvs Lib_color.a *.o
	/home/flaith/1-Programs/purebasic430b4/compilers/pblibrarymaker Lib_color.desc /TO /home/flaith/1-Programs/purebasic430b4/purelibraries/userlibraries/
#	/home/flaith/1-Programs/purebasic430b4/compilers/pblibrarymaker Lib_color.desc /TO /home/flaith/1-Programs/purebasic430b4/purelibraries/
		
Lib_color.o: Lib_color.c
	gcc -c $(OPT) $(INCLUDE) Lib_color.c

clean:
	rm *.o
D'ailleurs, Progi, je suis entrain de voir ton soucis concernant ta lib car compilation + génération lib ca marche mais le soucis reste toujours lors de l'utilisation de tes fonctions (ref indéfinie ...)
:?
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Merci de tes explications :)

Toujours utile de savoir que l'on peut savoir faire ca en C.

Merci aussi de tes recherches sur mon problème. Denis travaille aussi dessus :)
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: [Linux]-Console Color : besoin de testeurs

Message par G-Rom »

Petit UP , j'ai recompilé la source , mis le tout dans PB ( ca marche depuis l'IDE )
en revanche , un executable en stand alone sa plante ( erreur de segmentation ) , je pense à une mauvaise édition de lien , d'ou ca peut venir ? 8O

le makefile modifié :

Code : Tout sélectionner

CC = gcc
LINKFLAGS = -O3 -lm
AR = ar
ARFLAGS = rcs
LIB = Lib_color.a
LINK = $(CC) $(LINKFLAGS) -o $@
 
 
MAIN_OBJECTS = Lib_color.o
 
all : $(LIB) 
 
$(LIB) : $(MAIN_OBJECTS) Makefile
	$(AR) $(ARFLAGS) $(LIB) $(MAIN_OBJECTS) 
Répondre