patches/nautilus-cd-burner-04-cdda2wav.diff
author yippi
Mon, 27 Sep 2010 21:07:51 +0000
changeset 20108 51df67ca9307
parent 13731 755d2a145e28
permissions -rw-r--r--
I had these modules listed as being owned by me, but they are really owned by wangke, correcting.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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, &sector) == 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, &sector) == 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)", &sectors) == 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
ca5e68491e88 * patches/nautilus-cd-burner-04-cdda2wav.diff:
jyu_mit
parents: 13426
diff changeset
   147
         int                   res;
ca5e68491e88 * patches/nautilus-cd-burner-04-cdda2wav.diff:
jyu_mit
parents: 13426
diff changeset
   148
         gboolean              has_audio;
ca5e68491e88 * patches/nautilus-cd-burner-04-cdda2wav.diff:
jyu_mit
parents: 13426
diff changeset
   149
         char                 *filename_arg;
ca5e68491e88 * patches/nautilus-cd-burner-04-cdda2wav.diff:
jyu_mit
parents: 13426
diff changeset
   150
-        char                 *toc_filename_arg;
ca5e68491e88 * patches/nautilus-cd-burner-04-cdda2wav.diff:
jyu_mit
parents: 13426
diff changeset
   151
+        char                 *toc_filename_arg = NULL;
ca5e68491e88 * patches/nautilus-cd-burner-04-cdda2wav.diff:
jyu_mit
parents: 13426
diff changeset
   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
ca5e68491e88 * patches/nautilus-cd-burner-04-cdda2wav.diff:
jyu_mit
parents: 13426
diff changeset
   155
 
ca5e68491e88 * patches/nautilus-cd-burner-04-cdda2wav.diff:
jyu_mit
parents: 13426
diff changeset
   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
ca5e68491e88 * patches/nautilus-cd-burner-04-cdda2wav.diff:
jyu_mit
parents: 13426
diff changeset
   276
+	if (toc_filename_arg)
ca5e68491e88 * patches/nautilus-cd-burner-04-cdda2wav.diff:
jyu_mit
parents: 13426
diff changeset
   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