From: Grazvydas Ignotas Date: Wed, 14 Sep 2011 16:32:51 +0000 (+0300) Subject: op_tvout.sh: rewrite, make usable for other GUIs X-Git-Tag: sz_beta3~98 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=de5c821d15393bd7e6896da344265aeea8c2d071;p=openpandora.oe.git op_tvout.sh: rewrite, make usable for other GUIs --- diff --git a/recipes/pandora-system/pandora-scripts.bb b/recipes/pandora-system/pandora-scripts.bb index f7073b6..c6d0436 100644 --- a/recipes/pandora-system/pandora-scripts.bb +++ b/recipes/pandora-system/pandora-scripts.bb @@ -6,7 +6,7 @@ COMPATIBLE_MACHINE = "omap3-pandora" DEPENDS = "zenity dbus" RDEPENDS = "zenity dbus" -PR = "r69" +PR = "r70" SRC_URI = " \ file://op_bright.sh \ diff --git a/recipes/pandora-system/pandora-scripts/op_tvout.sh b/recipes/pandora-system/pandora-scripts/op_tvout.sh index 22c7d2b..3f64e93 100755 --- a/recipes/pandora-system/pandora-scripts/op_tvout.sh +++ b/recipes/pandora-system/pandora-scripts/op_tvout.sh @@ -1,55 +1,190 @@ #!/bin/bash -# These are just some very basic TV-Out scripts. The picture will most likely not properly be centered, etc. An enhanced one is currently being scripted. -while mainsel=$(zenity --title="TV-Out Configuration" --width="380" --height="200" --list --column "id" --column "Please select" --hide-column=1 --text="This is a very simple TV Out Script. It will be enhanced." "pal" "Enable TV Out in PAL Mode" "ntsc" "Enable TV Out in NTSC Mode" "disable" "Disable TV Out"); do +# defaults +tv_type="pal" +conn_type="svideo" +layer=0 +pal_size="658,520" +pal_pos="35,35" +ntsc_size="655,455" +ntsc_pos="40,15" +size=$pal_size +pos=$pal_pos -case $mainsel in - "pal") +usage() +{ + echo "usage: $0 [-d] [-t pal|ntsc] [-c composite|svideo] [-l 0|1] [-{p|n}s w,h] [-{p|n}p x,y]" + exit 1 +} + +setup_scaler() +{ + # we must preallocate enough memory for the scaler layer + # since the app won't be able to change this + # the whole time TV-out is running.. + ofbset -fb /dev/fb1 -mem $[3*1024*1024] -size 512 256 -en 0 +} + +enable_it() +{ + echo "${tv_type}, ${conn_type}, layer $layer $pos $size" cd /sys/devices/platform/omapdss echo 0 > overlay0/enabled - echo 0 > overlay2/enabled echo 0 > overlay1/enabled - echo 0 > display1/enabled + echo 0 > overlay2/enabled echo "" > /sys/class/graphics/fb2/overlays - echo "0,2" > /sys/class/graphics/fb0/overlays - echo "658,520" > overlay2/output_size + echo "" > /sys/class/graphics/fb1/overlays + if [ $layer -eq 1 ]; then + setup_scaler + echo "0" > /sys/class/graphics/fb0/overlays + echo "1,2" > /sys/class/graphics/fb1/overlays + else + # assume layer 0 for now + echo "0,2" > /sys/class/graphics/fb0/overlays + echo "1" > /sys/class/graphics/fb1/overlays + fi + echo $conn_type > display1/venc_type echo "tv" > overlay2/manager - echo "35,35" > overlay2/position - echo "pal" > display1/timings + echo $size > overlay2/output_size + echo $pos > overlay2/position + echo $tv_type > display1/timings echo 1 > overlay0/enabled echo 1 > overlay2/enabled echo 1 > display1/enabled - zenity --info --title="TV Out" --text "TV Out (PAL Mode) has been enabled." --timeout 6 - ;; +} - "ntsc") +disable_it() +{ cd /sys/devices/platform/omapdss echo 0 > overlay0/enabled - echo 0 > overlay2/enabled echo 0 > overlay1/enabled - echo 0 > display1/enabled - echo "" > /sys/class/graphics/fb2/overlays - echo "0,2" > /sys/class/graphics/fb0/overlays - echo "655,455" > overlay2/output_size - echo "tv" > overlay2/manager - echo "40,15" > overlay2/position - echo "ntsc" > display1/timings - echo 1 > overlay0/enabled - echo 1 > overlay2/enabled - echo 1 > display1/enabled - zenity --info --title="TV Out" --text "TV Out (NTSC Mode) has been enabled." --timeout 6 - ;; - - "disable") - cd /sys/devices/platform/omapdss - echo 0 > overlay0/enabled echo 0 > overlay2/enabled - echo 0 > overlay1/enabled echo 0 > display1/enabled echo "" > /sys/class/graphics/fb2/overlays - echo "0" > /sys/class/graphics/fb0/overlays + echo "" > /sys/class/graphics/fb1/overlays + echo 0 > /sys/class/graphics/fb0/overlays + echo 1 > /sys/class/graphics/fb1/overlays + echo 2 > /sys/class/graphics/fb2/overlays echo 1 > overlay0/enabled - zenity --info --title="TV Out" --text "TV Out has been disabled." --timeout 6 - ;; +} + +# parse args +got_args=false +while true; do + case $1 in + "-d") + disable_it + exit 0 + ;; + "-t") + shift + tv_type=$1 + ;; + "-c") + shift + conn_type=$1 + ;; + "-l") + shift + layer=$1 + ;; + "-ps") + shift + pal_size=$1 + ;; + "-pp") + shift + pal_pos=$1 + ;; + "-ns") + shift + ntsc_size=$1 + ;; + "-np") + shift + ntsc_pos=$1 + ;; + "") + ;; + *) + usage + ;; esac + + if ! shift; then break; fi + got_args=true done + +if [ "$tv_type" != "pal" -a "$tv_type" != "ntsc" ]; then + usage +fi + +if [ "$conn_type" != "svideo" -a "$conn_type" != "composite" ]; then + usage +fi + +if [ "$layer" != "0" -a "$layer" != "1" ]; then + usage +fi + +if [ "$tv_type" = "ntsc" ]; then + size=$ntsc_size + pos=$ntsc_pos +fi + + +if $got_args; then + enable_it +else + # old zenity menu, to be removed + while mainsel=$(zenity --title="TV-Out Configuration" --width="420" --height="248" --list \ + --column "id" --column "Please select" --hide-column=1 \ + --text="This is a very simple TV Out Script. It will be enhanced." \ + "pal" "Enable TV Out in PAL Mode" \ + "ntsc" "Enable TV Out in NTSC Mode" \ + "pal2" "Enable TV Out in PAL Mode, overlay" \ + "ntsc2" "Enable TV Out in NTSC Mode, overlay" \ + "disable" "Disable TV Out" \ + ) + do + + case $mainsel in + "pal") + layer=0 + pos=$pal_pos + size=$pal_size + enable_it + zenity --info --title="TV Out" --text "TV Out (PAL Mode) has been enabled." --timeout 6 + ;; + + "pal2") + layer=1 + pos=$pal_pos + size=$pal_size + enable_it + zenity --info --title="TV Out" --text "TV Out (PAL Mode) has been enabled." --timeout 6 + ;; + + "ntsc") + layer=0 + pos=$ntsc_pos + size=$ntsc_size + enable_it + zenity --info --title="TV Out" --text "TV Out (NTSC Mode) has been enabled." --timeout 6 + ;; + + "ntsc2") + layer=1 + pos=$ntsc_pos + size=$ntsc_size + enable_it + zenity --info --title="TV Out" --text "TV Out (NTSC Mode) has been enabled." --timeout 6 + ;; + + "disable") + disable_it + zenity --info --title="TV Out" --text "TV Out has been disabled." --timeout 6 + ;; + esac + done +fi