slitaz-tools annotate tinyutils/burnbox @ rev 394

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