home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / root / usr / share / sax / profile / NVidia_DualHead.pl < prev    next >
Perl Script  |  2006-11-29  |  2KB  |  73 lines

  1. #!/usr/bin/perl
  2.  
  3. use lib '/usr/share/sax/profile';
  4.  
  5. use strict;
  6. use Profile;
  7.  
  8. #====================================
  9. # DualHead check
  10. #------------------------------------
  11. if ($ARGV[0] eq "check") {
  12.     ProfileNVDualCheck();
  13.     exit 0;
  14. }
  15.  
  16. #====================================
  17. # Init profile script
  18. #------------------------------------
  19. my $profile = ProfileInitScript();
  20.  
  21. #====================================
  22. # Do the profile adaptions...
  23. #------------------------------------
  24. if (ProfileIsXOrgVendor ("nvidia")) {
  25.     #====================================
  26.     # nvidia binary driver not installed
  27.     #------------------------------------
  28.     open (FD,">",$profile) ||
  29.         die "NVidia_DualHead: Can't open $profile: $!";
  30.     print FD "Desktop -> [X] ->  CalcModelines = yes\n";
  31.     print FD "Monitor -> [X] ->  CalcAlgorithm = CheckDesktopGeometry\n";
  32.     close FD;
  33. } else {
  34.     #====================================
  35.     # check secondary DDC data
  36.     #------------------------------------
  37.     open (FD,">>",$profile) ||
  38.         die "NVidia_DualHead: Can't open $profile: $!";
  39.     my %data = ProfileGetDDC2Data();
  40.     foreach my $key (keys %data) {
  41.         my $val = $data{$key};
  42.         SWITCH: for ($key) {
  43.             /^Model/      && do {
  44.                 print FD "Monitor -> [X] -> ModelName = $val\n";
  45.                 last SWITCH;
  46.             };
  47.             /^Vendor/     && do {
  48.                 print FD "Monitor -> [X] -> VendorName = $val\n";
  49.                 last SWITCH;
  50.             };
  51.             /^Resolution/ && do {
  52.                 foreach my $depth (8,15,16,24) {
  53.                     print FD "Screen -> [X] -> Depth->$depth->Modes = $val\n";
  54.                 }
  55.                 last SWITCH;
  56.             };
  57.             /^Hsync/      && do {
  58.                 print FD "Monitor -> [X] -> HorizSync = $val\n";
  59.                 last SWITCH;
  60.             };
  61.             /^Vsync/      && do {
  62.                 print FD "Monitor -> [X] -> VertRefresh = $val\n";
  63.                 last SWITCH;
  64.             };
  65.             /^Size/       && do {
  66.                 print FD "Monitor -> [X] -> DisplaySize = $val\n";
  67.                 last SWITCH;
  68.             };
  69.         }
  70.     }
  71.     close FD;
  72. }
  73.