Page 1 sur 1

[Linux]-Console Color : besoin de testeurs

Publié : mar. 11/nov./2008 13:11
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

Publié : mar. 11/nov./2008 14:14
par Anonyme
Impec Flaith , sa tourne sous Ubuntu.
le top sera de pouvoir avoir un consolelocate qui fonctionne. :D

Publié : mar. 11/nov./2008 16:21
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:

Publié : mar. 11/nov./2008 17:33
par flaith
Nouvelle MAJ (avec locate, underline et intensité)
Rechargez les mêmes fichiers :wink:

Publié : mar. 11/nov./2008 22:52
par Progi1984
Au fait, comment fais tu pour créer des userlibs sous Linux ?

Publié : mar. 11/nov./2008 22:59
par Anonyme
J'allais lui posé la même question , avec le SDK ?

Publié : mar. 11/nov./2008 23:13
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 ...)
:?

Publié : mer. 12/nov./2008 7:47
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 :)

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

Publié : mar. 23/nov./2010 0:41
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)