From fe5e2c052b111a826bfc68e643c189ea8d310227 Mon Sep 17 00:00:00 2001 From: gabucino Date: Sun, 1 Jun 2003 23:00:37 +0000 Subject: v3.0 Features: - hopefully finally works out-of-the-box after ./modules (report if not) - nice Display Identifier, as in Windows (big "1" and "2" letters on heads :) TODO: - autodetect if fbset, matroxset, con2fb are installed git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10238 b3059339-0415-0410-9bf9-f77b7e298cf2 --- TVout/matroxtv | 197 +++++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 151 insertions(+), 46 deletions(-) (limited to 'TVout') diff --git a/TVout/matroxtv b/TVout/matroxtv index 616663e9cf..680877c49b 100755 --- a/TVout/matroxtv +++ b/TVout/matroxtv @@ -1,14 +1,15 @@ #!/bin/sh # # Gabucino - no warranty, this script can BOOM your TV and/or monitor, or else. -# v2.5 +# v3.0 # This script has been tested and configured on a Matrox G400DH, a PAL TV, # a 14" analog and a 15" digital monitor. # # INSTALLATION: # 1. READ MPLAYER'S TVOUT DOCUMENTATION! -# 2. Edit 'defaultmode', 'TVdefaultmode', and 'SetTVstandard' functions -# below to fit your needs. +# 2. Choose proper mode at 'defaultmode', 'TVdefaultmode', +# and 'SetTVstandard' functions to fit your needs. +# You normally shouldn't touch anything else. # 3. Remove 'exit 1' safety check. # @@ -31,20 +32,20 @@ function TVdefaultmode { ## # 640x512 80Hz 32bpp - fbset -a -depth 32 -left 60 -right 0 -upper 70 -lower 39 -hslen 76 -vslen 4 -xres 640 -yres 512 -bcast true -laced false + fbset -fb $1 -a -depth 32 -left 60 -right 0 -upper 70 -lower 39 -hslen 76 -vslen 4 -xres 640 -yres 512 -bcast true -laced false # 640x528 83Hz 32bpp - # fbset -a -depth 32 -left 40 -right 0 -upper 63 -lower 29 -hslen 56 -vslen 4 -xres 640 -yres 528 -vxres 640 -vyres 528 -laced false -bcast true + # fbset -fb $1 -a -depth 32 -left 40 -right 0 -upper 63 -lower 29 -hslen 56 -vslen 4 -xres 640 -yres 528 -vxres 640 -vyres 528 -laced false -bcast true # 720x576 78Hz 32bpp - # fbset -a -depth 32 -left 54 -right -36 -upper 55 -lower -6 -hslen 46 -vslen 4 -xres 720 -yres 576 -vxres 720 -vyres 576 -laced false -bcast true + # fbset -fb $1 -a -depth 32 -left 54 -right -36 -upper 55 -lower -6 -hslen 46 -vslen 4 -xres 720 -yres 576 -vxres 720 -vyres 576 -laced false -bcast true ## ## NTSC modes ## # 640x240 non-interlaced 32bpp - # fbset -a -depth 32 -xres 640 -yres 240 -vxres 640 -vyres 240 -pixclock 79443 -left 72 -right 40 -upper 15 -lower 5 -hslen 48 -vslen 3 -laced false + # fbset -fb $1 -a -depth 32 -xres 640 -yres 240 -vxres 640 -vyres 240 -pixclock 79443 -left 72 -right 40 -upper 15 -lower 5 -hslen 48 -vslen 3 -laced false # 640x480 interlaced 32bpp - # fbset -a -depth 32 -xres 640 -yres 480 -vxres 640 -vyres 480 -pixclock 79443 -left 72 -right 40 -upper 30 -lower 10 -hslen 48 -vslen 5 -laced true + # fbset -fb $1 -a -depth 32 -xres 640 -yres 480 -vxres 640 -vyres 480 -pixclock 79443 -left 72 -right 40 -upper 30 -lower 10 -hslen 48 -vslen 5 -laced true } function SetTVstandard { @@ -68,16 +69,11 @@ function mappingreset { function warn { clear - echo "Display routing is about to come! Due to certain limitations" - echo "(kernel? driver?), you MUST switch ttys a few times for" - echo "these changes to take effect!!!!! After pressing a key now." + echo "tty2 will be automatically transferred to fb1 using the con2fb utility." echo - echo "I.e.: press alt-f1, alt-f2, alt-f3, then back to alt-f1" echo - echo "NOTE: you won't automatically get consoles on the new display." - echo " To achieve that, use the con2fb utility:" - echo " $ con2fb /dev/fb1 /dev/tty1" - echo " (and don't forget to change ttys a few times...)" + echo "A big \"1\" letter will be displayed on tty1 after the change." + echo "A big \"2\" letter will be displayed on tty2 after the change." echo echo echo "If you read this, PRESS ANY KEY TO CONTINUE" @@ -85,17 +81,73 @@ function warn { } function warn2 { + id1 > /dev/tty1 & + id2 > /dev/tty2 & +} + +function id1 { + sleep 1 clear echo echo echo echo - echo Routing done! - echo Change consoles! echo - echo Then PRESS ANY KEY TO RETURN to menu - read -} + echo + echo + echo + echo + echo + echo + echo " ****" + echo " *****" + echo " ******" + echo " *******" + echo " ***" + echo " ***" + echo " ***" + echo " ***" + echo " ***" + echo " *****" + echo + echo + echo " FAST console" + echo + echo + echo " Press ALT-F1 to change here" +} + +function id2 { + sleep 1 + clear + echo + echo + echo + echo + echo + echo + echo + echo + echo + echo + echo + echo " *****" + echo " ** **" + echo " * **" + echo " **" + echo " **" + echo " **" + echo " **" + echo " **" + echo " ** **" + echo " *******" + echo + echo + echo " SLOW console" + echo + echo + echo " Press ALT-F2 to change here" +} echo echo "Please read MPlayer's TV-out documentation, and install 'matroxset' and 'fbset'." @@ -109,31 +161,36 @@ clear echo " [ 0 ] Clear & blank screen" echo " [ 1 ] Monitor only" -echo " /---> Monitor" -echo " [ 2 ] Cloning - CRTC1" -echo " \\---> TV" echo -echo " /---> Monitor1" -echo " [ 3 ] Cloning - CRTC1" -echo " \\---> Monitor2" +echo " [ 2 ] Cloning - CRTC1 -> Monitor" +echo " CRTC2 -> TV" +echo +echo " [ 3 ] Cloning - CRTC1 -> Monitor1" +echo " CRTC2 -> Monitor2" echo -echo " CRTC1 ---> Monitor1" -echo " [ 4 ] DualHead -" -echo " CRTC2 ---> Monitor2" +echo " [ 4 ] DualHead - CRTC1 -> Monitor1" +echo " CRTC2 -> Monitor2" echo -echo " CRTC1 ---> Monitor2" -echo " [ 5 ] DualHead - SWAP!" -echo " CRTC2 ---> Monitor1" +echo " [ 5 ] DualHead - CRTC1 -> Monitor2 (SWAP!)" +echo " CRTC2 -> Monitor1" +echo +echo " [ 6 ] DualHead - CRTC1 -> Monitor1" +echo " CRTC2 -> TV" +echo +echo " [ 7 ] DualHead - CRTC1 -> TV (SWAP!)" +echo " CRTC2 -> Monitor1" echo -echo -- TV MODES +echo "-- TV MODES on /dev/fb0 -- TV MODES on /dev/fb1" +echo +echo " [ a ] 640x512 PAL [ A ] 640x512 PAL" +echo " [ s ] 640x528 PAL [ S ] 640x528 PAL" +echo " [ d ] 720x576 PAL [ D ] 720x576 PAL" +echo " [ f ] 640x240 NTSC [ F ] 640x240 NTSC" +echo " [ g ] 640x480 NTSC, interlaced [ G ] 640x480 NTSCl" echo -echo " [ A ] 640x512 PAL" -echo " [ S ] 640x528 PAL" -echo " [ D ] 720x576 PAL" -echo " [ F ] 640x240 NTSC" -echo " [ G ] 640x480 NTSC, Interlaced" +echo " (Warning, fb0 and fb1 tend to change RANDOMLY with these mode changers..)" read ABC @@ -155,7 +212,7 @@ case "$ABC" in mappingreset matroxset -f /dev/fb0 -m 3 SetTVstandard - TVdefaultmode + TVdefaultmode /dev/fb0 ;; 3) @@ -179,30 +236,78 @@ case "$ABC" in warn2 ;; + 6) + warn + mappingreset + con2fb /dev/fb1 /dev/tty2 + matroxset -f /dev/fb0 -m 1 + matroxset -f /dev/fb1 -m 2 + SetTVstandard + TVdefaultmode /dev/fb1 + warn2 + ;; + + 7) + warn + mappingreset + con2fb /dev/fb1 /dev/tty2 + matroxset -f /dev/fb0 -m 2 + matroxset -f /dev/fb1 -m 1 + SetTVstandard + TVdefaultmode /dev/fb0 + warn2 + ;; + a) # 640x512 80Hz 32bpp - fbset -a -depth 32 -left 60 -right 0 -upper 70 -lower 39 -hslen 76 -vslen 4 -xres 640 -yres 512 -bcast true -laced false + fbset -depth 32 -left 60 -right 0 -upper 70 -lower 39 -hslen 76 -vslen 4 -xres 640 -yres 512 -bcast true -laced false + ;; + + A) + # 640x512 80Hz 32bpp + fbset -fb /dev/fb1 -depth 32 -left 60 -right 0 -upper 70 -lower 39 -hslen 76 -vslen 4 -xres 640 -yres 512 -bcast true -laced false ;; s) # 640x528 83Hz 32bpp - fbset -a -depth 32 -left 40 -right 0 -upper 63 -lower 29 -hslen 56 -vslen 4 -xres 640 -yres 528 -vxres 640 -vyres 528 -laced false -bcast true + fbset -depth 32 -left 40 -right 0 -upper 63 -lower 29 -hslen 56 -vslen 4 -xres 640 -yres 528 -vxres 640 -vyres 528 -laced false -bcast true + ;; + + S) + # 640x528 83Hz 32bpp + fbset -fb /dev/fb1 -depth 32 -left 40 -right 0 -upper 63 -lower 29 -hslen 56 -vslen 4 -xres 640 -yres 528 -vxres 640 -vyres 528 -laced false -bcast true ;; d) # 720x576 78Hz 32bpp -# fbset -a -depth 32 -left 54 -right -36 -upper 55 -lower -6 -hslen 46 -vslen 4 -xres 720 -yres 576 -vxres 720 -vyres 576 -laced false -bcast true - fbset -a -depth 32 -right -36 -lower -6 -hslen 46 -vslen 4 -xres 720 -yres 576 -vxres 720 -vyres 576 -laced false -bcast true +# fbset -depth 32 -left 54 -right -36 -upper 55 -lower -6 -hslen 46 -vslen 4 -xres 720 -yres 576 -vxres 720 -vyres 576 -laced false -bcast true + fbset -depth 32 -right -36 -lower -6 -hslen 46 -vslen 4 -xres 720 -yres 576 -vxres 720 -vyres 576 -laced false -bcast true + ;; + + D) + # 720x576 78Hz 32bpp +# fbset -fb /dev/fb1 -depth 32 -left 54 -right -36 -upper 55 -lower -6 -hslen 46 -vslen 4 -xres 720 -yres 576 -vxres 720 -vyres 576 -laced false -bcast true + fbset -fb /dev/fb1 -depth 32 -right -36 -lower -6 -hslen 46 -vslen 4 -xres 720 -yres 576 -vxres 720 -vyres 576 -laced false -bcast true ;; f) # 640x240 non-interlaced 32bpp - fbset -a -depth 32 -xres 640 -yres 240 -vxres 640 -vyres 240 -pixclock 79443 -left 72 -right 40 -upper 15 -lower 5 -hslen 48 -vslen 3 -laced false + fbset -depth 32 -xres 640 -yres 240 -vxres 640 -vyres 240 -pixclock 79443 -left 72 -right 40 -upper 15 -lower 5 -hslen 48 -vslen 3 -laced false + ;; + + F) + # 640x240 non-interlaced 32bpp + fbset -fb /dev/fb1 -depth 32 -xres 640 -yres 240 -vxres 640 -vyres 240 -pixclock 79443 -left 72 -right 40 -upper 15 -lower 5 -hslen 48 -vslen 3 -laced false ;; g) # 640x480 interlaced 32bpp - fbset -a -depth 32 -xres 640 -yres 480 -vxres 640 -vyres 480 -pixclock 79443 -left 72 -right 40 -upper 30 -lower 10 -hslen 48 -vslen 5 -laced true + fbset -depth 32 -xres 640 -yres 480 -vxres 640 -vyres 480 -pixclock 79443 -left 72 -right 40 -upper 30 -lower 10 -hslen 48 -vslen 5 -laced true + ;; + + G) + # 640x480 interlaced 32bpp + fbset -fb /dev/fb1 -depth 32 -xres 640 -yres 480 -vxres 640 -vyres 480 -pixclock 79443 -left 72 -right 40 -upper 30 -lower 10 -hslen 48 -vslen 5 -laced true ;; esac -- cgit v1.2.3