op_tvout.sh: Quick ugly hack to include composite / svideo in GUI
[openpandora.oe.git] / recipes / pandora-system / pandora-scripts / op_tvout.sh
1 #!/bin/bash
2
3 # defaults
4 tv_type="pal"
5 conn_type="svideo"
6 layer=0
7 pal_size="658,520"
8 pal_pos="35,35"
9 ntsc_size="655,455"
10 ntsc_pos="40,15"
11 size=$pal_size
12 pos=$pal_pos
13
14 usage()
15 {
16   echo "usage: $0 [-d] [-t pal|ntsc] [-c composite|svideo] [-l 0|1] [-{p|n}s w,h] [-{p|n}p x,y]"
17   exit 1
18 }
19
20 setup_scaler()
21 {
22   # we must preallocate enough memory for the scaler layer
23   # since the app won't be able to change this
24   # the whole time TV-out is running..
25   ofbset -fb /dev/fb1 -mem $[3*1024*1024] -size 512 256 -en 0
26 }
27
28 enable_it()
29 {
30   echo "${tv_type}, ${conn_type}, layer $layer $pos $size"
31   cd /sys/devices/platform/omapdss
32   echo 0 > overlay0/enabled
33   echo 0 > overlay1/enabled
34   echo 0 > overlay2/enabled
35   echo "" > /sys/class/graphics/fb2/overlays
36   echo "" > /sys/class/graphics/fb1/overlays
37   if [ $layer -eq 1 ]; then
38     setup_scaler
39     echo "0" > /sys/class/graphics/fb0/overlays
40     echo "1,2" > /sys/class/graphics/fb1/overlays
41   else
42     # assume layer 0 for now
43     echo "0,2" > /sys/class/graphics/fb0/overlays
44     echo "1" > /sys/class/graphics/fb1/overlays
45   fi
46   echo $conn_type > display1/venc_type
47   echo "tv" > overlay2/manager
48   echo $size > overlay2/output_size
49   echo $pos > overlay2/position 
50   echo $tv_type > display1/timings
51   echo 1 > overlay0/enabled
52   echo 1 > overlay2/enabled
53   echo 1 > display1/enabled
54 }
55
56 disable_it()
57 {
58   cd /sys/devices/platform/omapdss
59   echo 0 > overlay0/enabled
60   echo 0 > overlay1/enabled
61   echo 0 > overlay2/enabled
62   echo 0 > display1/enabled
63   echo "" > /sys/class/graphics/fb2/overlays
64   echo "" > /sys/class/graphics/fb1/overlays
65   echo 0 > /sys/class/graphics/fb0/overlays
66   echo 1 > /sys/class/graphics/fb1/overlays
67   echo 2 > /sys/class/graphics/fb2/overlays
68   echo 1 > overlay0/enabled
69 }
70
71 # parse args
72 got_args=false
73 while true; do
74   case $1 in
75     "-d")
76       disable_it
77       exit 0
78       ;;
79     "-t")
80       shift
81       tv_type=$1
82       ;;
83     "-c")
84       shift
85       conn_type=$1
86       ;;
87     "-l")
88       shift
89       layer=$1
90       ;;
91     "-ps")
92       shift
93       pal_size=$1
94       ;;
95     "-pp")
96       shift
97       pal_pos=$1
98       ;;
99     "-ns")
100       shift
101       ntsc_size=$1
102       ;;
103     "-np")
104       shift
105       ntsc_pos=$1
106       ;;
107     "")
108       ;;
109     *)
110       usage
111       ;;
112   esac
113
114   if ! shift; then break; fi
115   got_args=true
116 done
117
118 if [ "$tv_type" != "pal" -a "$tv_type" != "ntsc" ]; then
119   usage
120 fi
121
122 if [ "$conn_type" != "svideo" -a "$conn_type" != "composite" ]; then
123   usage
124 fi
125
126 if [ "$layer" != "0" -a "$layer" != "1" ]; then
127   usage
128 fi
129
130 if [ "$tv_type" = "ntsc" ]; then
131   size=$ntsc_size
132   pos=$ntsc_pos
133 fi
134
135
136 if $got_args; then
137   enable_it
138 else
139   # old zenity menu, to be removed
140   while mainsel=$(zenity --title="TV-Out Configuration" --width="420" --height="348" --list \
141     --column "id" --column "Please select" --hide-column=1 \
142     --text="This is a very simple TV Out Script. It will be enhanced." \
143     "pal" "Enable TV Out in PAL Mode (Composite)" \
144     "ntsc" "Enable TV Out in NTSC Mode (Composite)" \
145     "pal2" "Enable TV Out in PAL Mode, overlay (Composite)" \
146     "ntsc2" "Enable TV Out in NTSC Mode, overlay (Composite)" \
147     "pals" "Enable TV Out in PAL Mode (SVideo)" \
148     "ntscs" "Enable TV Out in NTSC Mode (SVideo)" \
149     "pal2s" "Enable TV Out in PAL Mode, overlay (SVideo)" \
150     "ntsc2s" "Enable TV Out in NTSC Mode, overlay (SVideo)" \
151     "disable" "Disable TV Out" \
152     )
153   do
154
155   case $mainsel in
156     "pal")
157     layer=0
158     pos=$pal_pos
159     size=$pal_size
160     conn_type="composite"
161     enable_it
162     zenity --info --title="TV Out" --text "TV Out (PAL Mode) has been enabled." --timeout 6
163     ;;
164
165     "pal2")
166     layer=1
167     pos=$pal_pos
168     size=$pal_size
169     conn_type="composite"
170     enable_it
171     zenity --info --title="TV Out" --text "TV Out (PAL Mode) has been enabled." --timeout 6
172     ;;
173
174     "ntsc")
175     layer=0
176     pos=$ntsc_pos
177     size=$ntsc_size
178     conn_type="composite"
179     enable_it
180     zenity --info --title="TV Out" --text "TV Out (NTSC Mode) has been enabled." --timeout 6  
181     ;;
182
183     "ntsc2")
184     layer=1
185     pos=$ntsc_pos
186     size=$ntsc_size
187     conn_type="composite"
188     enable_it
189     zenity --info --title="TV Out" --text "TV Out (NTSC Mode) has been enabled." --timeout 6  
190     ;;
191
192     "pals")
193     layer=0
194     pos=$pal_pos
195     size=$pal_size
196     conn_type="svideo"
197     enable_it
198     zenity --info --title="TV Out" --text "TV Out (PAL Mode) has been enabled." --timeout 6
199     ;;
200
201     "pal2s")
202     layer=1
203     pos=$pal_pos
204     size=$pal_size
205     conn_type="svideo"
206     enable_it
207     zenity --info --title="TV Out" --text "TV Out (PAL Mode) has been enabled." --timeout 6
208     ;;
209
210     "ntscs")
211     layer=0
212     pos=$ntsc_pos
213     size=$ntsc_size
214     conn_type="svideo"
215     enable_it
216     zenity --info --title="TV Out" --text "TV Out (NTSC Mode) has been enabled." --timeout 6  
217     ;;
218
219     "ntsc2s")
220     layer=1
221     pos=$ntsc_pos
222     size=$ntsc_size
223     conn_type="svideo"
224     enable_it
225     zenity --info --title="TV Out" --text "TV Out (NTSC Mode) has been enabled." --timeout 6  
226     ;;
227
228
229     "disable")
230     disable_it
231     zenity --info --title="TV Out" --text "TV Out has been disabled." --timeout 6
232     ;;    
233   esac
234   done
235 fi