]> git.sesse.net Git - mlt/blob - demo/demo
A little debugging.
[mlt] / demo / demo
1 #!/bin/bash
2
3 export MLT_PROFILE=dv_pal
4 export LC_NUMERIC=C
5
6 function show_consumers( )
7 {
8         awk -F '\t' '{ printf( "%d. %s\n", ++ i, $1 ); }' < consumers.ini
9 }
10
11 function get_consumer( )
12 {
13         option=$1
14         [ "$option" != "" ] && [ $option -gt 0 ] && sed 's/\t\+/\t/g' < consumers.ini | cut -f 2 | head -n $option | tail -n -1
15 }
16
17 function show_menu( )
18 {
19         sed 's/\t\+/\t/g' < demo.ini |
20         awk -F '\t' '{ printf( "%2d. %-30.30s", ++ i, $2 ); if ( i % 2 == 0 ) printf( "\n" ); } END { if ( i % 2 == 1 ) printf( "\n" ); }'
21 }
22
23 function check_dependencies( )
24 {
25         option=$1
26         if [ $option -gt 0 ]
27         then
28                 deps=`sed 's/\t\+/\t/g' < demo.ini | cut -f 3 | head -n $option | tail -n -1`
29                 if [ "$deps" != "" ]
30                 then
31                         echo "$deps" | 
32                         tr ',' '\n' | 
33                         while read dep 
34                         do
35                                 ls $dep > /dev/null 2>&1
36                                 val=$?
37                                 [ $val != 0 ] && echo Failed to find $dep >&2 && echo $val
38                         done
39                 fi
40                 echo 0
41         fi
42 }
43
44 function get_demo( )
45 {
46         option=$1
47         if [ $option -gt 0 ]
48         then
49                 cut -f 1 demo.ini | head -n $option | tail -n -1
50         fi
51 }
52
53 while [ 1 ]
54 do
55
56         echo Select Consumer
57         echo
58
59         show_consumers
60
61         echo
62         echo 0. Exit
63         echo
64         echo -n "Option: "
65         read option
66         echo
67
68         [ "$option" == "0" ] && break
69
70         export MLT_CONSUMER=`get_consumer $option`
71
72         while [ "$option" != "0" -a "$MLT_CONSUMER" != "" ]
73         do
74                 echo Choose Demo
75                 echo
76         
77                 show_menu
78         
79                 echo
80                 echo -n "Option: "
81                 read option
82                 echo
83
84                 [ "$option" == "" ] && break
85         
86                 demo=`get_demo $option`
87                 usable=`check_dependencies $option`
88         
89                 if [ "$usable" = "0" -a "$demo" != "" ]
90                 then
91                         if [ "$MLT_CONSUMER" == "xml:" ]
92                         then    export XML_CONSUMER="xml:$demo.mlt"
93                                         bash $demo -consumer $XML_CONSUMER
94                                         melt +$demo.txt out=100 $demo.mlt $demo.mlt -filter watermark:watermark1.png composite.fill=1 composite.geometry=85%/5%:10%x10%
95                         elif [ "$MLT_CONSUMER" == "xml" ]
96                         then    bash $demo -consumer $MLT_CONSUMER | less
97                         else    bash $demo -consumer $MLT_CONSUMER
98                         fi
99                 elif [ "$usable" != "" ]
100                 then
101                         echo 
102                         echo Unable to locate suitable files for the demo - please provide them.
103                         read pause
104                 fi
105         
106                 stty sane
107         done
108
109 done