brasero r992 - in trunk: . src



Author: philippr
Date: Tue Jul 15 11:43:55 2008
New Revision: 992
URL: http://svn.gnome.org/viewvc/brasero?rev=992&view=rev

Log:
	Fix #542835 â Using Split-Track two times on same audiofile refuses Brasero from burning the data because of oversize
	Also fix some other quirks with audio project size calculation

	* src/brasero-audio-disc.c
	(brasero_audio_disc_set_row_from_metadata),
	(brasero_audio_disc_add_slices),
	(brasero_audio_disc_edit_song_properties):


Modified:
   trunk/ChangeLog
   trunk/src/brasero-audio-disc.c

Modified: trunk/src/brasero-audio-disc.c
==============================================================================
--- trunk/src/brasero-audio-disc.c	(original)
+++ trunk/src/brasero-audio-disc.c	Tue Jul 15 11:43:55 2008
@@ -1228,7 +1228,11 @@
 			    -1);
 
 	/* make sure there is a length and it's not over the real one */
-	current_length = BRASERO_AUDIO_TRACK_LENGTH (start, end);
+	if (start >= 0 && end > 0)
+		current_length = BRASERO_AUDIO_TRACK_LENGTH (start, end);
+	else
+		current_length = 0;
+
 	if (current_length > g_file_info_get_attribute_uint64 (info, BRASERO_IO_LEN)) {
 		guint64 len;
 
@@ -1272,7 +1276,6 @@
 	}
 	else if (end - start < BRASERO_MIN_AUDIO_TRACK_LENGTH) {
 		brasero_audio_disc_short_track_dialog (disc);
-
 	}
 
 	length = BRASERO_AUDIO_TRACK_LENGTH (start, end);
@@ -2660,12 +2663,16 @@
 	gint64 length;
 	GSList *iter;
 
+	gint64 start;
+	gint64 end;
+
 	gchar *uri;
 	gchar *isrc;
 	gchar *name;
 	gchar *artist;
 	gchar *composer;
 	gchar *icon_string;
+
 	if (!slices)
 		return;
 
@@ -2674,14 +2681,6 @@
 
 	model = gtk_tree_view_get_model (GTK_TREE_VIEW (disc->priv->tree));
 
-	string = brasero_utils_get_time_string (BRASERO_AUDIO_TRACK_LENGTH (slice->start, slice->end), TRUE, FALSE); 
-	gtk_list_store_set (GTK_LIST_STORE (model), parent,
-			    START_COL, slice->start,
-			    END_COL, slice->end,
-			    SIZE_COL, string,
-			    -1);
-	g_free (string);
-
 	gtk_tree_model_get (model, parent,
 			    NAME_COL, &name,
 			    ICON_COL, &icon_string,
@@ -2690,8 +2689,20 @@
 			    ISRC_COL, &isrc,
 			    URI_COL, &uri,
 			    LENGTH_COL, &length,
+			    START_COL, &start,
+			    END_COL, &end,
 			    -1);
-			    
+	disc->priv->sectors -= BRASERO_DURATION_TO_SECTORS (BRASERO_AUDIO_TRACK_LENGTH (start, end));
+
+	string = brasero_utils_get_time_string (BRASERO_AUDIO_TRACK_LENGTH (slice->start, slice->end), TRUE, FALSE); 
+	gtk_list_store_set (GTK_LIST_STORE (model), parent,
+			    START_COL, slice->start,
+			    END_COL, slice->end,
+			    SIZE_COL, string,
+			    -1);
+	g_free (string);
+	disc->priv->sectors += BRASERO_DURATION_TO_SECTORS (BRASERO_AUDIO_TRACK_LENGTH (slice->start, slice->end));
+
 	for (iter = slices->next; iter; iter = iter->next) {
 		slice = iter->data;
 
@@ -2712,8 +2723,9 @@
 				    SIZE_COL, string,
 				    LENGTH_COL, length,
 				    -1);
-
 		g_free (string);
+
+		disc->priv->sectors += BRASERO_DURATION_TO_SECTORS (BRASERO_AUDIO_TRACK_LENGTH (slice->start, slice->end));
 	}
 
 	g_free (icon_string);
@@ -2721,6 +2733,8 @@
 	g_free (artist);
 	g_free (name);
 	g_free (uri);
+
+	brasero_disc_size_changed (BRASERO_DISC (disc), disc->priv->sectors);
 }
 
 static void
@@ -2951,6 +2965,8 @@
 brasero_audio_disc_edit_song_properties (BraseroAudioDisc *disc,
 					 GList *list)
 {
+	gint64 end;
+	gint64 start;
 	GList *item;
 	gint song_num;
 	gint track_num;
@@ -2989,9 +3005,7 @@
 
 	if (song_num == 1) {
 		gint isrc;
-		gint64 end;
 		gint64 gap;
-		gint64 start;
 		gint64 length;
 		gboolean is_song;
 		gboolean success;
@@ -3077,9 +3091,7 @@
 
 	if (treepath) {
 		gint isrc;
-		gint64 end;
 		gint64 gap;
-		gint64 start;
 		gchar *title;
 		gchar *markup;
 		gchar *artist;
@@ -3097,9 +3109,6 @@
 						   &end,
 						   &gap);
 
-		disc->priv->sectors += BRASERO_DURATION_TO_SECTORS (BRASERO_AUDIO_TRACK_LENGTH (start, end));
-		brasero_audio_disc_size_changed (disc);
-
 		markup = g_markup_escape_text (title, -1);
 		length_str = brasero_utils_get_time_string (BRASERO_AUDIO_TRACK_LENGTH (start, end), TRUE, FALSE);
 
@@ -3122,6 +3131,9 @@
 		if (gap)
 			brasero_audio_disc_add_gap (disc, &iter, gap);
 
+		disc->priv->sectors += BRASERO_DURATION_TO_SECTORS (BRASERO_AUDIO_TRACK_LENGTH (start, end));
+		brasero_audio_disc_size_changed (disc);
+
 		g_free (title);
 		g_free (artist);
 		g_free (composer);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]