Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

LINUX OSD


Information sur la source

Catégorie :Applications Linux Classé sous : linux, xosd, x11 Niveau : Débutant Date de création : 14/07/2007 Date de mise à jour : 14/07/2007 19:39:26 Vu : 4 960

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
N'ayant pas trouvé d'équivalent sur le site, je propose ce petit bout de code qui montre comment utiliser 'xosd' pour afficher diverses informations en OSD.

Ce code nécessite l'installation préalable de xosd et également sont link pour la compilation.

Note :
Pour la sélection de la font vous pouvez utiliser l'utilitaire xfontsel.
 

Source

  • #include <stdio.h>
  • #include <unistd.h>
  • #include <xosd.h>
  • // voir aussi les méthodes :
  • // Change la taille de la barre de pourcentage et du slider
  • // int xosd_set_bar_length(xosd * osd, int length);
  • // Temps d'attente si rien n'est affiché
  • // int xosd_wait_until_no_display(xosd * osd);
  • // Masque l'osd
  • // int xosd_hide(xosd * osd);
  • // Affiche l'osd (attention pas de show après un display)
  • // int xosd_show(xosd * osd); //Attention pas de show après un display
  • // Modification de l'offset pour le shadow
  • // int xosd_set_shadow_offset(xosd * osd, int shadow_offset);
  • // Modification de l'offset pour le outline
  • // int xosd_set_outline_offset(xosd * osd, int outline_offset);
  • // Modification de la couleur du outline
  • // int xosd_set_outline_colour(xosd * osd, const char *colour);
  • // Modification de la couleur du shadow
  • // int xosd_set_shadow_colour(xosd * osd, const char *colour);
  • // Modification de l'offset sur l'axe horizontal
  • // int xosd_set_horizontal_offset(xosd * osd, int offset);
  • // Modification de l'offset sur l'axe vertical
  • // int xosd_set_vertical_offset(xosd * osd, int offset);
  • // Permet de faire scroller naturellement l'affichage
  • // int xosd_scroll(xosd * osd, int lines);
  • int main(int argc, char **argv) {
  • // couleurs
  • int r = -1, g = -1, b = -1;
  • // code de retour
  • int ret = 0;
  • // nombres de lignes pour l'affichage
  • int numLines = 5;
  • // timeout d'affichage
  • int timeout = 5;
  • // font
  • char* font = "-b&h-lucida-bold-*-normal-sans-*-560-*-*-*-*-iso8859-1";
  • // couleur
  • char* color = "#751EAC";
  • // ligne 1
  • char* line1 = "Ligne 1";
  • // ligne 2
  • char* line2 = "Ligne 2";
  • // ligne 3
  • char* line3 = "Ligne 3";
  • // pourcentage
  • int percent = 90;
  • //slider
  • int slider = 30;
  • // allocation d'un pointeur xosd
  • xosd *ptrOsd = xosd_create(numLines);
  • //récupération du nombre de lignes
  • numLines = xosd_get_number_lines(ptrOsd);
  • printf("xosd_get_number_lines [lines : %d]\n", numLines);
  • // alignement horizontal
  • ret = xosd_set_align(ptrOsd, XOSD_center);
  • printf("xosd_set_align ret = %d\n", ret);
  • // alignement vertical
  • ret = xosd_set_pos(ptrOsd, XOSD_top);
  • printf("xosd_set_pos ret = %d\n", ret);
  • // font de l'osd
  • ret = xosd_set_font(ptrOsd, font);
  • printf("xosd_set_align [font : %s] ret = %d\n", font, ret);
  • // couleur de l'osd
  • ret = xosd_set_colour(ptrOsd, color);
  • printf("xosd_set_colour [color : %s] ret = %d\n", color, ret);
  • // récupération de la couleur de l'osd
  • ret = xosd_get_colour(ptrOsd, &r, &g, &b);
  • printf("xosd_get_colour [r : %d, g : %d, b : %d] ret = %d\n", r, g, b, ret);
  • // affichage d'une chaine ligne 1
  • ret = xosd_display(ptrOsd, 0, XOSD_string, line1);
  • printf("xosd_display [str : %s] ret = %d\n", line1, ret);
  • // affichage d'une chaine ligne 2
  • ret = xosd_display(ptrOsd, 1, XOSD_string, line2);
  • printf("xosd_display [str : %s] ret = %d\n", line2, ret);
  • // affichage d'une chaine ligne 3
  • ret = xosd_display(ptrOsd, 2, XOSD_string, line3);
  • printf("xosd_display [str : %s] ret = %d\n", line3, ret);
  • // affichage d'une barre de pourcentage ligne 4
  • ret = xosd_display(ptrOsd, 3, XOSD_percentage, percent);
  • printf("xosd_display [percent : %d] ret = %d\n", percent, ret);
  • // affichage d'un slider ligne 5
  • ret = xosd_display(ptrOsd, 4, XOSD_slider, slider);
  • printf("xosd_display [slider : %d] ret = %d\n", slider, ret);
  • // test si l'ods est déjà affiché ou non
  • ret = xosd_is_onscreen(ptrOsd);
  • printf("xosd_is_onscreen ret = %d\n", ret);
  • // masque l'osd dans 'timeout' secondes
  • ret = xosd_set_timeout(ptrOsd, timeout);
  • printf("xosd_set_timeout [timeout : %d s.] ret = %d\n", timeout, ret);
  • //attente avant le release de l'osd
  • sleep(10);
  • // test si l'ods est déjà affiché ou non
  • ret = xosd_is_onscreen(ptrOsd);
  • printf("xosd_is_onscreen ret = %d\n", ret);
  • // libération de l'osd
  • // Note : si l'osd n'avait pas de timeout il serait automatiquement enlevé
  • ret = xosd_destroy(ptrOsd);
  • printf("xosd_destroy ret = %d\n", ret);
  • return 0;
  • }
#include <stdio.h>
#include <unistd.h>
#include <xosd.h>

// voir aussi les méthodes :
// 		Change la taille de la barre de pourcentage et du slider
// 			int xosd_set_bar_length(xosd * osd, int length);
// 		Temps d'attente si rien n'est affiché
// 			int xosd_wait_until_no_display(xosd * osd);
// 		Masque l'osd
// 			int xosd_hide(xosd * osd);
// 		Affiche l'osd (attention pas de show après un display)
// 			int xosd_show(xosd * osd); //Attention pas de show après un display
// 		Modification de l'offset pour le shadow
// 			int xosd_set_shadow_offset(xosd * osd, int shadow_offset);
// 		Modification de l'offset pour le outline
// 			int xosd_set_outline_offset(xosd * osd, int outline_offset);
// 		Modification de la couleur du outline
// 			int xosd_set_outline_colour(xosd * osd, const char *colour);
// 		Modification de la couleur du shadow
// 			int xosd_set_shadow_colour(xosd * osd, const char *colour);
// 		Modification de l'offset sur l'axe horizontal
// 			int xosd_set_horizontal_offset(xosd * osd, int offset);
// 		Modification de l'offset sur l'axe vertical
// 			int xosd_set_vertical_offset(xosd * osd, int offset);
// 		Permet de faire scroller naturellement l'affichage
// 			int xosd_scroll(xosd * osd, int lines);


int main(int argc, char **argv) {
	// couleurs
	int r = -1, g = -1, b = -1;
	// code de retour
	int ret = 0;
	// nombres de lignes pour l'affichage
	int numLines = 5;
	// timeout d'affichage
	int timeout = 5;
	// font
	char* font = "-b&h-lucida-bold-*-normal-sans-*-560-*-*-*-*-iso8859-1";
	// couleur
	char* color = "#751EAC";
	// ligne 1
	char* line1 = "Ligne 1";
	// ligne 2
	char* line2 = "Ligne 2";
	// ligne 3
	char* line3 = "Ligne 3";
	// pourcentage
	int percent = 90;
	//slider
	int slider = 30;
	
	// allocation d'un pointeur xosd
	xosd *ptrOsd = xosd_create(numLines);
	//récupération du nombre de lignes
	numLines = xosd_get_number_lines(ptrOsd);
	printf("xosd_get_number_lines [lines : %d]\n", numLines);
		
	// alignement horizontal
	ret = xosd_set_align(ptrOsd, XOSD_center);
	printf("xosd_set_align ret = %d\n", ret);
	
	// alignement vertical
	ret = xosd_set_pos(ptrOsd, XOSD_top);
	printf("xosd_set_pos ret = %d\n", ret);
	
	// font de l'osd
	ret = xosd_set_font(ptrOsd, font);
	printf("xosd_set_align [font : %s] ret = %d\n", font, ret);
	
	// couleur de l'osd
	ret = xosd_set_colour(ptrOsd, color);
	printf("xosd_set_colour [color : %s] ret = %d\n", color, ret);
	// récupération de la couleur de l'osd
	ret = xosd_get_colour(ptrOsd, &r, &g, &b);
	printf("xosd_get_colour [r : %d, g : %d, b : %d] ret = %d\n", r, g, b, ret);
	
	// affichage d'une chaine ligne 1
	ret = xosd_display(ptrOsd, 0, XOSD_string, line1);
	printf("xosd_display [str : %s] ret = %d\n", line1, ret);
	// affichage d'une chaine ligne 2
	ret = xosd_display(ptrOsd, 1, XOSD_string, line2);
	printf("xosd_display [str : %s] ret = %d\n", line2, ret);
	// affichage d'une chaine ligne 3
	ret = xosd_display(ptrOsd, 2, XOSD_string, line3);
	printf("xosd_display [str : %s] ret = %d\n", line3, ret);
	// affichage d'une barre de pourcentage ligne 4
	ret = xosd_display(ptrOsd, 3, XOSD_percentage, percent);
	printf("xosd_display [percent : %d] ret = %d\n", percent, ret);
	// affichage d'un slider ligne 5
	ret = xosd_display(ptrOsd, 4, XOSD_slider, slider);
	printf("xosd_display [slider : %d] ret = %d\n", slider, ret);
	
	// test si l'ods est déjà affiché ou non
	ret = xosd_is_onscreen(ptrOsd);
	printf("xosd_is_onscreen ret = %d\n", ret);
	
	// masque l'osd dans 'timeout' secondes
	ret = xosd_set_timeout(ptrOsd, timeout);
	printf("xosd_set_timeout [timeout : %d s.] ret = %d\n", timeout, ret);
	
	//attente avant le release de l'osd
	sleep(10);
	// test si l'ods est déjà affiché ou non
	ret = xosd_is_onscreen(ptrOsd);
	printf("xosd_is_onscreen ret = %d\n", ret);
	// libération de l'osd
	// Note : si l'osd n'avait pas de timeout il serait automatiquement enlevé 
	ret = xosd_destroy(ptrOsd);
	printf("xosd_destroy ret = %d\n", ret);
	return 0;
}

Historique

14 juillet 2007 19:33:37 :
ptites fautes ^^
14 juillet 2007 19:39:26 :
idem... j'ai oublié de faire le copié / collé ... ^^

Commentaires et avis

signaler à un administrateur
Commentaire de aminesoft1 le 04/06/2008 07:28:43 10/10

good job

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

programme graphique sous linux avec X11 de préférence (pour le portage) [ par coucou747 ] je recherche une façon de créer des programmes graphiques en c, j'ai cherché des heures sur le net des programmes en c utilisant des librairies comme Questions cpp Linux X11 [ par ralebole ] Voici mes 3 questions Comment afficher une image dans une fenetre Cpp linux&nbsp; X11 ?Comment creer un Timer Cpp linux X11 ? (petit exemple svp)Si je débuts en C sous linux [ par hotlips ] Bonjour,Je&nbsp;d&#233;bute sous linux. J'&#233;tais plut&#244;t habitu&#233; &#224;&nbsp;Visual C++, mais je doit &#233;crire une librairie en C sous passer un programme GTK de linux à windows [ par Dr_zoidberg ] Bonjour,J'ai choisi de cr&#233;er une interface en GTK afin de pouvoir porter mon programme de linux &#224; windows.Seulement pour l'instant, je n'ai Allegro sous linux [ par esiee_amiens ] Bonjour, Je suis sous linux, et je n'arrive pas &#224; compiler les prog ou j'utilise allegro. J'ai essayer dans la console : "gcc ok.c `allegro -conf Allegro + linux [ par esiee_amiens ] Bonjour, Je suis sous linux, et je n'arrive pas &#224; compiler les prog ou j'utilise allegro. J'ai essayer dans la console : "gcc ok.c `allegro -conf Obtenir GTK ou QT (sans connexion ADSL) [ par Flachy Joe ] Salut,je voudrai me mettre &#224; la progg sous linux, je programme d&#233;ja en VB6 (sous vindoz &#233;videmment) et j'ai des notions de C++ et de Ja graphisme sous linux [ par maxialex5 ] Bonjour comment compiler un code en C contenant la bibliotheque ou avec la version Kaela de knoppix? et merci d'avance Ouverture image sous linux [ par astropolpot ] Bonjour &#224; tous,je voudrais savoir comment ouvrir un fichier jpeg sous linux pour le mettre sous forme de matrice. je ne veux rien de plus compliq Taille fichier sous linux [ par bigbourin ] Bonjour a tous, voila je cherche une fonction pour r&#233;cup&#233;r&#233; la taille d'un fichier mais sous linux. donc les API W32 ...voila. Je pensa


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,546 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.