diff options
author | Pascal Rigaux <pixel@mandriva.com> | 2005-02-28 23:06:31 +0000 |
---|---|---|
committer | Pascal Rigaux <pixel@mandriva.com> | 2005-02-28 23:06:31 +0000 |
commit | b32fd10dd6fc1292d78a3a6a6cb87e1ad904f142 (patch) | |
tree | 3de51de387129c058de30ba6b769989e53c61ad3 /tools/ddcprobe/ddcxinfos.c | |
parent | 1f2d53396dd61b3ee999db70f1b373dd015d0b73 (diff) | |
download | drakx-b32fd10dd6fc1292d78a3a6a6cb87e1ad904f142.tar drakx-b32fd10dd6fc1292d78a3a6a6cb87e1ad904f142.tar.gz drakx-b32fd10dd6fc1292d78a3a6a6cb87e1ad904f142.tar.bz2 drakx-b32fd10dd6fc1292d78a3a6a6cb87e1ad904f142.tar.xz drakx-b32fd10dd6fc1292d78a3a6a6cb87e1ad904f142.zip |
- remove ddcxinfos, replaced by monitor-edid (which is in a separate package)
- add many resolutions (they are structured by aspect ratio for next move)
- put the "Monitor preferred modeline" from EDID in xorg.conf
- for this ModeLine must be exported from the monitor section
- specifying a VendorName|ModelName in auto_inst is valid, don't overwrite it with edid probe
- the strange /dev/zero needed (?) by ddcxinfos is no more needed
- field {size} is now {diagonal_size}, and is no more "corrected"
- add @CVT_ratios and @CVT_vfreqs (unused at the moment)
- Getopt::Long is needed by monitor-parse-edid
Diffstat (limited to 'tools/ddcprobe/ddcxinfos.c')
-rw-r--r-- | tools/ddcprobe/ddcxinfos.c | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/tools/ddcprobe/ddcxinfos.c b/tools/ddcprobe/ddcxinfos.c deleted file mode 100644 index 930f4e1a3..000000000 --- a/tools/ddcprobe/ddcxinfos.c +++ /dev/null @@ -1,125 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <math.h> -#include <sys/mman.h> -#include <unistd.h> -#include <fcntl.h> -#include <errno.h> -#include <stdarg.h> -#include "vbe.h" -#include "vesamode.h" -#include "xbox.h" - -#ifdef HAVE_VBE -#include "int10/vbios.h" -#else -#define InitInt10(PCI_CONFIG) 0 -#define FreeInt10() /**/ -#endif - -#ident "$Id$" - -#define SQR(x) ((x) * (x)) - -void log_err(char *format, ...) -{ - va_list args; - va_start(args, format); - vfprintf(stderr, format, args); - va_end(args); -} - -int main(void) -{ - int i, j; - unsigned char hmin, hmax, vmin, vmax; - struct vbe_info vbe_info_static; - struct vbe_info *vbe_info = &vbe_info_static; - struct vbe_edid1_info edid_static; - struct vbe_edid1_info *edid = &edid_static; - struct vbe_modeline *modelines; - int pci_config_type = 0; - - /* Determine PCI configuration type */ - pci_config_type = 1; - - /* Get VBE information */ -#ifdef HAVE_VBE - if (box_is_xbox() == 1) { - if (get_fb_info(vbe_info) == 0) - return 1; - } else { -#endif - /* Initialize Int10 */ - if (InitInt10(pci_config_type)) return 1; - if (vbe_get_vbe_info(vbe_info) == 0) { - FreeInt10(); - return 1; - } -#ifdef HAVE_VBE - } -#endif - printf("%dKB of video ram\n", vbe_info->memory_size / 1024); - - /* List supported standard modes */ -#ifdef HAVE_VBE - for (j = 0; j < vbe_info->modes; j++) - for (i = 0; known_vesa_modes[i].x; i++) - if (known_vesa_modes[i].number == vbe_info->mode_list[j]) - printf("%d %d %d\n", - known_vesa_modes[i].colors, - known_vesa_modes[i].x, - known_vesa_modes[i].y - ); - /* optimal on a TV, just return canned values */ - if (box_is_xbox() == 1) - printf("%d %d %d\n", 16777216, 640, 480); -#endif - printf("\n"); - - /* Get EDID information */ - if (vbe_get_edid_info(edid) == 0) { - FreeInt10(); - return 0; - } - FreeInt10(); - - if (edid->manufacturer_name.p == 0 || edid->product_code == 0) return 0; - if (edid->version == 255 && edid->revision == 255) return 0; - - vbe_get_edid_ranges(edid, &hmin, &hmax, &vmin, &vmax); - modelines = vbe_get_edid_modelines(edid); - - if (hmin > hmax || vmin > vmax) return 0; - - printf(hmin ? "%d-%d kHz HorizSync\n" : "\n", hmin, hmax); - printf(vmin ? "%d-%d Hz VertRefresh\n" : "\n", vmin, vmax); - - if (edid->max_size_horizontal != 127 && edid->max_size_vertical != 127) { - char manufacturer[4]; - double size = sqrt(SQR(edid->max_size_horizontal) + - SQR(edid->max_size_vertical)) / 2.54; - manufacturer[0] = edid->manufacturer_name.u.char1 + 'A' - 1; - manufacturer[1] = edid->manufacturer_name.u.char2 + 'A' - 1; - manufacturer[2] = edid->manufacturer_name.u.char3 + 'A' - 1; - manufacturer[3] = '\0'; - printf(size ? "%3.2f inches monitor (truly %3.2f') EISA ID=%s%04x\n" : "\n", size * 1.08, size, manufacturer, edid->product_code); - } - - for(j=0; modelines && (modelines[j].refresh != 0); j++){ - printf("# %dx%d, %1.1f%sHz", - modelines[j].width, - modelines[j].height, - modelines[j].refresh, - modelines[j].interlaced?"i":"" - ); - if(modelines[j].modeline) { - printf("; hfreq=%f, vfreq=%f\n%s\n", - modelines[j].hfreq, - modelines[j].vfreq, - modelines[j].modeline); - } else printf("\n"); - } - return 0; -} |