[Goodies-commits] r5595 - xfburn/trunk/xfburn

David Mohr squisher at xfce.org
Sun Oct 12 22:45:21 CEST 2008


Author: squisher
Date: 2008-10-12 20:45:21 +0000 (Sun, 12 Oct 2008)
New Revision: 5595

Modified:
   xfburn/trunk/xfburn/xfburn-burn-audio-cd-composition-dialog.c
   xfburn/trunk/xfburn/xfburn-transcoder-basic.c
   xfburn/trunk/xfburn/xfburn-transcoder.h
Log:
Move calculation of num. of sectors into Transcoder. Now all audio handling is in Transcoder and separate from the presentation and the burning.

Modified: xfburn/trunk/xfburn/xfburn-burn-audio-cd-composition-dialog.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-burn-audio-cd-composition-dialog.c	2008-10-12 19:37:49 UTC (rev 5594)
+++ xfburn/trunk/xfburn/xfburn-burn-audio-cd-composition-dialog.c	2008-10-12 20:45:21 UTC (rev 5595)
@@ -440,13 +440,13 @@
 
 static void 
 thread_burn_prep_and_burn (ThreadBurnCompositionParams * params, struct burn_drive *drive,
-                           struct burn_disc *disc, struct burn_session *session, int n_tracks, struct burn_track **tracks)
+                           struct burn_disc *disc, struct burn_session *session, int n_tracks, 
+                           int track_sectors[], struct burn_track **tracks)
 {
   GtkWidget *dialog_progress = params->dialog_progress;
 
   struct burn_write_opts * burn_options;
   gint ret,i;
-  int track_sectors[n_tracks];
 
   ret = burn_disc_add_session (disc, session, BURN_POS_END);
   if (ret == 0) {
@@ -456,8 +456,6 @@
 
   for (i=0; i<n_tracks; i++) {
     burn_session_add_track (session, tracks[i], BURN_POS_END);
-    //FIXME: not reliable for variable length, so needs to get replaced for gstreamer
-    track_sectors[i] = burn_track_get_sectors (tracks[i]);
   }
 
   burn_options = burn_write_opts_new (drive);
@@ -507,6 +505,7 @@
   int n_tracks;
   int i,j;
   GSList *track_list;
+  int *track_sectors;
   gboolean abort = FALSE;
   XfburnTranscoder *trans;
 
@@ -523,6 +522,7 @@
   session = burn_session_create ();
 
   n_tracks = g_slist_length (params->tracks);
+  track_sectors = g_new (int, n_tracks);
   tracks = g_new (struct burn_track *, n_tracks);
   trans = xfburn_transcoder_get_global ();
 
@@ -539,6 +539,8 @@
       break;
     }
 
+    track_sectors[i] = atrack->sectors;
+
     track_list = g_slist_next (track_list);
   }
 
@@ -552,7 +554,7 @@
     if (!xfburn_device_grab (params->device, &drive_info)) {
       xfburn_progress_dialog_burning_failed (XFBURN_PROGRESS_DIALOG (dialog_progress), _("Unable to grab drive"));
     } else {
-      thread_burn_prep_and_burn (params, drive_info->drive, disc, session, n_tracks, tracks);
+      thread_burn_prep_and_burn (params, drive_info->drive, disc, session, n_tracks, track_sectors, tracks);
       burn_drive_release (drive_info->drive, params->eject ? 1 : 0);
     }
   }
@@ -561,6 +563,7 @@
     burn_track_free (tracks[j]);
   }
   g_free (tracks);
+  g_free (track_sectors);
 
   for (track_list = params->tracks; track_list; track_list = g_slist_next (track_list))
     xfburn_transcoder_free_burning_resources (trans, (XfburnAudioTrack *) track_list->data, NULL);

Modified: xfburn/trunk/xfburn/xfburn-transcoder-basic.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-transcoder-basic.c	2008-10-12 19:37:49 UTC (rev 5594)
+++ xfburn/trunk/xfburn/xfburn-transcoder-basic.c	2008-10-12 20:45:21 UTC (rev 5595)
@@ -181,6 +181,9 @@
   atrack->inputfile = g_strdup (fn);
   atrack->pos = -1;
   atrack->length = (s.st_size - 44) / PCM_BYTES_PER_SECS;
+  atrack->sectors = (s.st_size / 2352);
+  if (s.st_size % 2352 > 0)
+    atrack->sectors++;
 
   return atrack;
 }

Modified: xfburn/trunk/xfburn/xfburn-transcoder.h
===================================================================
--- xfburn/trunk/xfburn/xfburn-transcoder.h	2008-10-12 19:37:49 UTC (rev 5594)
+++ xfburn/trunk/xfburn/xfburn-transcoder.h	2008-10-12 20:45:21 UTC (rev 5595)
@@ -47,6 +47,7 @@
 
   gint length;
 
+  int sectors;
   int fd;
   struct burn_source *src;
 } XfburnAudioTrack;




More information about the Goodies-commits mailing list