diff options
Diffstat (limited to 'TOOLS/TVout/matroxtv')
-rwxr-xr-x | TOOLS/TVout/matroxtv | 314 |
1 files changed, 314 insertions, 0 deletions
diff --git a/TOOLS/TVout/matroxtv b/TOOLS/TVout/matroxtv new file mode 100755 index 0000000000..680877c49b --- /dev/null +++ b/TOOLS/TVout/matroxtv @@ -0,0 +1,314 @@ +#!/bin/sh +# +# Gabucino - no warranty, this script can BOOM your TV and/or monitor, or else. +# 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. 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. +# + +function defaultmode { + # You can choose the mode to use in monitor-only mode + # 640x480 60Hz 32bpp (14" monitors) + fbset -a -xres 640 -yres 480 -vxres 640 -vyres 480 -depth 32 -pixclock 39721 -left 48 -right 16 -upper 33 -lower 10 -hslen 96 -vslen 2 -hsync high -accel true -laced false + # 768x576 60Hz 32bpp (14" monitors) + # fbset -a -xres 768 -yres 576 -vxres 768 -vyres 5460 -depth 32 -pixclock 26101 -left 144 -right 16 -upper 28 -lower 6 -hslen 112 -vslen 4 -accel true -laced false + # 800x600 76Hz 32bpp (15" monitors) + # fbset -a -xres 800 -yres 600 -vxres 800 -vyres 1440 -depth 32 -pixclock 20000 -left 128 -right 16 -upper 24 -lower 2 -hslen 96 -vslen 6 -laced false + # 1024x768 70Hz 32bpp (15" monitors) + # fbset -a -xres 1024 -yres 768 -vxres 1024 -vyres 1440 -depth 32 -pixclock 12500 -left 144 -right 32 -upper 30 -lower 2 -hslen 192 -vslen 6 -laced false +} + +function TVdefaultmode { + + ## + ## PAL modes + ## + + # 640x512 80Hz 32bpp + 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 -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 -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 -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 -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 { + matroxset 1 # PAL + # matroxset 2 # NTSC +} + +function SetMonitorMode { + matroxset 128 +} + +function mappingreset { + matroxset -f /dev/fb0 -m 0 + matroxset -f /dev/fb1 -m 0 + matroxset -f /dev/fb0 -m 1 + con2fb /dev/fb0 /dev/tty1 + con2fb /dev/fb0 /dev/tty2 + SetMonitorMode + defaultmode +} + +function warn { + clear + echo "tty2 will be automatically transferred to fb1 using the con2fb utility." + echo + echo + 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" + read +} + +function warn2 { + id1 > /dev/tty1 & + id2 > /dev/tty2 & +} + +function id1 { + 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 " 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'." +echo "Then edit this script to suit your monitor+TV set." +echo +exit 1 + +while [ 1 ]; do + +clear + +echo " [ 0 ] Clear & blank screen" +echo " [ 1 ] Monitor only" +echo +echo " [ 2 ] Cloning - CRTC1 -> Monitor" +echo " CRTC2 -> TV" +echo +echo " [ 3 ] Cloning - CRTC1 -> Monitor1" +echo " CRTC2 -> Monitor2" +echo +echo " [ 4 ] DualHead - CRTC1 -> Monitor1" +echo " CRTC2 -> Monitor2" +echo +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 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 " (Warning, fb0 and fb1 tend to change RANDOMLY with these mode changers..)" + +read ABC + +case "$ABC" in + 0) + clear + setterm -cursor off + setterm -blank 0 + read + setterm -cursor on + ;; + + 1) + mappingreset + echo + ;; + + 2) + mappingreset + matroxset -f /dev/fb0 -m 3 + SetTVstandard + TVdefaultmode /dev/fb0 + ;; + + 3) + mappingreset + matroxset -f /dev/fb0 -m 3 + ;; + + 4) + warn + mappingreset + matroxset -f /dev/fb0 -m 1 + matroxset -f /dev/fb1 -m 2 + warn2 + ;; + + 5) + warn + mappingreset + matroxset -f /dev/fb0 -m 2 + matroxset -f /dev/fb1 -m 1 + 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 -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 -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 -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 -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 -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 + +done |