slitaz-tools annotate tinyutils/burnbox @ rev 358

burnbox: Tiny edit
author Paul Issott <paul@slitaz.org>
date Mon May 18 20:23:50 2009 +0000 (2009-05-18)
parents 5173d70b4b1b
children 6d5c9793798c
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