Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 01/11/2007, à 16:58

Kor

Obtenir la frequence en Hz des modes graphiques X11 disponibles

Bonjour,

J'utilise la fonction XF86VidModeGetAllModeLines me permettant d'obtenir l'ensemble des modes graphiques disponibles par le serveur X11, malheureusement je n'ai aucune information concernant la frequence de rafraichissement en Hz pour chacun de ces modes.

Quelqu'un connait-il la solution a mon probleme ?

Merci bien

Hors ligne

#2 Le 01/11/2007, à 23:24

foustala

Re : Obtenir la frequence en Hz des modes graphiques X11 disponibles

cela depend du moniteur, tu peux tester le bus ddc.

sudo ddcprobe

Hors ligne

#3 Le 02/11/2007, à 10:22

robrob

Re : Obtenir la frequence en Hz des modes graphiques X11 disponibles

J'ai regardé les sources de Kde (l'app Krandr qui permet de configurer l'affichage):
http://websvn.kde.org/branches/KDE/3.5/kdebase/kcontrol/randr/randr.cpp?revision=603026&view=markup

Ils utilisent les fonctions de XRandr, dont j'ai trouvé une liste ici:
http://www.squarebox.co.uk/cgi-squarebox/manServer/usr/X11R6/man/man3/Xrandr.3x

Regarde notamment XRRRates qui retourne les fréquences dispo pour une taille d'écran donnée. Il me semble qu'il faut d'abord utiliser XRRSizes pour connaître les résolutions dispos (La resolution étant appelée par son index dans XRRRates).

Hors ligne

#4 Le 03/11/2007, à 00:03

robrob

Re : Obtenir la frequence en Hz des modes graphiques X11 disponibles

Par curiosité j'ai testé les 2 fonctions citées au dessus. Par contre, je n'ai pas trouvé comment récupérer l'index du screen courant...donc je l'ai mis à 0 wink
(chez moi, les resolutions retournées sont bonnes mais les fréquences sont bizares)

#include <stdio.h>
#include <X11/Xlib.h> 
#include <X11/extensions/Xrandr.h> 

int main(void)
{	
	Display *d;
	int screen;
	int n_resolution;
	XRRScreenSize *resolution;
	int n_frequence;
	short *frequence;
	int i,j;
		
	// recupere le display courant
	d=XOpenDisplay(NULL);
	if (d==NULL)
	{
		printf("Echec de XOpenDisplay\n");
		return 0;
	}
		
	// recupere le screen courant...ou pas :o)
	screen=0;
		
	// recupere les resolutions
	resolution=XRRSizes(d,screen, &n_resolution);

	for(i=0;i<n_resolution;i++)
	{
		// recupere les frequences
		frequence=XRRRates(d, screen,i, &n_frequence);
		
		printf("resolution (%d) : %d x %d\n",i,resolution[i].width, resolution[i].height);
		
		for(j=0;j<n_frequence;j++)
			printf("-> frequence (%d) : %dHz\n",j,frequence[j]);
	}
	
	return 1;
}

Hors ligne

#5 Le 07/11/2007, à 21:37

Kor

Re : Obtenir la frequence en Hz des modes graphiques X11 disponibles

robrob a écrit :

Par curiosité j'ai testé les 2 fonctions citées au dessus. Par contre, je n'ai pas trouvé comment récupérer l'index du screen courant...donc je l'ai mis à 0 wink

tu peux faire ceci pour récupérer le screen courant :

screen = DefaultScreen(d);
robrob a écrit :

(chez moi, les resolutions retournées sont bonnes mais les fréquences sont bizares)

Chez moi aussi c'est étrange, du genre 1280x1024 en 50 et 53Hz !!!

En tout cas merci pour cette aide

Hors ligne

#6 Le 10/11/2007, à 21:08

robrob

Re : Obtenir la frequence en Hz des modes graphiques X11 disponibles

En me promenant sur le forum, j'ai trouvé la raison du pourquoi de ces fréquences bizares. C'est expliqué ici:
http://forum.ubuntu-fr.org/viewtopic.php?id=164833

Hors ligne