[Goodies-commits] r6042 - xfburn/trunk/xfburn
David Mohr
squisher at xfce.org
Mon Nov 10 00:17:57 CET 2008
Author: squisher
Date: 2008-11-09 23:17:57 +0000 (Sun, 09 Nov 2008)
New Revision: 6042
Modified:
xfburn/trunk/xfburn/xfburn-blank-dialog.c
xfburn/trunk/xfburn/xfburn-burn-audio-cd-composition-dialog.c
xfburn/trunk/xfburn/xfburn-burn-data-composition-base-dialog.c
xfburn/trunk/xfburn/xfburn-burn-image-dialog.c
xfburn/trunk/xfburn/xfburn-device-list.c
xfburn/trunk/xfburn/xfburn-main.c
Log:
Only initialize and shutdown libburn once
Modified: xfburn/trunk/xfburn/xfburn-blank-dialog.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-blank-dialog.c 2008-11-09 23:17:35 UTC (rev 6041)
+++ xfburn/trunk/xfburn/xfburn-blank-dialog.c 2008-11-09 23:17:57 UTC (rev 6042)
@@ -451,12 +451,6 @@
{
struct burn_drive_info *drive_info = NULL;
- if (!burn_initialize ()) {
- g_critical ("Unable to initialize libburn");
- g_free (params);
- return;
- }
-
if (!xfburn_device_grab (params->device, &drive_info)) {
xfburn_progress_dialog_burning_failed (XFBURN_PROGRESS_DIALOG (params->dialog_progress), _("Unable to grab the drive."));
} else {
@@ -464,7 +458,6 @@
burn_drive_release (drive_info->drive, params->eject ? 1 : 0);
}
- burn_finish ();
g_free (params);
#ifdef HAVE_HAL
Modified: xfburn/trunk/xfburn/xfburn-burn-audio-cd-composition-dialog.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-burn-audio-cd-composition-dialog.c 2008-11-09 23:17:35 UTC (rev 6041)
+++ xfburn/trunk/xfburn/xfburn-burn-audio-cd-composition-dialog.c 2008-11-09 23:17:57 UTC (rev 6042)
@@ -517,13 +517,6 @@
struct burn_drive_info *drive_info = NULL;
- if (!burn_initialize ()) {
- g_critical ("Unable to initialize libburn");
- /* FIXME: free contents of params! */
- g_free (params);
- return;
- }
-
disc = burn_disc_create ();
session = burn_session_create ();
@@ -583,7 +576,6 @@
burn_session_free (session);
burn_disc_free (disc);
- burn_finish ();
/* FIXME: free track_list here? */
g_free (params);
Modified: xfburn/trunk/xfburn/xfburn-burn-data-composition-base-dialog.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-burn-data-composition-base-dialog.c 2008-11-09 23:17:35 UTC (rev 6041)
+++ xfburn/trunk/xfburn/xfburn-burn-data-composition-base-dialog.c 2008-11-09 23:17:57 UTC (rev 6042)
@@ -604,13 +604,6 @@
struct burn_drive_info *drive_info = NULL;
- if (!burn_initialize ()) {
- g_critical ("Unable to initialize libburn");
- burn_source_free (params->src);
- g_free (params);
- return;
- }
-
disc = burn_disc_create ();
session = burn_session_create ();
track = burn_track_create ();
@@ -627,8 +620,6 @@
burn_disc_free (disc);
burn_source_free (params->src);
- burn_finish ();
-
g_free (params);
}
Modified: xfburn/trunk/xfburn/xfburn-burn-image-dialog.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-burn-image-dialog.c 2008-11-09 23:17:35 UTC (rev 6041)
+++ xfburn/trunk/xfburn/xfburn-burn-image-dialog.c 2008-11-09 23:17:57 UTC (rev 6042)
@@ -282,13 +282,6 @@
gint ret;
- if (!burn_initialize ()) {
- g_critical ("Unable to initialize libburn");
- g_free (params->iso_path);
- g_free (params);
- return;
- }
-
disc = burn_disc_create ();
session = burn_session_create ();
track = burn_track_create ();
@@ -369,7 +362,6 @@
burn_track_free (track);
burn_session_free (session);
burn_disc_free (disc);
- burn_finish ();
g_free (params->iso_path);
g_free (params);
@@ -536,17 +528,11 @@
params->dummy = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->check_dummy));
params->burnfree = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->check_burnfree));
- if (!burn_initialize ()) {
- g_critical ("Unable to initialize libburn");
- return;
- }
-
if (!xfburn_device_grab (device, &drive_info)) {
burn_image_dialog_error (dialog, _("Unable to grab the drive."));
g_free (params->iso_path);
g_free (params);
- burn_finish ();
return;
}
@@ -561,7 +547,6 @@
}
burn_drive_release (drive_info->drive, 0);
- burn_finish ();
priv->params = params;
Modified: xfburn/trunk/xfburn/xfburn-device-list.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-device-list.c 2008-11-09 23:17:35 UTC (rev 6041)
+++ xfburn/trunk/xfburn/xfburn-device-list.c 2008-11-09 23:17:57 UTC (rev 6042)
@@ -170,11 +170,6 @@
*profile_name = '\0';
- if (!burn_initialize ()) {
- g_critical ("Unable to initialize libburn");
- return -1;
- }
-
while ((ret = burn_drive_scan (&drives, &n_drives)) == 0)
usleep (1002);
@@ -207,7 +202,6 @@
}
burn_drive_info_free (drives);
- burn_finish ();
if (n_drives > 0 && n_burners < 1)
g_warning ("There are %d drives in your system, but none are capable of burning!", n_drives);
@@ -280,11 +274,6 @@
#endif
}
- if (!burn_initialize ()) {
- g_critical ("Unable to initialize libburn");
- return FALSE;
- }
-
if (!xfburn_device_grab (device, &drive_info)) {
ret = FALSE;
g_warning ("Couldn't grab drive in order to update speed list.");
@@ -300,8 +289,6 @@
burn_drive_release (drive_info->drive, 0);
}
- burn_finish ();
-
return ret;
}
Modified: xfburn/trunk/xfburn/xfburn-main.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-main.c 2008-11-09 23:17:35 UTC (rev 6041)
+++ xfburn/trunk/xfburn/xfburn-main.c 2008-11-09 23:17:57 UTC (rev 6042)
@@ -184,10 +184,19 @@
}
}
+ if (!burn_initialize ()) {
+ g_critical ("Unable to initialize libburn");
+ xfce_err (_("Unable to initialize the burning backend."));
+ gdk_threads_leave ();
+ return EXIT_FAILURE;
+ }
+
#ifdef HAVE_GST
if (!gst_init_check (&argc, &argv, &error)) {
- g_warning ("Failed to initialize gstreamer!");
- /* later make this a soft failure, and just disable gstreamer functionality */
+ g_critical ("Failed to initialize gstreamer!");
+ /* I'm assuming this pretty much never happens. If it does, we should make this a soft failure and fall back to basic */
+ gdk_threads_leave ();
+ burn_finish ();
return EXIT_FAILURE;
}
#endif
@@ -222,6 +231,8 @@
if (transcoder_selection && strcmp (transcoder_selection, "list") == 0) {
print_available_transcoders();
+ gdk_threads_leave ();
+ burn_finish ();
return EXIT_SUCCESS;
}
@@ -243,6 +254,7 @@
thunar_vfs_shutdown ();
#endif
gdk_threads_leave ();
+ burn_finish ();
return EXIT_FAILURE;
}
#endif
@@ -262,6 +274,9 @@
gtk_widget_destroy (GTK_WIDGET (dialog));
}
+
+ /*----------Transcoder--------------------------------------------------*/
+
if (!transcoder_selection) {
/* select the best available */
#ifdef HAVE_GST
@@ -280,11 +295,13 @@
transcoder_selection);
g_print ("\n");
print_available_transcoders();
+ gdk_threads_leave ();
+ burn_finish ();
return EXIT_FAILURE;
}
if (!xfburn_transcoder_is_initialized (transcoder, &error)) {
- g_warning ("Failed to initialize %s transcoder: %s\n\t(falling back to basic implementation)", xfburn_transcoder_get_name (transcoder), error->message);
+ xfce_warn (_("Failed to initialize %s transcoder: %s\n\t(falling back to basic implementation)"), xfburn_transcoder_get_name (transcoder), error->message);
g_error_free (error);
g_object_unref (transcoder);
transcoder = XFBURN_TRANSCODER (xfburn_transcoder_basic_new ());
@@ -293,8 +310,9 @@
}
xfburn_transcoder_set_global (transcoder);
- /* evaluate parsed command line options */
+ /*----------evaluate parsed command line action options-------------------------*/
+
if (show_main) {
xfburn_main_enter_main_window ();
}
@@ -330,7 +348,8 @@
}
- /* main window */
+ /*----------main window--------------------------------------------------*/
+
if (!other_action || show_main) {
xfburn_main_enter_main_window ();
mainwin = xfburn_main_window_new ();
@@ -344,9 +363,12 @@
xfburn_main_window_add_audio_composition_with_files (XFBURN_MAIN_WINDOW (mainwin), argc-1, argv+1);
}
+
gtk_main ();
- /* shutdown */
+
+ /*----------shutdown--------------------------------------------------*/
+
g_object_unref (transcoder);
#ifdef HAVE_HAL
@@ -362,6 +384,8 @@
xfburn_device_list_free ();
+ burn_finish ();
+
gdk_threads_leave ();
return EXIT_SUCCESS;
More information about the Goodies-commits
mailing list