rev |
line source |
pankso@286
|
1 #!/bin/sh
|
pankso@31
|
2 #
|
pankso@286
|
3 # Gtkdialog box to burn CD or DVD using Wodim with basic options. Burnbox
|
pankso@286
|
4 # can burn ISO images, blank rewritable CD or create audio CD with WAV.
|
pankso@286
|
5 #
|
pankso@286
|
6 # (c) - SliTaz GNU/Linux 2009 - GNU GPL v3
|
jozee@345
|
7
|
jozee@345
|
8 # Authors : Christophe Lincoln <pankso@slitaz.org>
|
jozee@345
|
9 # Rohit Joshi <jozee@slitaz.org>
|
pankso@31
|
10 #
|
jozee@345
|
11 VERSION=20090504
|
jozee@345
|
12 TMPDIR="/tmp/burn-cd"
|
jozee@345
|
13
|
jozee@345
|
14
|
jozee@345
|
15 chk_install()
|
jozee@345
|
16 {
|
jozee@345
|
17 for pkg in $@
|
jozee@345
|
18 do
|
jozee@345
|
19 if [ ! -d /var/lib/tazpkg/installed/${pkg} ]; then
|
jozee@345
|
20 UNINSTALLED="$UNINSTALLED $pkg"
|
jozee@345
|
21 fi
|
jozee@345
|
22 done
|
jozee@345
|
23 if [ ! "$UNINSTALLED" = "" ] ; then
|
jozee@345
|
24 xterm -bg gray93 -fg black -geometry 80x16 -title "INSTALL PACKAGE" \
|
jozee@345
|
25 -e "echo -n \"this option depends on $UNINSTALLED Please install and try again\"; sleep 4;"
|
jozee@345
|
26 fi
|
jozee@345
|
27 }
|
pankso@31
|
28
|
pankso@286
|
29 # Display audio cd size.
|
pankso@286
|
30 audio_cd_stats()
|
pankso@286
|
31 {
|
jozee@345
|
32 AUDIO_CD_SIZE=`du -m $TMPDIR | awk '{print $1}'`
|
jozee@345
|
33 TRACK_NB=`ls -1 $TMPDIR | wc -l`
|
pankso@286
|
34 echo -n "Total tracks: $AUDIO_CD_SIZE Mb"
|
pankso@286
|
35 }
|
pankso@286
|
36
|
jozee@345
|
37 # Display cd/dvd size.
|
jozee@345
|
38 disk_stats()
|
jozee@345
|
39 {
|
jozee@345
|
40 DISK_SIZE=`du -m $TMPDIR | awk '{print $1}'`
|
jozee@345
|
41 TRACK_NB=`ls -1 $TMPDIR | wc -l`
|
jozee@345
|
42 echo -n "Total size: $DISK_SIZE Mb"
|
jozee@345
|
43 }
|
jozee@345
|
44
|
pankso@286
|
45 decode_ogg()
|
pankso@286
|
46 {
|
jozee@345
|
47 if ls $TMPDIR | grep -q .ogg; then
|
jozee@345
|
48 cd $TMPDIR
|
pankso@286
|
49 xterm -bg gray93 -fg black -geometry 80x16 -title "Oggdec" \
|
pankso@286
|
50 -e 'for i in *.ogg; do oggdec "$i" && rm "$i"; done; sleep 2'
|
pankso@286
|
51 fi
|
pankso@286
|
52 }
|
pankso@286
|
53
|
jozee@345
|
54 decode_mp3()
|
jozee@345
|
55 {
|
jozee@345
|
56
|
jozee@345
|
57 if ls $TMPDIR | grep -q .mp3; then
|
jozee@345
|
58 cd $TMPDIR
|
jozee@345
|
59 UNINSTALLED=""
|
jozee@345
|
60 chk_install "mpg123"
|
jozee@345
|
61 if [ "$UNINSTALLED" = "" ] ; then
|
jozee@345
|
62 xterm -bg gray93 -fg black -geometry 80x16 -title "mpg123" \
|
jozee@345
|
63 -e 'for file in *.mp3; do
|
jozee@345
|
64 mpg123 --rate 44100 --stereo --buffer 3072 --resync -w `basename "$file" .mp3`.wav "$file" && rm "$file";
|
jozee@345
|
65 done; sleep 2'
|
jozee@345
|
66
|
jozee@345
|
67 fi
|
jozee@345
|
68 fi
|
jozee@345
|
69 }
|
jozee@345
|
70
|
jozee@345
|
71 decode_video()
|
jozee@345
|
72 {
|
jozee@345
|
73 # convert videos into a VCD/SVCD/DVD compatible mpg video format
|
jozee@345
|
74 if ls $TMPDIR | grep -q ".avi\|.mov\|.wmv\|.flv" ; then
|
jozee@345
|
75 cd $TMPDIR
|
jozee@345
|
76 UNINSTALLED=""
|
jozee@345
|
77 chk_install "ffmpeg"
|
jozee@345
|
78
|
jozee@345
|
79 if [ "$UNINSTALLED" = "" ] ; then
|
jozee@345
|
80 xterm -bg gray93 -fg black -geometry 80x16 -title "ffmpeg" \
|
jozee@345
|
81 -e ' echo -n "Select target type (pal-vcd ntsc-vcd pal-svcd ntsc-svcd pal-dvd ntsc-dvd) "; read TARGET_OPTIONS
|
jozee@345
|
82 for file in *.avi *.wmv *.mov *.flv; do
|
jozee@345
|
83 ext=`echo "${file##*.}"`
|
jozee@345
|
84 output_file=`basename "$file" .$ext`.mpg
|
jozee@345
|
85 ffmpeg -i "$file" -target "$TARGET_OPTIONS" "$output_file" && rm "$file";
|
jozee@345
|
86 done; sleep 2;
|
jozee@345
|
87 '
|
jozee@345
|
88 fi
|
jozee@345
|
89 fi
|
jozee@345
|
90
|
jozee@345
|
91
|
jozee@345
|
92 }
|
jozee@345
|
93
|
jozee@345
|
94 # convert spaces in filename with _ and remove special characters "()'&" {}\! and translate uppercase to lowercase
|
jozee@345
|
95 fix_filename()
|
jozee@345
|
96 {
|
jozee@345
|
97 ls /tmp/burn-cd/* | while read file
|
jozee@345
|
98 do
|
jozee@345
|
99 mv "$file" `echo $file | tr ' ' '_' | tr -d '[{}(),\!&]' | tr -d "\'" | tr '[A-Z]' '[a-z]' | sed 's/_-_/_/g' `
|
jozee@345
|
100 done
|
jozee@345
|
101
|
jozee@345
|
102 }
|
jozee@345
|
103
|
pankso@286
|
104 # We must think about " space " between directory/track and
|
pankso@286
|
105 # filter directory copy to avoid copying other files than audio.
|
pankso@286
|
106 # Only burning non-compressed wav format is supported directly.
|
jozee@345
|
107
|
pankso@286
|
108 copy_audio_file()
|
pankso@286
|
109 {
|
pankso@286
|
110 if ls "$NEW_TRACK" | grep -q .ogg; then
|
jozee@345
|
111 cp "${NEW_TRACK%.ogg}.ogg" $TMPDIR
|
jozee@345
|
112 fix_filename
|
jozee@345
|
113 decode_ogg
|
jozee@345
|
114 elif ls "$NEW_TRACK" | grep -q ".[m\|M][p\|P]3"; then
|
jozee@345
|
115 # cp "${NEW_TRACK%.mp3}.mp3" $TMPDIR
|
jozee@345
|
116 cp "$NEW_TRACK" "$TMPDIR"
|
jozee@345
|
117 fix_filename
|
jozee@345
|
118 decode_mp3
|
pankso@286
|
119 else
|
jozee@345
|
120 cp "${NEW_TRACK%.wav}.wav" $TMPDIR
|
pankso@286
|
121 fi
|
pankso@286
|
122 }
|
jozee@345
|
123
|
jozee@345
|
124
|
pankso@286
|
125 copy_audio_dir()
|
pankso@286
|
126 {
|
jozee@345
|
127
|
jozee@345
|
128 for i in .wav .ogg .mp3
|
pankso@286
|
129 do
|
jozee@345
|
130 cp "$NEW_DIR"/*$i $TMPDIR 2>/dev/null
|
pankso@286
|
131 done
|
jozee@345
|
132 fix_filename
|
jozee@345
|
133 decode_ogg
|
jozee@345
|
134 decode_mp3
|
pankso@286
|
135 }
|
pankso@286
|
136
|
jozee@345
|
137 # Only burning mpg video format is supported directly. MPEG-1 video for vcd and MPEG-2 for svcd and dvd
|
jozee@345
|
138 copy_video_file()
|
jozee@345
|
139 {
|
jozee@345
|
140 if ls "$NEW_TRACK" | grep -q ".mpg\|.mpeg"; then
|
jozee@345
|
141 cp "${NEW_TRACK%.mp*}.mpg" $TMPDIR
|
jozee@345
|
142 elif ls "$NEW_TRACK" | grep -q ".avi\|.mov\|.wmv\|.flv"; then
|
jozee@345
|
143 ext=`echo "${NEW_TRACK##*.}"`
|
jozee@345
|
144 cp "${NEW_TRACK%.$ext}.$ext" $TMPDIR
|
jozee@345
|
145 fix_filename
|
jozee@345
|
146 if "$CHECKBOX_DECODE" ; then decode_video ; fi
|
jozee@345
|
147 else
|
jozee@345
|
148 echo "mpg format supported"
|
jozee@345
|
149 fi
|
jozee@345
|
150 }
|
jozee@345
|
151
|
jozee@345
|
152 copy_video_dir()
|
jozee@345
|
153 {
|
jozee@345
|
154 for i in .mpg .avi .mov .wmv .mpeg .flv
|
jozee@345
|
155 do
|
jozee@345
|
156 cp "$NEW_DIR"/*$i $TMPDIR 2>/dev/null
|
jozee@345
|
157 done
|
jozee@345
|
158 fix_filename
|
jozee@345
|
159 if "$CHECKBOX_DECODE" ; then decode_video ; fi
|
jozee@345
|
160 }
|
jozee@345
|
161
|
jozee@345
|
162 copy_file()
|
jozee@345
|
163 {
|
jozee@345
|
164 case "$BURN_MODE" in
|
jozee@345
|
165 audio-cd)
|
jozee@345
|
166 copy_audio_file ;;
|
jozee@345
|
167 vcd|svcd|video-dvd)
|
jozee@345
|
168 copy_video_file ;;
|
jozee@345
|
169 *)
|
jozee@345
|
170 cp "$NEW_TRACK" $TMPDIR ; fix_filename ;;
|
jozee@345
|
171 esac
|
jozee@345
|
172
|
jozee@345
|
173 }
|
jozee@345
|
174
|
jozee@345
|
175 copy_dir()
|
jozee@345
|
176 {
|
jozee@345
|
177 case "$BURN_MODE" in
|
jozee@345
|
178 audio-cd)
|
jozee@345
|
179 copy_audio_dir ;;
|
jozee@345
|
180 vcd|svcd|video-dvd)
|
jozee@345
|
181 copy_video_dir ;;
|
jozee@345
|
182 *)
|
jozee@345
|
183 cp "$NEW_DIR" $TMPDIR 2>/dev/null
|
jozee@345
|
184 fix_filename ;;
|
jozee@345
|
185 esac
|
jozee@345
|
186 }
|
jozee@345
|
187 # =====ISO=====
|
pankso@286
|
188 burn_iso()
|
pankso@286
|
189 {
|
pankso@286
|
190 xterm -bg gray93 -fg black -geometry 80x16 -title "Wodim" \
|
pankso@286
|
191 -e "wodim -v speed=$SPEED dev=$DEVICE $OPTIONS $ISO_IMAGE; sleep 4"
|
pankso@286
|
192 }
|
jozee@345
|
193 # =====AUDIO=====
|
pankso@286
|
194 # Use -pad to avoid file size error.
|
pankso@286
|
195 burn_audio()
|
pankso@286
|
196 {
|
jozee@345
|
197 UNINSTALLED=""
|
jozee@345
|
198 chk_install "cdrkit"
|
jozee@345
|
199 if [ "$UNINSTALLED" = "" ] ; then
|
jozee@345
|
200 xterm -bg gray93 -fg black -geometry 80x16 -title "Wodim:AUDIO" \
|
jozee@345
|
201 -e " echo \"BURN TYPE SELECTED = $BURN_MODE \"; sleep 1;
|
jozee@345
|
202 wodim -v speed=$SPEED dev=$DEVICE $OPTIONS -pad -dao -audio $TMPDIR/*.wav; sleep 4
|
jozee@345
|
203 "
|
jozee@345
|
204 fi
|
jozee@345
|
205 }
|
jozee@345
|
206 # =====DATA=====
|
jozee@345
|
207 burn_cddata()
|
jozee@345
|
208 {
|
jozee@345
|
209 UNINSTALLED=""
|
jozee@345
|
210 chk_install "cdrkit"
|
jozee@345
|
211 if [ "$UNINSTALLED" = "" ] ; then
|
jozee@345
|
212 xterm -bg gray93 -fg black -geometry 80x16 -title "Wodim:CD DATA" \
|
jozee@345
|
213 -e " echo \"BURN TYPE SELECTED = $BURN_MODE \"; sleep 1;
|
jozee@345
|
214 wodim -v speed=$SPEED dev=$DEVICE $OPTIONS -pad -dao -data $TMPDIR/*; sleep 4
|
jozee@345
|
215 "
|
jozee@345
|
216 fi
|
pankso@286
|
217 }
|
pankso@286
|
218
|
jozee@345
|
219 burn_dvddata()
|
jozee@345
|
220 {
|
jozee@345
|
221 UNINSTALLED=""
|
jozee@345
|
222 chk_install "dvd+rw-tools"
|
jozee@345
|
223 if [ "$UNINSTALLED" = "" ] ; then
|
jozee@345
|
224 xterm -bg gray93 -fg black -geometry 80x16 -title "growisofs:DVD DATA" \
|
jozee@345
|
225 -e " echo \"BURN TYPE SELECTED = $BURN_MODE \"; sleep 1;
|
jozee@345
|
226 # no iso-file available
|
jozee@345
|
227 growisofs -dvd-compat -speed=$SPEED -pad -J -r -f -Z $DEVICE $TMPDIR/*; sleep 4
|
jozee@345
|
228 "
|
jozee@345
|
229 fi
|
jozee@345
|
230 }
|
jozee@345
|
231
|
jozee@345
|
232 # ====VIDEO=====
|
jozee@345
|
233 burn_dvdvideo()
|
jozee@345
|
234 {
|
jozee@345
|
235 UNINSTALLED=""
|
jozee@345
|
236 chk_install "dvd+rw-tools"
|
jozee@345
|
237
|
jozee@345
|
238 # current assumption: compatible dvd-video format
|
jozee@345
|
239 if [ "$UNINSTALLED" = "" ] ; then
|
jozee@345
|
240 xterm -bg gray93 -fg black -geometry 80x16 -title "growisofs:DVD VIDEO" \
|
jozee@345
|
241 -e " echo \"BURN TYPE SELECTED = $BURN_MODE\"; sleep 1;
|
jozee@345
|
242 growisofs -dvd-video -udf -pad -J -r -f -Z $DEVICE -speed=$SPEED $TMPDIR/*; sleep 2
|
jozee@345
|
243 "
|
jozee@345
|
244 fi
|
jozee@345
|
245 }
|
jozee@345
|
246 burn_vcd()
|
jozee@345
|
247 {
|
jozee@345
|
248 UNINSTALLED=""
|
jozee@345
|
249 chk_install "vcdimager"
|
jozee@345
|
250 if [ "$UNINSTALLED" = "" ] ; then
|
jozee@345
|
251 mkdir -p $TMPDIR/vcd
|
jozee@345
|
252 xterm -bg gray93 -fg black -geometry 80x16 -title "vcdimager:VCD" \
|
jozee@345
|
253 -e " echo \"BURN TYPE SELECTED = $BURN_MODE $UNINSTALLED \"; sleep 1;
|
jozee@345
|
254 vcdimager -t vcd2 -l VCD -c $TMPDIR/vcd/vcd.cue -b $TMPDIR/vcd/vcd.bin $TMPDIR/*.mpg; sleep 2;
|
jozee@345
|
255 # cdrdao write --device $DEVICE $TMPDIR/vcd/vcd.cue; sleep 2
|
jozee@345
|
256 wodim -v speed=$SPEED dev=$DEVICE $OPTIONS -pad -dao cuefile=$TMPDIR/vcd/vcd.cue ; sleep 2
|
jozee@345
|
257 "
|
jozee@345
|
258 fi
|
jozee@345
|
259
|
jozee@345
|
260 }
|
jozee@345
|
261
|
jozee@345
|
262 burn_svcd()
|
jozee@345
|
263 {
|
jozee@345
|
264 UNINSTALLED=""
|
jozee@345
|
265 chk_install "vcdimager"
|
jozee@345
|
266 if [ "$UNINSTALLED" = "" ] ; then
|
jozee@345
|
267 mkdir -p $TMPDIR/svcd
|
jozee@345
|
268 xterm -bg gray93 -fg black -geometry 80x16 -title "vcdimager:SVCD" \
|
jozee@345
|
269 -e " echo \"BURN TYPE SELECTED = $BURN_MODE\"
|
jozee@345
|
270 vcdimager -t svcd -l SVCD -c $TMPDIR/svcd/svcd.cue -b $TMPDIR/svcd/svcd.bin $TMPDIR/*.mpg; sleep 2;
|
jozee@345
|
271 # cdrdao write --device $DEVICE $TMPDIR/svcd/svcd.cue; sleep 2;
|
jozee@345
|
272 wodim -v speed=$SPEED dev=$DEVICE $OPTIONS -pad -dao cuefile=$TMPDIR/svcd/svcd.cue ; sleep 2
|
jozee@345
|
273 "
|
jozee@345
|
274 fi
|
jozee@345
|
275 }
|
jozee@345
|
276
|
jozee@345
|
277 # =====CLONE=====
|
jozee@345
|
278 rip_disc()
|
jozee@345
|
279 {
|
jozee@345
|
280 SUGGESTED="cdrkit-isoinfo"
|
jozee@345
|
281 if ! "$CHECKBOX_FOLDER" ; then SAVE_DISC="/tmp/burn-cd" ; fi
|
jozee@345
|
282 if [ -d /var/lib/tazpkg/installed/${SUGGESTED} ]; then
|
jozee@345
|
283 xterm -bg gray93 -fg black -geometry 80x16 -title "dd" \
|
jozee@345
|
284 -e ' echo "RIPPING DISK AT $SAVE_DISC..."
|
jozee@345
|
285 COUNT=`isoinfo -d -i $DEVICE | grep "^Volume size is:" | cut -d " " -f 4`
|
jozee@345
|
286 BLOCK=`isoinfo -d -i $DEVICE | grep "^Logical block size is:" | cut -d " " -f 5`
|
jozee@345
|
287 dd if=$DEVICE of=$SAVE_DISC/image.iso bs=$BLOCK count=$COUNT; sleep 4
|
jozee@345
|
288 sleep 2;'
|
jozee@345
|
289 else
|
jozee@345
|
290 xterm -bg gray93 -fg black -geometry 80x16 -title "dd" \
|
jozee@345
|
291 -e ' echo " Though you dont have the cdrkit-extras package installed, \
|
jozee@345
|
292 you can still rip but it may be slower"
|
jozee@345
|
293 echo -n "would you like to continue (y/N)? : "; read ans
|
jozee@345
|
294 if [ "$ans" = "y" ]; then
|
jozee@345
|
295 echo "RIPPING DISK AT $SAVE_DISC...."
|
jozee@345
|
296 dd if=$DEVICE of=$SAVE_DISC/image.iso;
|
jozee@345
|
297 sleep 2;
|
jozee@345
|
298 fi
|
jozee@345
|
299 '
|
jozee@345
|
300 fi
|
jozee@345
|
301 if ! "$CHECKBOX_FOLDER" ; then
|
jozee@345
|
302 ISO_IMAGE="/tmp/burn-cd/image.iso"
|
jozee@345
|
303 xterm -bg gray93 -fg black -geometry 80x16 -title "dd" \
|
jozee@345
|
304 -e ' echo -e " ---Please insert EMPTY DISK at $DEVICE ---\n ---press ENTER to continue..." && read close;'
|
jozee@345
|
305 burn_iso
|
jozee@345
|
306 fi
|
jozee@345
|
307 }
|
jozee@345
|
308
|
jozee@345
|
309 blank_dvd()
|
jozee@345
|
310 {
|
jozee@345
|
311 xterm -bg gray93 -fg black -geometry 80x16 -title "growisofs:DVD ERASE" \
|
jozee@345
|
312 -e "growisofs -Z $DEVICE=/dev/zero"
|
jozee@345
|
313 }
|
jozee@345
|
314
|
jozee@345
|
315 burn_disc()
|
jozee@345
|
316 {
|
jozee@345
|
317 case "$BURN_MODE" in
|
jozee@345
|
318 audio*)
|
jozee@345
|
319 burn_audio ;;
|
jozee@345
|
320 data-cd*)
|
jozee@345
|
321 burn_cddata ;;
|
jozee@345
|
322 data-dvd*)
|
jozee@345
|
323 burn_dvddata;;
|
jozee@345
|
324 video*)
|
jozee@345
|
325 burn_dvdvideo;;
|
jozee@345
|
326 vcd*)
|
jozee@345
|
327 burn_vcd;;
|
jozee@345
|
328 svcd*)
|
jozee@345
|
329 burn_svcd;;
|
jozee@345
|
330 esac
|
jozee@345
|
331
|
jozee@345
|
332 }
|
pankso@286
|
333 # Main GTK interface
|
pankso@286
|
334 MAIN_DIALOG='
|
pankso@286
|
335 <window title="SliTaz - Burnbox" icon-name="drive-optical">
|
pankso@286
|
336 <vbox>
|
pankso@286
|
337
|
jozee@345
|
338 <notebook labels="General|ISO image or rip| Burn CD/DVD (Audio,Video,Data)">
|
pankso@286
|
339
|
pankso@286
|
340 <vbox>
|
pankso@286
|
341 <frame Information>
|
pankso@286
|
342 <text>
|
pankso@286
|
343 <label>
|
jozee@345
|
344 "Burn CD, Video CD and DVD using Wodim, Vcdimager and Growisofs.
|
jozee@345
|
345
|
jozee@345
|
346 Audio CD use uncompressed WAV (OGG, MP3 are decoded).
|
jozee@345
|
347 VCD/SVCD use MPG files (AVI, FLV, MOV, WMV are decoded).
|
jozee@345
|
348
|
jozee@345
|
349 Before burning, please verify device writer settings or add options if needed."
|
pankso@286
|
350 </label>
|
pankso@286
|
351 </text>
|
pankso@286
|
352 </frame>
|
pankso@286
|
353 <frame Settings>
|
pankso@286
|
354 <hbox>
|
pankso@286
|
355 <text use-markup="true">
|
pankso@286
|
356 <label>"<b>Device: </b>"</label>
|
pankso@286
|
357 </text>
|
pankso@286
|
358 <entry>
|
pankso@286
|
359 <default>/dev/cdrom</default>
|
pankso@286
|
360 <variable>DEVICE</variable>
|
pankso@286
|
361 </entry>
|
pankso@286
|
362 </hbox>
|
pankso@286
|
363 <hbox>
|
pankso@286
|
364 <text use-markup="true">
|
pankso@286
|
365 <label>"<b>Speed: </b>"</label>
|
pankso@286
|
366 </text>
|
pankso@286
|
367 <entry>
|
pankso@286
|
368 <input>cat /proc/sys/dev/cdrom/info | grep "drive speed" | cut -f 3</input>
|
pankso@286
|
369 <variable>SPEED</variable>
|
pankso@286
|
370 </entry>
|
pankso@286
|
371 </hbox>
|
pankso@286
|
372 <hbox>
|
pankso@286
|
373 <text use-markup="true">
|
pankso@286
|
374 <label>"<b>Options: </b>"</label>
|
pankso@286
|
375 </text>
|
pankso@286
|
376 <entry>
|
pankso@286
|
377 <default>-eject -multi</default>
|
pankso@286
|
378 <variable>OPTIONS</variable>
|
pankso@286
|
379 </entry>
|
pankso@286
|
380 <button>
|
pankso@286
|
381 <input file icon="help"></input>
|
pankso@286
|
382 <action>xterm -sb -bg gray93 -fg black -geometry 95x25 -title "wodim help" -e "wodim --help ; echo -e \"----\nENTER to continue...\" && read close"</action>
|
pankso@286
|
383 </button>
|
pankso@286
|
384 </hbox>
|
pankso@286
|
385 </frame>
|
pankso@286
|
386 <frame Blank CD/DVD-RW>
|
pankso@286
|
387 <hbox>
|
pankso@286
|
388 <text use-markup="true">
|
pankso@286
|
389 <label>"<b>Option: </b>"</label>
|
pankso@286
|
390 </text>
|
pankso@286
|
391 <entry>
|
pankso@286
|
392 <variable>BLANK_OPTS</variable>
|
pankso@286
|
393 <default>fast</default>
|
pankso@286
|
394 </entry>
|
pankso@286
|
395 <button>
|
pankso@286
|
396 <input file icon="help"></input>
|
pankso@286
|
397 <action>xterm -bg gray93 -fg black -geometry 80x15 -title "wodim blank=help" -e "wodim blank=help ; echo -e \"----\nENTER to continue...\" && read close"</action>
|
pankso@286
|
398 </button>
|
pankso@286
|
399 <button>
|
pankso@286
|
400 <label>Blank disk</label>
|
pankso@286
|
401 <input file icon="forward"></input>
|
pankso@286
|
402 <action>xterm -bg gray93 -fg black -title "Wodim" -e "wodim -v -blank=$BLANK_OPTS dev=$DEVICE; sleep 2"</action>
|
pankso@286
|
403 </button>
|
pankso@286
|
404 </hbox>
|
pankso@286
|
405 </frame>
|
pankso@286
|
406 </vbox>
|
pankso@286
|
407
|
pankso@286
|
408 <vbox>
|
jozee@345
|
409 <frame Select ISO and burn>
|
pankso@286
|
410
|
pankso@286
|
411 <text>
|
pankso@286
|
412 <label>
|
pankso@36
|
413 "
|
pankso@286
|
414 You can create or manipulate ISO images with ISO Master utility
|
pankso@286
|
415 or use genisoimage from the command line.
|
pankso@36
|
416 "
|
pankso@286
|
417 </label>
|
pankso@286
|
418 </text>
|
pankso@286
|
419
|
pankso@286
|
420 <hbox>
|
pankso@286
|
421 <text use-markup="true">
|
pankso@286
|
422 <label>"<b>ISO path:</b>"</label>
|
pankso@286
|
423 </text>
|
pankso@286
|
424 <entry>
|
pankso@286
|
425 <variable>ISO_IMAGE</variable>
|
pankso@286
|
426 </entry>
|
pankso@286
|
427 <button>
|
pankso@286
|
428 <input file stock="gtk-cdrom"></input>
|
pankso@286
|
429 <action type="fileselect">ISO_IMAGE</action>
|
pankso@286
|
430 </button>
|
pankso@286
|
431 </hbox>'
|
pankso@286
|
432 # Burn iso button.
|
pankso@286
|
433 MAIN_DIALOG=${MAIN_DIALOG}"
|
pankso@286
|
434 <hbox>
|
pankso@286
|
435 <button>
|
pankso@286
|
436 <label>Burn disk</label>
|
pankso@286
|
437 <input file icon=\"forward\"></input>
|
pankso@286
|
438 <action>$0 burn_iso</action>
|
pankso@286
|
439 </button>
|
pankso@286
|
440 </hbox>"
|
jozee@345
|
441 # Backup CD
|
jozee@345
|
442 MAIN_DIALOG=${MAIN_DIALOG}'
|
jozee@345
|
443 </frame>
|
jozee@345
|
444 <frame Select CD/DVD-RW and rip>
|
jozee@345
|
445 <text>
|
jozee@345
|
446 <label>
|
paul@358
|
447 "You can also clone or rip a CD/DVD. Just specify the path and click rip disk or use dd from the command line. Input is taken from the DEVICE settings
|
jozee@345
|
448 "
|
jozee@345
|
449 </label>
|
jozee@345
|
450 </text>
|
jozee@345
|
451 <checkbox>
|
jozee@345
|
452 <label>Save output in folder (Unselect to backup on disc) </label>
|
jozee@345
|
453 <variable>CHECKBOX_FOLDER</variable>
|
jozee@345
|
454 <default>true</default>
|
jozee@345
|
455 <action>if true enable:SAVE_DISC</action>
|
jozee@345
|
456 <action>if true enable:OPENBUTTON</action>
|
jozee@345
|
457 <action>if false disable:SAVE_DISC</action>
|
jozee@345
|
458 <action>if false disable:OPENBUTTON</action>
|
jozee@345
|
459 </checkbox>
|
jozee@345
|
460 <hbox>
|
jozee@345
|
461 <text use-markup="true">
|
jozee@345
|
462 <label>"<b>Output CD/DVD rip at:</b>"</label>
|
jozee@345
|
463 </text>
|
jozee@345
|
464 <entry accept="directory">
|
jozee@345
|
465 <label>Select a folder to save cloned disk to</label>
|
jozee@345
|
466 <variable>SAVE_DISC</variable>
|
jozee@345
|
467 </entry>
|
jozee@345
|
468 <button>
|
jozee@345
|
469 <input file stock="gtk-open"></input>
|
jozee@345
|
470 <variable>OPENBUTTON</variable>
|
jozee@345
|
471 <action type="fileselect">SAVE_DISC</action>
|
jozee@345
|
472 </button>
|
jozee@345
|
473 </hbox>
|
jozee@345
|
474 '
|
jozee@345
|
475 # Burn backup button.
|
jozee@345
|
476 MAIN_DIALOG=${MAIN_DIALOG}"
|
jozee@345
|
477 <hbox>
|
jozee@345
|
478 <button>
|
paul@358
|
479 <label>Rip disk</label>
|
jozee@345
|
480 <input file icon=\"forward\"></input>
|
jozee@345
|
481 <action>$0 rip_disc</action>
|
jozee@345
|
482 </button>
|
jozee@345
|
483 </hbox>"
|
pankso@286
|
484 MAIN_DIALOG=${MAIN_DIALOG}'
|
pankso@286
|
485 </frame>
|
pankso@286
|
486
|
pankso@286
|
487 </vbox>
|
pankso@286
|
488 <vbox>
|
pankso@286
|
489 <tree icon_name="audio-x-generic">
|
pankso@286
|
490 <width>500</width><height>200</height>
|
pankso@286
|
491 <variable>TRACKS_LIST</variable>
|
jozee@345
|
492 <label>Track name (Double-click to remove a track)</label>
|
jozee@345
|
493 <input>ls -1 /tmp/burn-cd</input>
|
jozee@345
|
494 <action>rm "/tmp/burn-cd/$TRACKS_LIST"</action>
|
pankso@286
|
495 <action>refresh:TRACKS_LIST</action>
|
pankso@286
|
496 <action>refresh:TRACKS_SIZE</action>
|
pankso@286
|
497 </tree>'
|
jozee@345
|
498 # Select burn audio-cd, data-cd, dvd-video or vcd/svcd
|
jozee@345
|
499 MAIN_DIALOG=${MAIN_DIALOG}'
|
jozee@345
|
500 <frame>
|
jozee@345
|
501 <hbox>
|
jozee@345
|
502 <text>
|
jozee@345
|
503 <label> Burn type: </label>
|
jozee@345
|
504 </text>
|
jozee@345
|
505 <combobox>'
|
jozee@345
|
506 tmp2="${MAIN_DIALOG}"
|
jozee@345
|
507 for i in audio-cd data-cd data-dvd video-dvd vcd svcd; do
|
jozee@345
|
508 [ "$i" = "$BURN_MODE" ] || tmp2="$tmp2<item>$i</item>"
|
jozee@345
|
509 done
|
jozee@345
|
510 tmp3='
|
jozee@345
|
511 <variable>BURN_MODE</variable>
|
jozee@345
|
512 </combobox>
|
jozee@345
|
513 <checkbox>
|
jozee@345
|
514 <label> Enable decoding video</label>
|
jozee@345
|
515 <variable>CHECKBOX_DECODE</variable>
|
jozee@345
|
516 <default>true</default>
|
jozee@345
|
517 </checkbox>
|
jozee@345
|
518 </hbox>
|
jozee@345
|
519 '
|
jozee@345
|
520 MAIN_DIALOG="$tmp2$tmp3"
|
pankso@286
|
521 # Select, add and burn audio buttons.
|
pankso@286
|
522 MAIN_DIALOG=${MAIN_DIALOG}"
|
pankso@286
|
523 <hbox>
|
pankso@286
|
524 <text>
|
jozee@345
|
525 <label> File: </label>
|
pankso@286
|
526 </text>
|
pankso@286
|
527 <entry accept=\"filename\">
|
jozee@345
|
528 <label>Select an Audio/Video/data track</label>
|
pankso@286
|
529 <variable>NEW_TRACK</variable>
|
pankso@286
|
530 </entry>
|
pankso@286
|
531 <button>
|
pankso@286
|
532 <input file stock=\"gtk-open\"></input>
|
pankso@286
|
533 <action type=\"fileselect\">NEW_TRACK</action>
|
pankso@286
|
534 </button>
|
pankso@286
|
535 <button>
|
pankso@286
|
536 <label>Add</label>
|
pankso@286
|
537 <input file stock=\"gtk-add\"></input>
|
jozee@345
|
538 <action>$0 copy_file</action>
|
pankso@286
|
539 <action>refresh:TRACKS_LIST</action>
|
jozee@345
|
540 <action>refresh:TRACKS_SIZE</action>
|
pankso@286
|
541 </button>
|
pankso@286
|
542 </hbox>
|
pankso@286
|
543 <hbox>
|
pankso@286
|
544 <text>
|
jozee@345
|
545 <label> Folder:</label>
|
pankso@286
|
546 </text>
|
pankso@286
|
547 <entry accept=\"directory\">
|
jozee@345
|
548 <label>Select an Audio/Video/Data track</label>
|
pankso@286
|
549 <variable>NEW_DIR</variable>
|
pankso@286
|
550 </entry>
|
pankso@286
|
551 <button>
|
pankso@286
|
552 <input file stock=\"gtk-open\"></input>
|
pankso@286
|
553 <action type=\"fileselect\">NEW_DIR</action>
|
pankso@286
|
554 </button>
|
pankso@286
|
555 <button>
|
pankso@286
|
556 <label>Add</label>
|
pankso@286
|
557 <input file stock=\"gtk-add\"></input>
|
jozee@345
|
558 <action>$0 copy_dir</action>
|
pankso@286
|
559 <action>refresh:TRACKS_LIST</action>
|
jozee@345
|
560
|
pankso@286
|
561 <action>refresh:TRACKS_SIZE</action>
|
pankso@286
|
562 </button>
|
jozee@345
|
563 </hbox>"
|
jozee@345
|
564
|
jozee@345
|
565 MAIN_DIALOG=${MAIN_DIALOG}"
|
pankso@286
|
566 <hbox>
|
pankso@286
|
567 <text>
|
pankso@286
|
568 <variable>TRACKS_SIZE</variable>
|
pankso@286
|
569 <input>$0 audio_cd_stats</input>
|
pankso@286
|
570 </text>
|
pankso@286
|
571 <button>
|
pankso@286
|
572 <label>Clean</label>
|
pankso@286
|
573 <input file stock=\"gtk-clear\"></input>
|
jozee@345
|
574 <action>rm -rf $TMPDIR/*</action>
|
pankso@286
|
575 <action>refresh:TRACKS_LIST</action>
|
pankso@286
|
576 <action>refresh:TRACKS_SIZE</action>
|
pankso@286
|
577 <action>clear:NEW_TRACK</action>
|
pankso@286
|
578 <action>clear:NEW_DIR</action>
|
pankso@286
|
579 </button>
|
pankso@286
|
580 <button>
|
pankso@286
|
581 <label>Burn disk</label>
|
pankso@286
|
582 <input file icon=\"forward\"></input>
|
jozee@345
|
583 <action>$0 burn_disc</action>
|
pankso@286
|
584 </button>
|
pankso@286
|
585 </hbox>
|
jozee@345
|
586 </frame>
|
jozee@345
|
587 </vbox> "
|
jozee@345
|
588 #
|
jozee@345
|
589 #
|
jozee@345
|
590 # tmp3=
|
pankso@286
|
591 export MAIN_DIALOG=${MAIN_DIALOG}'
|
pankso@286
|
592
|
pankso@286
|
593 </notebook>
|
pankso@286
|
594
|
pankso@286
|
595 <hbox>
|
pankso@286
|
596 <button>
|
pankso@286
|
597 <label>Exit</label>
|
pankso@286
|
598 <input file icon="exit"></input>
|
pankso@286
|
599 <action type="exit">Exit</action>
|
pankso@286
|
600 </button>
|
pankso@286
|
601 </hbox>
|
pankso@286
|
602
|
pankso@286
|
603 </vbox>
|
pankso@38
|
604 </window>
|
pankso@31
|
605 '
|
pankso@31
|
606
|
pankso@286
|
607 # Script can be called with an arg to exec a function.
|
pankso@286
|
608 if [ -n "$1" ]; then
|
pankso@286
|
609 $1
|
pankso@286
|
610 else
|
jozee@345
|
611 mkdir -p $TMPDIR
|
pankso@286
|
612 gtkdialog --center --program=MAIN_DIALOG >/dev/null
|
jozee@345
|
613 rm -rf $TMPDIR
|
pankso@286
|
614 fi
|
pankso@31
|
615
|
pankso@31
|
616 exit 0
|