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