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
|