summaryrefslogtreecommitdiff
path: root/hw/xfree86/ddc/print_vdif.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/xfree86/ddc/print_vdif.c')
-rw-r--r--hw/xfree86/ddc/print_vdif.c222
1 files changed, 222 insertions, 0 deletions
diff --git a/hw/xfree86/ddc/print_vdif.c b/hw/xfree86/ddc/print_vdif.c
new file mode 100644
index 000000000..c65d1a0c9
--- /dev/null
+++ b/hw/xfree86/ddc/print_vdif.c
@@ -0,0 +1,222 @@
+/* $XFree86: xc/programs/Xserver/hw/xfree86/ddc/print_vdif.c,v 1.3 2003/02/17 16:08:27 dawes Exp $ */
+
+#include "vdif.h"
+#include "misc.h"
+#include "xf86DDC.h"
+
+static void print_vdif(xf86VdifPtr l, char *s);
+static void print_timings(xf86VdifTimingPtr *pt);
+static void print_limits(xf86VdifLimitsPtr *pl);
+static void print_gamma(xf86VdifGammaPtr *pg);
+static void print_type(CARD8 c);
+static void print_polarity(CARD8 c);
+
+void
+xf86print_vdif(xf86vdifPtr v)
+{
+ print_vdif(v->vdif,v->strings);
+ print_limits(v->limits);
+ print_timings(v->timings);
+ print_gamma(v->gamma);
+}
+
+static void
+print_vdif(xf86VdifPtr l, char *s)
+{
+ ErrorF("Version %i.%i",l->VDIFVersion,l->VDIFRevision);
+ ErrorF(" Date: %i/%i/%i, Manufactured: %i/%i/%i\n",l->Date[0],
+ l->Date[1],l->Date[2],l->DateManufactured[0],
+ l->DateManufactured[1],l->DateManufactured[2]);
+ ErrorF("File Revision: %i",l->FileRevision);
+ ErrorF("Manufacturer: %s\n",s + l->Manufacturer);
+ ErrorF("ModelNumber: %s\n",s + l->ModelNumber);
+ ErrorF("VDIFIndex: %s\n",s +l->MinVDIFIndex);
+ ErrorF("Version: %s\n",s + l->Version);
+ ErrorF("SerialNumber %s\n",s + l->SerialNumber);
+ ErrorF("MonitorType: ");
+ switch (l->MonitorType) {
+ case VDIF_MONITOR_MONOCHROME:
+ ErrorF("Mono\n");
+ break;
+ case VDIF_MONITOR_COLOR:
+ ErrorF("Color\n");
+ break;
+ }
+ ErrorF("CRT Size: %i inches\n",l->CRTSize);
+ switch (l->MonitorType) {
+ case VDIF_MONITOR_MONOCHROME:
+ ErrorF("Border: %i percent\n",
+ l->BorderRed);
+ ErrorF("Phosphor Decay: 1: %i,",l->RedPhosphorDecay);
+ if (l->GreenPhosphorDecay !=0)
+ ErrorF(" 2: %i,",l->GreenPhosphorDecay);
+ if (l->BluePhosphorDecay !=0)
+ ErrorF(" 3: %i",l->BluePhosphorDecay);
+ ErrorF(" ms\n");
+ if (l->RedChromaticity_x)
+ ErrorF("Chromaticity: 1: x:%f, y:%f; ",
+ l->RedChromaticity_x/1000.0,l->RedChromaticity_y/1000.0);
+ if (l->GreenChromaticity_x)
+ ErrorF("Chromaticity: 2: x:%f, y:%f; ",
+ l->GreenChromaticity_x/1000.0,l->GreenChromaticity_y/1000.0);
+ if (l->BlueChromaticity_x)
+ ErrorF("Chromaticity: 3: x:%f, y:%f ",
+ l->BlueChromaticity_x/1000.0,l->BlueChromaticity_y/1000.0);
+ ErrorF("\n");
+ ErrorF("Gamma: %f\n",l->RedGamma/1000.0);
+ break;
+ case VDIF_MONITOR_COLOR:
+ ErrorF("Border: Red: %i Green: %i Blue: %i percent\n",
+ l->BorderRed,l->BorderGreen,l->BorderBlue);
+ ErrorF("Phosphor Decay: Red: %i, Green: %i, Blue: %i ms\n",
+ l->RedPhosphorDecay,l->GreenPhosphorDecay,l->BluePhosphorDecay);
+ ErrorF("Chromaticity: Red: x:%f, y:%f; Green: x:%f, y:%f; "
+ "Blue: x:%f, y:%f\n",
+ l->RedChromaticity_x/1000.0,l->RedChromaticity_y/1000.0,
+ l->GreenChromaticity_x/1000.0,l->GreenChromaticity_y/1000.0,
+ l->BlueChromaticity_x/1000.0,l->BlueChromaticity_y/1000.0);
+ ErrorF("Gamma: Red:%f, Green:%f, Blue:%f\n",l->RedGamma/1000.0,
+ l->GreenGamma/1000.0,l->BlueGamma/1000.0);
+ break;
+ }
+ ErrorF("White Point: x: %f y: %f Y: %f\n",l->WhitePoint_x/1000.0,
+ l->WhitePoint_y/1000.0,l->WhitePoint_Y/1000.0);
+}
+
+static void
+print_limits(xf86VdifLimitsPtr *pl)
+{
+ int i = 0;
+ xf86VdifLimitsPtr l;
+
+ while((l = pl[i]) != NULL) {
+ ErrorF("Max display resolution: %i x %i pixel\n",l->MaxHorPixel,
+ l->MaxVerPixel);
+ ErrorF("Size of active area: %i x %i millimeters\n",l->MaxHorActiveLength,
+ l->MaxVerActiveHeight);
+ ErrorF("Video Type: ");
+ print_type(l->VideoType);
+ ErrorF("Sync Type: ");
+ print_type(l->SyncType);
+ ErrorF("Sync Configuration ");
+ switch (l->SyncConfiguration) {
+ case VDIF_SYNC_SEPARATE:
+ ErrorF("separate\n");
+ break;
+ case VDIF_SYNC_C:
+ ErrorF("composite C\n");
+ break;
+ case VDIF_SYNC_CP:
+ ErrorF("composite CP\n");
+ break;
+ case VDIF_SYNC_G:
+ ErrorF("composite G\n");
+ break;
+ case VDIF_SYNC_GP:
+ ErrorF("composite GP\n");
+ break;
+ case VDIF_SYNC_OTHER:
+ ErrorF("other\n");
+ break;
+ }
+ ErrorF("Termination Resistance: %i\n",l->TerminationResistance);
+ ErrorF("Levels: white: %i, black: %i, blank: %i, sync: %i mV\n",
+ l->WhiteLevel,l->BlackLevel,l->BlankLevel,l->SyncLevel);
+ ErrorF("Max. Pixel Clock: %f MHz\n",l->MaxPixelClock/1000.0);
+ ErrorF("Freq. Range: Hor.: %f - %f kHz, Ver.: %f - %f Hz\n",
+ l->MaxHorFrequency/1000.0,l->MinHorFrequency/1000.0,
+ l->MaxVerFrequency/1000.0,l->MinVerFrequency/1000.0);
+ ErrorF("Retrace time: Hor: %f us, Ver: %f ms\n",l->MinHorRetrace/1000.0,
+ l->MinVerRetrace/1000.0);
+ }
+}
+
+static void
+print_timings(xf86VdifTimingPtr *pt)
+{
+ int i = 0;
+ xf86VdifTimingPtr t;
+
+ while((t = pt[i]) != NULL) {
+ ErrorF("SVGA / SVPMI mode number: %i\n",t->PreadjustedTimingName);
+ ErrorF("Mode %i x %i\n",t->HorPixel,t->VerPixel);
+ ErrorF("Size: %i x %i mm\n",t->HorAddrLength,t->VerAddrHeight);
+ ErrorF("Ratios: %i/%i\n",t->PixelWidthRatio,t->PixelHeightRatio);
+ ErrorF("Character width: %i",t->CharacterWidth);
+ ErrorF("Clock: %f MHz HFreq.: %f kHz, VFreq: %f Hz\n",t->PixelClock/1000.0,
+ t->HorFrequency/1000.0,t->VerFrequency/1000.0);
+ ErrorF("Htotal: %f us, Vtotal %f ms\n", t->HorTotalTime/1000.0,
+ t->VerTotalTime/1000.0);
+ ErrorF("HDisp: %f, HBlankStart: %f, HBlankLength: %f, "
+ "HSyncStart: %f HSyncEnd: %f us\n",t->HorAddrTime/1000.0,
+ t->HorBlankStart/1000.0,t->HorBlankTime/1000.0,
+ t->HorSyncStart/1000.0,t->HorSyncTime/1000.0);
+ ErrorF("VDisp: %f, VBlankStart: %f, VBlankLength: %f, "
+ "VSyncStart: %f VSyncEnd: %f us\n",t->VerAddrTime/1000.0,
+ t->VerBlankStart/1000.0,t->VerBlankTime/1000.0,
+ t->VerSyncStart/1000.0,t->VerSyncTime/1000.0);
+ ErrorF("Scan Type: ");
+ switch (t->ScanType) {
+ case VDIF_SCAN_INTERLACED:
+ ErrorF("interlaced ");
+ break;
+ case VDIF_SCAN_NONINTERLACED:
+ ErrorF("non interlaced ");
+ break;
+ case VDIF_SCAN_OTHER:
+ ErrorF("other ");
+ break;
+ }
+ ErrorF("Polarity: H: ");
+ print_polarity(t->HorSyncPolarity);
+ ErrorF("V: ");
+ print_polarity(t->VerSyncPolarity);
+ ErrorF("\n");
+ }
+}
+
+static void
+print_gamma(xf86VdifGammaPtr *pg)
+{
+ int i = 0;
+ xf86VdifGammaPtr g;
+
+ while((g = pg[i]) != NULL) {
+ ErrorF("Gamma Table Entries: %i\n",g->GammaTableEntries);
+ }
+}
+
+static void
+print_type(CARD8 c)
+{
+ switch (c) {
+ case VDIF_VIDEO_TTL :
+ ErrorF("TTL\n");
+ break;
+ case VDIF_VIDEO_ANALOG :
+ ErrorF("Analog\n");
+ break;
+ case VDIF_VIDEO_ECL:
+ ErrorF("ECL\n");
+ break;
+ case VDIF_VIDEO_DECL:
+ ErrorF("DECL\n");
+ break;
+ case VDIF_VIDEO_OTHER:
+ ErrorF("other\n");
+ break;
+ }
+}
+
+static void
+print_polarity(CARD8 c)
+{
+ switch (c) {
+ case VDIF_POLARITY_NEGATIVE:
+ ErrorF(" Neg.");
+ break;
+ case VDIF_POLARITY_POSITIVE:
+ ErrorF(" Pos.");
+ break;
+ }
+}