[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