author | yippi |
Mon, 27 Sep 2010 21:07:51 +0000 | |
changeset 20108 | 51df67ca9307 |
parent 13731 | 755d2a145e28 |
permissions | -rw-r--r-- |
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
1 |
--- nautilus-cd-burner-2.23.90/src/make-iso.c.orig 2008-09-22 18:22:41.902088000 +0800 |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
2 |
+++ nautilus-cd-burner-2.23.90/src/make-iso.c 2008-09-22 18:17:42.287745000 +0800 |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
3 |
@@ -833,6 +833,69 @@ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
4 |
return TRUE; |
13426
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
5 |
} |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
6 |
|
13494
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
7 |
+static gboolean |
13426
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
8 |
+cdda2wav_stderr_line (NautilusBurnProcess *process, |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
9 |
+ const char *line, |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
10 |
+ gpointer data) |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
11 |
+{ |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
12 |
+ NautilusBurnIso *iso = data; |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
13 |
+ int track, percent,start_n; |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
14 |
+ guint64 sector, sectors; |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
15 |
+ |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
16 |
+ if (line && iso->priv->debug) { |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
17 |
+ g_print ("cdda2wav stderr: %s", line); |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
18 |
+ } |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
19 |
+ |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
20 |
+ |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
21 |
+ if (sscanf (line, "%d.(%d),", &track, §or) == 2 && !(g_strrstr (line, ":"))) { |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
22 |
+ gchar** line_array = g_strsplit (line, ",", 5); |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
23 |
+ int i = 0; |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
24 |
+ while (line_array[i]) { |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
25 |
+ if (sscanf (line_array[i], "%d.(%d)", &track, §or) == 2) { |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
26 |
+ process->rates = g_list_append (process->rates, GINT_TO_POINTER (sector)); |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
27 |
+ } |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
28 |
+ i++; |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
29 |
+ } |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
30 |
+ g_strfreev(line_array); |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
31 |
+ } |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
32 |
+ |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
33 |
+ if (sscanf (line, " lead-out(%d)", §ors) == 1) { |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
34 |
+ iso->priv->iso_size = sectors; |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
35 |
+ process->rates = g_list_append (process->rates, GINT_TO_POINTER (sectors)); |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
36 |
+ } |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
37 |
+ |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
38 |
+ if (sscanf (line, "100%% track %d \'", &start_n) == 1) { |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
39 |
+ process->start_num = (gint64)start_n; |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
40 |
+ } |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
41 |
+ |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
42 |
+ if (sscanf (line, "%d%%\\", &percent) == 1) { |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
43 |
+ gdouble fraction = 0.0; |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
44 |
+ |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
45 |
+ gint readed, reading, num; |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
46 |
+ if (percent == 100) |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
47 |
+ num = process->start_num - 1; |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
48 |
+ else |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
49 |
+ num = process->start_num; |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
50 |
+ |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
51 |
+ readed = GPOINTER_TO_INT (g_list_nth_data (process->rates, num)); |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
52 |
+ reading = GPOINTER_TO_INT (g_list_nth_data (process->rates, num + 1)) - readed; |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
53 |
+ fraction = ((gdouble)percent/100 *reading + readed) / (int)iso->priv->iso_size; |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
54 |
+ |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
55 |
+ g_signal_emit (G_OBJECT (iso), nautilus_burn_iso_table_signals [PROGRESS_CHANGED], 0, fraction, (long)(-1)); |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
56 |
+ } |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
57 |
+ |
13494
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
58 |
+ if (strstr (line, "I/O error.")) { |
13426
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
59 |
+ process->result = NAUTILUS_BURN_ISO_RESULT_ERROR; |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
60 |
+ process_error (iso, line); |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
61 |
+ } |
13494
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
62 |
+ |
13426
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
63 |
+ if (process->start_num == g_list_length (process->rates) - 1){ |
13494
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
64 |
+ process->result = NAUTILUS_BURN_ISO_RESULT_FINISHED; |
13426
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
65 |
+ } |
13494
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
66 |
+ |
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
67 |
+ return TRUE; |
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
68 |
+} |
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
69 |
+ |
13494
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
70 |
/* this is an ugly hack until utf8/iconv support is added into upstream mkisofs */ |
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
71 |
static gboolean |
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
72 |
ncb_mkisofs_supports_utf8 (void) |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
73 |
@@ -1359,21 +1422,51 @@ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
74 |
GError *sub_error; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
75 |
GPtrArray *argv; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
76 |
guint64 iso_size; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
77 |
- |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
78 |
+ gchar *cdrdao = NULL; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
79 |
+ gchar *cdrecord = NULL; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
80 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
81 |
media_type = nautilus_burn_drive_get_media_type_full (drive, |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
82 |
&is_rewritable, |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
83 |
&is_blank, |
13426
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
84 |
&has_data, |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
85 |
&_has_audio); |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
86 |
if (_has_audio) { |
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
87 |
- device_arg = g_strdup_printf ("%s", nautilus_burn_drive_get_device (drive)); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
88 |
+ if (cdrdao = g_find_program_in_path ("cdrdao")) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
89 |
+ device_arg = g_strdup_printf ("%s", nautilus_burn_drive_get_device (drive)); |
13426
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
90 |
|
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
91 |
- argv = g_ptr_array_new (); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
92 |
- g_ptr_array_add (argv, "cdrdao"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
93 |
- g_ptr_array_add (argv, "disk-info"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
94 |
- g_ptr_array_add (argv, "--device"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
95 |
- g_ptr_array_add (argv, device_arg); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
96 |
- g_ptr_array_add (argv, NULL); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
97 |
+ argv = g_ptr_array_new (); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
98 |
+ g_ptr_array_add (argv, "cdrdao"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
99 |
+ g_ptr_array_add (argv, "disk-info"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
100 |
+ g_ptr_array_add (argv, "--device"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
101 |
+ g_ptr_array_add (argv, device_arg); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
102 |
+ g_ptr_array_add (argv, NULL); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
103 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
104 |
+ g_free (cdrdao); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
105 |
+ } else if (cdrecord = g_find_program_in_path ("cdrecord")) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
106 |
+ device_arg = g_strdup_printf ("-dev=%s", nautilus_burn_drive_get_device (drive)); |
13494
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
107 |
+ |
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
108 |
+ argv = g_ptr_array_new (); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
109 |
+ g_ptr_array_add (argv, "cdrecord"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
110 |
+ g_ptr_array_add (argv, device_arg); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
111 |
+ g_ptr_array_add (argv, "-minfo"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
112 |
+ g_ptr_array_add (argv, NULL); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
113 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
114 |
+ g_free(cdrecord); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
115 |
+ } else { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
116 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
117 |
+ gchar *message = g_strdup_printf (_("No cdrdao and cdrecord were found!")); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
118 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
119 |
+ g_set_error (error, |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
120 |
+ NAUTILUS_BURN_ISO_ERROR, |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
121 |
+ NAUTILUS_BURN_ISO_ERROR_GENERAL, |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
122 |
+ "%s", message); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
123 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
124 |
+ g_free (message); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
125 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
126 |
+ ret = FALSE; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
127 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
128 |
+ goto cleanup; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
129 |
+ } |
13426
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
130 |
|
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
131 |
} else { |
13494
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
132 |
device_arg = g_strdup_printf ("-dev=%s", nautilus_burn_drive_get_device (drive)); |
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
133 |
@@ -1430,8 +1523,10 @@ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
134 |
g_ptr_array_free (argv, TRUE); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
135 |
argv = NULL; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
136 |
} |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
137 |
- g_free (stderr_data); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
138 |
- g_free (device_arg); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
139 |
+ if (stderr_data) |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
140 |
+ g_free (stderr_data); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
141 |
+ if (device_arg) |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
142 |
+ g_free (device_arg); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
143 |
|
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
144 |
if (has_audio != NULL) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
145 |
*has_audio = _has_audio; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
146 |
@@ -1474,8 +1569,10 @@ |
13436 | 147 |
int res; |
148 |
gboolean has_audio; |
|
149 |
char *filename_arg; |
|
150 |
- char *toc_filename_arg; |
|
151 |
+ char *toc_filename_arg = NULL; |
|
152 |
char *dev_arg; |
|
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
153 |
+ gchar *cdrdao = NULL; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
154 |
+ gchar *cdrecord = NULL; |
13436 | 155 |
|
156 |
if (toc_filename) { |
|
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
157 |
*toc_filename = NULL; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
158 |
@@ -1514,8 +1611,6 @@ |
13426
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
159 |
size = 0; |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
160 |
} |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
161 |
|
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
162 |
- g_free (dirname); |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
163 |
- |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
164 |
if (iso_size > (guint64)size) { |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
165 |
char *message; |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
166 |
|
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
167 |
@@ -1534,26 +1629,84 @@ |
13426
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
168 |
|
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
169 |
filename_arg = NULL; |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
170 |
dev_arg = NULL; |
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
171 |
- toc_filename_arg = g_strdup_printf ("%s.toc", filename); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
172 |
- if (toc_filename) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
173 |
- *toc_filename = g_strdup (toc_filename_arg); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
174 |
- } |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
175 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
176 |
+ if (cdrdao = g_find_program_in_path ("cdrdao")) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
177 |
+ toc_filename_arg = g_strdup_printf ("%s.toc", filename); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
178 |
+ if (toc_filename) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
179 |
+ *toc_filename = g_strdup (toc_filename_arg); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
180 |
+ } |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
181 |
+ } |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
182 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
183 |
if (has_audio) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
184 |
- argv = g_ptr_array_new (); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
185 |
- g_ptr_array_add (argv, "cdrdao"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
186 |
- g_ptr_array_add (argv, "read-cd"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
187 |
- g_ptr_array_add (argv, "--read-raw"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
188 |
- g_ptr_array_add (argv, "--datafile"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
189 |
- g_ptr_array_add (argv, (char *)filename); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
190 |
- g_ptr_array_add (argv, "--device"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
191 |
- g_ptr_array_add (argv, (char *)nautilus_burn_drive_get_device (drive)); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
192 |
- g_ptr_array_add (argv, "-v"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
193 |
- g_ptr_array_add (argv, "2"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
194 |
- g_ptr_array_add (argv, (char *)toc_filename_arg); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
195 |
- g_ptr_array_add (argv, NULL); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
196 |
+ if (cdrdao) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
197 |
+ argv = g_ptr_array_new (); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
198 |
+ g_ptr_array_add (argv, "cdrdao"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
199 |
+ g_ptr_array_add (argv, "read-cd"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
200 |
+ g_ptr_array_add (argv, "--read-raw"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
201 |
+ g_ptr_array_add (argv, "--datafile"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
202 |
+ g_ptr_array_add (argv, (char *)filename); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
203 |
+ g_ptr_array_add (argv, "--device"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
204 |
+ g_ptr_array_add (argv, (char *)nautilus_burn_drive_get_device (drive)); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
205 |
+ g_ptr_array_add (argv, "-v"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
206 |
+ g_ptr_array_add (argv, "2"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
207 |
+ g_ptr_array_add (argv, (char *)toc_filename_arg); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
208 |
+ g_ptr_array_add (argv, NULL); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
209 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
210 |
+ out_watch_func = NULL; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
211 |
+ err_watch_func = cdrdao_stderr_line; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
212 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
213 |
+ g_free (cdrdao); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
214 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
215 |
+ } else if (cdrecord = g_find_program_in_path ("cdrecord")) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
216 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
217 |
+ dev_arg = g_strdup_printf ("dev=%s", nautilus_burn_drive_get_device (drive)); |
13426
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
218 |
+ |
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
219 |
+ char *template = g_strdup_printf ("audio-%s-XXXXXX", g_get_user_name ()); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
220 |
+ char *template_dir = g_build_filename (dirname, template, NULL); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
221 |
+ g_free (template); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
222 |
+ char *temp_dir = mkdtemp (template_dir); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
223 |
+ toc_filename_arg = g_strdup_printf("%s/audio.wav", temp_dir); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
224 |
+ g_free (temp_dir); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
225 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
226 |
+ if (toc_filename) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
227 |
+ *toc_filename = g_strdup (toc_filename_arg); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
228 |
+ } |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
229 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
230 |
+ if (iso->priv->filename) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
231 |
+ g_free (iso->priv->filename); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
232 |
+ iso->priv->filename = g_strdup (toc_filename_arg); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
233 |
+ } |
13426
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
234 |
+ |
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
235 |
+ argv = g_ptr_array_new (); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
236 |
+ g_ptr_array_add (argv, "cdda2wav"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
237 |
+ g_ptr_array_add (argv, (char *)dev_arg); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
238 |
+ g_ptr_array_add (argv, "-vall"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
239 |
+ g_ptr_array_add (argv, "cddb=0"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
240 |
+ g_ptr_array_add (argv, "-paranoia"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
241 |
+ g_ptr_array_add (argv, "paraopts=minoverlap=10"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
242 |
+ g_ptr_array_add (argv, "-B"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
243 |
+ g_ptr_array_add (argv, "-Owav"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
244 |
+ g_ptr_array_add (argv, (char *)toc_filename_arg); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
245 |
+ g_ptr_array_add (argv, NULL); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
246 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
247 |
+ out_watch_func = NULL; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
248 |
+ err_watch_func = cdda2wav_stderr_line; |
13426
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
249 |
+ |
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
250 |
+ g_free (cdrecord); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
251 |
+ } else { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
252 |
+ gchar *message = g_strdup_printf (_("No cdrdao and cdrecord were found !\n")); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
253 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
254 |
+ g_set_error (error, |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
255 |
+ NAUTILUS_BURN_ISO_ERROR, |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
256 |
+ NAUTILUS_BURN_ISO_ERROR_GENERAL, |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
257 |
+ "%s", message); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
258 |
+ g_free (message); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
259 |
|
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
260 |
- out_watch_func = NULL; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
261 |
- err_watch_func = cdrdao_stderr_line; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
262 |
+ result = NAUTILUS_BURN_ISO_RESULT_ERROR; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
263 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
264 |
+ goto cleanup; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
265 |
+ |
13426
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
266 |
+ } |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
267 |
} else { |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
268 |
|
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
269 |
filename_arg = g_strdup_printf ("f=%s", filename); |
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
270 |
@@ -1578,7 +1731,9 @@ |
13426
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
271 |
g_ptr_array_free (argv, TRUE); |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
272 |
g_free (dev_arg); |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
273 |
g_free (filename_arg); |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
274 |
- g_free (toc_filename_arg); |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
275 |
+ g_free (dirname); |
13436 | 276 |
+ if (toc_filename_arg) |
277 |
+ g_free (toc_filename_arg); |
|
13426
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
278 |
|
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
279 |
cleanup: |
7bb2b4660b64
* base-specs/nautilus-cd-burner.spec: Add patch -04-cdda2wav.diff and
jyu_mit
parents:
diff
changeset
|
280 |
|
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
281 |
--- nautilus-cd-burner-2.23.90/src/nautilus-burn-recorder.c.orig 2008-09-22 18:23:06.038442000 +0800 |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
282 |
+++ nautilus-cd-burner-2.23.90/src/nautilus-burn-recorder.c 2008-09-22 18:18:22.863586000 +0800 |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
283 |
@@ -1306,6 +1306,8 @@ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
284 |
char *speed_str = NULL; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
285 |
char *dev_str = NULL; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
286 |
char *cue_str = NULL; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
287 |
+ gchar *cdrdao = NULL; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
288 |
+ gchar *cdrecord = NULL; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
289 |
GList *l; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
290 |
NautilusBurnProcessLineFunc out_line_func; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
291 |
NautilusBurnProcessLineFunc err_line_func; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
292 |
@@ -1347,33 +1349,94 @@ |
13494
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
293 |
* cdrecord supports only integer numbers for the speed. */ |
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
294 |
speed = (int) NAUTILUS_BURN_DRIVE_CD_SPEED (speed); |
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
295 |
|
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
296 |
- if (track->type == NAUTILUS_BURN_RECORDER_TRACK_TYPE_CUE) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
297 |
- argv = g_ptr_array_new (); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
298 |
- g_ptr_array_add (argv, "cdrdao"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
299 |
- g_ptr_array_add (argv, "write"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
300 |
- g_ptr_array_add (argv, "--device"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
301 |
- g_ptr_array_add (argv, (char *)nautilus_burn_drive_get_device (drive)); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
302 |
- g_ptr_array_add (argv, "--speed"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
303 |
- speed_str = g_strdup_printf ("%d", speed); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
304 |
- g_ptr_array_add (argv, speed_str); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
305 |
- |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
306 |
- if (flags & NAUTILUS_BURN_RECORDER_WRITE_DUMMY_WRITE) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
307 |
- g_ptr_array_add (argv, "--simulate"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
308 |
- } |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
309 |
- if (flags & NAUTILUS_BURN_RECORDER_WRITE_EJECT) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
310 |
- g_ptr_array_add (argv, "--eject"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
311 |
- } |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
312 |
- if (flags & NAUTILUS_BURN_RECORDER_WRITE_OVERBURN) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
313 |
- g_ptr_array_add (argv, "--overburn"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
314 |
- } |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
315 |
- g_ptr_array_add (argv, "-v"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
316 |
- g_ptr_array_add (argv, "2"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
317 |
- |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
318 |
- g_ptr_array_add (argv, track->contents.cue.filename); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
319 |
- g_ptr_array_add (argv, NULL); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
320 |
+ gchar *dir_name = NULL; |
13494
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
321 |
+ int i = 0; |
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
322 |
+ GList *list = NULL; |
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
323 |
|
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
324 |
- out_line_func = NULL; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
325 |
- err_line_func = cdrdao_stderr_line; |
13494
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
326 |
+ if (track->type == NAUTILUS_BURN_RECORDER_TRACK_TYPE_CUE) { |
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
327 |
+ if (cdrdao = g_find_program_in_path ("cdrdao")) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
328 |
+ argv = g_ptr_array_new (); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
329 |
+ g_ptr_array_add (argv, "cdrdao"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
330 |
+ g_ptr_array_add (argv, "write"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
331 |
+ g_ptr_array_add (argv, "--device"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
332 |
+ g_ptr_array_add (argv, (char *)nautilus_burn_drive_get_device (drive)); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
333 |
+ g_ptr_array_add (argv, "--speed"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
334 |
+ speed_str = g_strdup_printf ("%d", speed); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
335 |
+ g_ptr_array_add (argv, speed_str); |
13494
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
336 |
+ |
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
337 |
+ if (flags & NAUTILUS_BURN_RECORDER_WRITE_DUMMY_WRITE) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
338 |
+ g_ptr_array_add (argv, "--simulate"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
339 |
+ } |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
340 |
+ if (flags & NAUTILUS_BURN_RECORDER_WRITE_EJECT) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
341 |
+ g_ptr_array_add (argv, "--eject"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
342 |
+ } |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
343 |
+ if (flags & NAUTILUS_BURN_RECORDER_WRITE_OVERBURN) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
344 |
+ g_ptr_array_add (argv, "--overburn"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
345 |
+ } |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
346 |
+ g_ptr_array_add (argv, "-v"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
347 |
+ g_ptr_array_add (argv, "2"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
348 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
349 |
+ g_ptr_array_add (argv, track->contents.cue.filename); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
350 |
+ g_ptr_array_add (argv, NULL); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
351 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
352 |
+ out_line_func = NULL; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
353 |
+ err_line_func = cdrdao_stderr_line; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
354 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
355 |
+ g_free (cdrdao); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
356 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
357 |
+ } else if (cdrecord = g_find_program_in_path ("cdrecord")) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
358 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
359 |
+ GDir *dir; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
360 |
+ dev_str = g_strdup_printf ("dev=%s", nautilus_burn_drive_get_device (drive)); |
13494
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
361 |
+ |
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
362 |
+ argv = g_ptr_array_new (); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
363 |
+ g_ptr_array_add (argv, "cdrecord"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
364 |
+ g_ptr_array_add (argv, dev_str); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
365 |
+ g_ptr_array_add (argv, "-v"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
366 |
+ g_ptr_array_add (argv, "-dao"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
367 |
+ g_ptr_array_add (argv, "-useinfo"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
368 |
+ g_ptr_array_add (argv, "-text"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
369 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
370 |
+ if (flags & NAUTILUS_BURN_RECORDER_WRITE_DUMMY_WRITE) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
371 |
+ g_ptr_array_add (argv, "-dummy"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
372 |
+ } |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
373 |
+ if (flags & NAUTILUS_BURN_RECORDER_WRITE_EJECT) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
374 |
+ g_ptr_array_add (argv, "-eject"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
375 |
+ } |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
376 |
+ if (flags & NAUTILUS_BURN_RECORDER_WRITE_OVERBURN) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
377 |
+ g_ptr_array_add (argv, "-overburn"); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
378 |
+ } |
13494
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
379 |
+ |
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
380 |
+ dir_name = g_path_get_dirname (track->contents.cue.filename); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
381 |
+ dir = g_dir_open (dir_name, 0, NULL); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
382 |
+ if (dir) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
383 |
+ const char *name; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
384 |
+ while ((name = g_dir_read_name (dir))) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
385 |
+ if (g_str_has_suffix (name, ".wav")) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
386 |
+ list = g_list_append(list, g_build_filename (dir_name, name, NULL)); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
387 |
+ g_ptr_array_add (argv, (char *)(g_list_nth_data(list, i++))); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
388 |
+ } |
13494
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
389 |
+ } |
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
390 |
+ g_dir_close (dir); |
13494
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
391 |
+ } |
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
392 |
+ g_ptr_array_add (argv, NULL); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
393 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
394 |
+ out_line_func = cdrecord_stdout_line; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
395 |
+ err_line_func = cdrecord_stderr_line; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
396 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
397 |
+ } else { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
398 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
399 |
+ gchar *message = g_strdup_printf (_("No cdrdao and cdrecord were found !\n")); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
400 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
401 |
+ g_set_error (error, |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
402 |
+ NAUTILUS_BURN_RECORDER_ERROR, |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
403 |
+ NAUTILUS_BURN_RECORDER_ERROR_GENERAL, |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
404 |
+ "%s", message); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
405 |
+ g_free (message); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
406 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
407 |
+ result = NAUTILUS_BURN_RECORDER_RESULT_ERROR; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
408 |
+ return result; |
13494
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
409 |
+ } |
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
410 |
} else { |
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
411 |
argv = g_ptr_array_new (); |
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
412 |
g_ptr_array_add (argv, "cdrecord"); |
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
413 |
@@ -1454,6 +1517,18 @@ |
13494
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
414 |
g_free (cue_str); |
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
415 |
g_free (speed_str); |
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
416 |
g_free (dev_str); |
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
417 |
+ |
13731
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
418 |
+ if (!cdrdao && cdrecord) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
419 |
+ g_free (dir_name); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
420 |
+ while (list) { |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
421 |
+ g_free (list->data); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
422 |
+ list = list->next; |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
423 |
+ } |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
424 |
+ g_list_free (list); |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
425 |
+ |
755d2a145e28
* base-specs/nautilus-cd-burner.spec: Reenable patch 4.
jyu_mit
parents:
13528
diff
changeset
|
426 |
+ g_free (cdrecord); |
13494
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
427 |
+ } |
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
428 |
+ |
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
429 |
g_ptr_array_free (argv, TRUE); |
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
430 |
argv = NULL; |
dd3231d12651
*patches/nautilus-cd-burner-04-cdda2wav.diff: Add the switch between cdrdao and cdrecord.
jyu_mit
parents:
13436
diff
changeset
|
431 |