[Goodies-commits] r4592 - xfburn/trunk/xfburn
David Mohr
squisher at xfce.org
Wed Apr 16 16:58:48 CEST 2008
Author: squisher
Date: 2008-04-16 14:58:48 +0000 (Wed, 16 Apr 2008)
New Revision: 4592
Modified:
xfburn/trunk/xfburn/xfburn-burn-data-cd-composition-dialog.h
xfburn/trunk/xfburn/xfburn-burn-data-dvd-composition-dialog.c
xfburn/trunk/xfburn/xfburn-burn-data-dvd-composition-dialog.h
xfburn/trunk/xfburn/xfburn-data-composition.c
Log:
Creating burn data dvd subclass
Modified: xfburn/trunk/xfburn/xfburn-burn-data-cd-composition-dialog.h
===================================================================
--- xfburn/trunk/xfburn/xfburn-burn-data-cd-composition-dialog.h 2008-04-16 11:24:05 UTC (rev 4591)
+++ xfburn/trunk/xfburn/xfburn-burn-data-cd-composition-dialog.h 2008-04-16 14:58:48 UTC (rev 4592)
@@ -28,6 +28,7 @@
#include <libxfcegui4/libxfcegui4.h>
#include <libisofs.h>
+#include "xfburn-burn-data-composition-base-dialog.h"
G_BEGIN_DECLS
@@ -40,12 +41,12 @@
typedef struct
{
- XfceTitledDialog parent;
+ XfburnBurnDataCompositionBaseDialog parent;
} XfburnBurnDataCdCompositionDialog;
typedef struct
{
- XfceTitledDialogClass parent_class;
+ XfburnBurnDataCompositionBaseDialogClass parent_class;
} XfburnBurnDataCdCompositionDialogClass;
GtkType xfburn_burn_data_cd_composition_dialog_get_type ();
Modified: xfburn/trunk/xfburn/xfburn-burn-data-dvd-composition-dialog.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-burn-data-dvd-composition-dialog.c 2008-04-16 11:24:05 UTC (rev 4591)
+++ xfburn/trunk/xfburn/xfburn-burn-data-dvd-composition-dialog.c 2008-04-16 14:58:48 UTC (rev 4592)
@@ -17,7 +17,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#if 0
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif /* !HAVE_CONFIG_H */
@@ -40,43 +39,20 @@
#include "xfburn-device-box.h"
#include "xfburn-burn-data-dvd-composition-dialog.h"
#include "xfburn-progress-dialog.h"
+#include "xfburn-burn-data-composition-base-dialog.h"
#define XFBURN_BURN_DATA_DVD_COMPOSITION_DIALOG_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), XFBURN_TYPE_BURN_DATA_DVD_COMPOSITION_DIALOG, XfburnBurnDataDvdCompositionDialogPrivate))
typedef struct
{
- struct iso_volset * volume_set;
-
- GtkWidget *frame_device;
- GtkWidget *device_box;
- GtkWidget *combo_mode;
-
- GtkWidget *check_eject;
- GtkWidget *check_burnfree;
- GtkWidget *check_only_iso;
- GtkWidget *hbox_iso;
- GtkWidget *entry_path_iso;
- GtkWidget *check_dummy;
+ gboolean dummy;
} XfburnBurnDataDvdCompositionDialogPrivate;
-enum {
- PROP_0,
- PROP_VOLUME_SET,
-};
-
/* prototypes */
static void xfburn_burn_data_dvd_composition_dialog_class_init (XfburnBurnDataDvdCompositionDialogClass * klass);
static void xfburn_burn_data_dvd_composition_dialog_init (XfburnBurnDataDvdCompositionDialog * obj);
static void xfburn_burn_data_dvd_composition_dialog_finalize (GObject * object);
-static void xfburn_burn_data_dvd_composition_dialog_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec);
-static void xfburn_burn_data_dvd_composition_dialog_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec);
-
-static void cb_check_only_iso_toggled (GtkToggleButton * button, XfburnBurnDataDvdCompositionDialog * dialog);
-static void cb_browse_iso (GtkButton * button, XfburnBurnDataDvdCompositionDialog * dialog);
-static void cb_dialog_response (XfburnBurnDataDvdCompositionDialog * dialog, gint response_id,
- XfburnBurnDataDvdCompositionDialogPrivate * priv);
-
/* globals */
static XfceTitledDialogClass *parent_class = NULL;
@@ -98,7 +74,7 @@
(GInstanceInitFunc) xfburn_burn_data_dvd_composition_dialog_init,
};
- type = g_type_register_static (XFCE_TYPE_TITLED_DIALOG, "XfburnBurnDataDvdCompositionDialog", &our_info, 0);
+ type = g_type_register_static (XFBURN_TYPE_BURN_DATA_COMPOSITION_BASE_DIALOG, "XfburnBurnDataDvdCompositionDialog", &our_info, 0);
}
return type;
@@ -113,493 +89,32 @@
g_type_class_add_private (klass, sizeof (XfburnBurnDataDvdCompositionDialogPrivate));
object_class->finalize = xfburn_burn_data_dvd_composition_dialog_finalize;
- object_class->get_property = xfburn_burn_data_dvd_composition_dialog_get_property;
- object_class->set_property = xfburn_burn_data_dvd_composition_dialog_set_property;
-
- /* properties */
- g_object_class_install_property (object_class, PROP_VOLUME_SET,
- g_param_spec_pointer ("volume-set", "Volume Set", "Volume Set", G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE));
}
static void
xfburn_burn_data_dvd_composition_dialog_init (XfburnBurnDataDvdCompositionDialog * obj)
{
- XfburnBurnDataDvdCompositionDialogPrivate *priv = XFBURN_BURN_DATA_DVD_COMPOSITION_DIALOG_GET_PRIVATE (obj);
+ //XfburnBurnDataDvdCompositionDialogPrivate *priv = XFBURN_BURN_DATA_DVD_COMPOSITION_DIALOG_GET_PRIVATE (obj);
- GdkPixbuf *icon = NULL;
- GtkBox *box = GTK_BOX (GTK_DIALOG (obj)->vbox);
- GtkWidget *img;
- GtkWidget *frame;
- GtkWidget *vbox;
- GtkWidget *align;
- GtkWidget *button;
- gchar *default_path;
- gchar *tmp_dir;
-
- gtk_window_set_title (GTK_WINDOW (obj), _("Burn Composition"));
- gtk_window_set_destroy_with_parent (GTK_WINDOW (obj), TRUE);
- icon = gtk_widget_render_icon (GTK_WIDGET (obj), XFBURN_STOCK_BURN_CD, GTK_ICON_SIZE_DIALOG, NULL);
- gtk_window_set_icon (GTK_WINDOW (obj), icon);
- g_object_unref (icon);
-
- /* burning devices list */
- priv->device_box = xfburn_device_box_new (SHOW_DVD_WRITERS | SHOW_MODE_SELECTION | SHOW_SPEED_SELECTION);
- gtk_widget_show (priv->device_box);
-
- priv->frame_device = xfce_create_framebox_with_content (_("Burning device"), priv->device_box);
- gtk_widget_show (priv->frame_device);
- gtk_box_pack_start (box, priv->frame_device, FALSE, FALSE, BORDER);
-
- /* options */
- vbox = gtk_vbox_new (FALSE, 0);
- gtk_widget_show (vbox);
-
- frame = xfce_create_framebox_with_content (_("Options"), vbox);
- gtk_widget_show (frame);
- gtk_box_pack_start (box, frame, FALSE, FALSE, BORDER);
-
- priv->check_eject = gtk_check_button_new_with_mnemonic (_("E_ject disk"));
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->check_eject), TRUE);
- gtk_widget_show (priv->check_eject);
- gtk_box_pack_start (GTK_BOX (vbox), priv->check_eject, FALSE, FALSE, BORDER);
-
- priv->check_dummy = gtk_check_button_new_with_mnemonic (_("_Dummy write"));
- gtk_widget_show (priv->check_dummy);
- gtk_box_pack_start (GTK_BOX (vbox), priv->check_dummy, FALSE, FALSE, BORDER);
-
- priv->check_burnfree = gtk_check_button_new_with_mnemonic (_("Burn_Free"));
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->check_burnfree), TRUE);
- gtk_widget_show (priv->check_burnfree);
- gtk_box_pack_start (GTK_BOX (vbox), priv->check_burnfree, FALSE, FALSE, BORDER);
-
- /* create ISO ? */
- priv->check_only_iso = gtk_check_button_new_with_mnemonic (_("Only create _ISO"));
- gtk_widget_show (priv->check_only_iso);
- gtk_box_pack_start (GTK_BOX (vbox), priv->check_only_iso, FALSE, FALSE, BORDER);
- g_signal_connect (G_OBJECT (priv->check_only_iso), "toggled", G_CALLBACK (cb_check_only_iso_toggled), obj);
-
- align = gtk_alignment_new (0, 0, 0, 0);
- gtk_alignment_set_padding (GTK_ALIGNMENT (align), 0, 0, BORDER * 4, 0);
- gtk_widget_show (align);
- gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, FALSE, 0);
-
- priv->hbox_iso = gtk_hbox_new (FALSE, 0);
- gtk_widget_show (priv->hbox_iso);
- gtk_container_add (GTK_CONTAINER (align), priv->hbox_iso);
- gtk_widget_set_sensitive (priv->hbox_iso, FALSE);
-
- priv->entry_path_iso = gtk_entry_new ();
- tmp_dir = xfburn_settings_get_string ("temporary-dir", g_get_tmp_dir ());
- default_path = g_build_filename (tmp_dir, "xfburn.iso", NULL);
- gtk_entry_set_text (GTK_ENTRY (priv->entry_path_iso), default_path);
- g_free (default_path);
- g_free (tmp_dir);
- gtk_widget_show (priv->entry_path_iso);
- gtk_box_pack_start (GTK_BOX (priv->hbox_iso), priv->entry_path_iso, FALSE, FALSE, 0);
-
- img = gtk_image_new_from_stock (GTK_STOCK_DIRECTORY, GTK_ICON_SIZE_SMALL_TOOLBAR);
- gtk_widget_show (img);
- button = gtk_button_new ();
- gtk_container_add (GTK_CONTAINER (button), img);
- gtk_widget_show (button);
- gtk_box_pack_start (GTK_BOX (priv->hbox_iso), button, FALSE, FALSE, 0);
- g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (cb_browse_iso), obj);
-
- /* action buttons */
- button = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
- gtk_widget_show (button);
- gtk_dialog_add_action_widget (GTK_DIALOG (obj), button, GTK_RESPONSE_CANCEL);
-
- button = xfce_create_mixed_button ("xfburn-burn-cd", _("_Burn Composition"));
- gtk_widget_show (button);
- gtk_dialog_add_action_widget (GTK_DIALOG (obj), button, GTK_RESPONSE_OK);
- GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
- gtk_widget_grab_focus (button);
- gtk_widget_grab_default (button);
-
- g_signal_connect (G_OBJECT (obj), "response", G_CALLBACK (cb_dialog_response), priv);
}
static void
-xfburn_burn_data_dvd_composition_dialog_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec)
-{
- XfburnBurnDataDvdCompositionDialogPrivate *priv = XFBURN_BURN_DATA_DVD_COMPOSITION_DIALOG_GET_PRIVATE (object);
-
- switch (prop_id) {
- case PROP_VOLUME_SET:
- g_value_set_pointer (value, priv->volume_set);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-xfburn_burn_data_dvd_composition_dialog_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec)
-{
- XfburnBurnDataDvdCompositionDialogPrivate *priv = XFBURN_BURN_DATA_DVD_COMPOSITION_DIALOG_GET_PRIVATE (object);
-
- switch (prop_id) {
- case PROP_VOLUME_SET:
- priv->volume_set = g_value_get_pointer (value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
xfburn_burn_data_dvd_composition_dialog_finalize (GObject * object)
{
- XfburnBurnDataDvdCompositionDialogPrivate *priv = XFBURN_BURN_DATA_DVD_COMPOSITION_DIALOG_GET_PRIVATE (object);
+ //XfburnBurnDataDvdCompositionDialogPrivate *priv = XFBURN_BURN_DATA_DVD_COMPOSITION_DIALOG_GET_PRIVATE (object);
- iso_volset_free (priv->volume_set);
-
G_OBJECT_CLASS (parent_class)->finalize (object);
}
/* internals */
-static void
-cb_check_only_iso_toggled (GtkToggleButton * button, XfburnBurnDataDvdCompositionDialog * dialog)
-{
- XfburnBurnDataDvdCompositionDialogPrivate *priv = XFBURN_BURN_DATA_DVD_COMPOSITION_DIALOG_GET_PRIVATE (dialog);
- gtk_widget_set_sensitive (priv->frame_device, !gtk_toggle_button_get_active (button));
-
- gtk_widget_set_sensitive (priv->hbox_iso, gtk_toggle_button_get_active (button));
- gtk_widget_set_sensitive (priv->check_eject, !gtk_toggle_button_get_active (button));
- gtk_widget_set_sensitive (priv->check_burnfree, !gtk_toggle_button_get_active (button));
- gtk_widget_set_sensitive (priv->check_dummy, !gtk_toggle_button_get_active (button));
-}
-
-static void
-cb_browse_iso (GtkButton * button, XfburnBurnDataDvdCompositionDialog * dialog)
-{
- XfburnBurnDataDvdCompositionDialogPrivate *priv = XFBURN_BURN_DATA_DVD_COMPOSITION_DIALOG_GET_PRIVATE (dialog);
-
- xfburn_browse_for_file (GTK_ENTRY (priv->entry_path_iso), GTK_WINDOW (dialog));
-}
-
-typedef struct {
- GtkWidget *dialog_progress;
- struct burn_source *src;
- gchar *iso_path;
-} ThreadWriteIsoParams;
-
-static void
-thread_write_iso (ThreadWriteIsoParams * params)
-{
- GtkWidget *dialog_progress = params->dialog_progress;
- gint fd;
- guchar buf[2048];
- glong size = 0;
- glong written = 0;
- guint i = 0;
-
- fd = open (params->iso_path, O_WRONLY | O_CREAT | O_TRUNC, 0644);
- if (fd == -1) {
- /* could not create destination */
- gchar err[256];
- gchar *error_msg = NULL;
-
- strerror_r (errno, err, 256);
-
- error_msg = g_strdup_printf (_("Could not create destination ISO file: %s"), err);
- xfburn_progress_dialog_burning_failed (XFBURN_PROGRESS_DIALOG (dialog_progress), error_msg);
- g_free (error_msg);
-
- goto end;
- }
-
- xfburn_progress_dialog_set_status_with_text (XFBURN_PROGRESS_DIALOG (dialog_progress), XFBURN_PROGRESS_DIALOG_STATUS_RUNNING, _("Writing ISO..."));
-
- size = (glong) params->src->get_size (params->src);
- while (params->src->read (params->src, buf, 2048) == 2048) {
- if (write (fd, buf, 2048) < 2048) {
- /* an error occured while writing */
- gchar err[256];
- gchar *error_msg = NULL;
-
- strerror_r (errno, err, 256);
-
- error_msg = g_strdup_printf (_("An error occured while writing ISO: %s"), err);
- xfburn_progress_dialog_burning_failed (XFBURN_PROGRESS_DIALOG (dialog_progress), error_msg);
- g_free (error_msg);
- goto cleanup;
- } else {
- written += 2048;
- i++;
-
- if (i >= 1000) {
- i = 0;
- gdouble percent = 0;
-
- percent = ((gdouble) written / (gdouble) size);
-
- xfburn_progress_dialog_set_progress_bar_fraction (XFBURN_PROGRESS_DIALOG (dialog_progress), percent);
- }
- }
- }
- xfburn_progress_dialog_set_status_with_text (XFBURN_PROGRESS_DIALOG (dialog_progress), XFBURN_PROGRESS_DIALOG_STATUS_COMPLETED, _("Done"));
-
- cleanup:
- close (fd);
- end:
- burn_source_free (params->src);
- g_free (params->iso_path);
- g_free (params);
-}
-
-typedef struct {
- GtkWidget *dialog_progress;
- XfburnDevice *device;
- struct burn_source *src;
- gint speed;
- XfburnWriteMode write_mode;
- gboolean eject;
- gboolean dummy;
- gboolean burnfree;
-} ThreadBurnCompositionParams;
-
-static void
-thread_burn_composition (ThreadBurnCompositionParams * params)
-{
- GtkWidget *dialog_progress = params->dialog_progress;
-
- struct burn_disc *disc;
- struct burn_session *session;
- struct burn_track *track;
-
- struct burn_drive_info *drive_info = NULL;
- struct burn_drive *drive;
-
- struct burn_write_opts * burn_options;
- enum burn_disc_status disc_state;
- enum burn_drive_status status;
- struct burn_progress progress;
- gint ret;
- time_t time_start;
-
- 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 ();
-
- ret = burn_disc_add_session (disc, session, BURN_POS_END);
- if (ret == 0) {
- xfburn_progress_dialog_burning_failed (XFBURN_PROGRESS_DIALOG (dialog_progress), _("Unable to create disc object"));
- goto end;
- }
-
- if (burn_track_set_source (track, params->src) != BURN_SOURCE_OK) {
- xfburn_progress_dialog_burning_failed (XFBURN_PROGRESS_DIALOG (dialog_progress), _("Cannot attach source object to track object"));
- goto end;
- }
-
- burn_session_add_track (session, track, BURN_POS_END);
-
- if (!xfburn_device_grab (params->device, &drive_info)) {
- xfburn_progress_dialog_burning_failed (XFBURN_PROGRESS_DIALOG (dialog_progress), _("Unable to grab drive"));
-
- goto end;
- }
-
- drive = drive_info->drive;
-
- while (burn_drive_get_status (drive, NULL) != BURN_DRIVE_IDLE)
- usleep(100001);
-
- /* Evaluate drive and media */
- /* TODO check if it's a DVD */
- DBG ("TODO is this a DVD ?");
- while ((disc_state = burn_disc_get_status(drive)) == BURN_DISC_UNREADY)
- usleep(100001);
- if (disc_state == BURN_DISC_APPENDABLE && params->write_mode != WRITE_MODE_TAO) {
- xfburn_progress_dialog_burning_failed (XFBURN_PROGRESS_DIALOG (dialog_progress), _("Cannot append data to multisession disc in this write mode (use TAO instead)"));
- goto cleanup;
- } else if (disc_state != BURN_DISC_BLANK) {
- if (disc_state == BURN_DISC_FULL)
- xfburn_progress_dialog_burning_failed (XFBURN_PROGRESS_DIALOG (dialog_progress), _("Closed media with data detected. Need blank or appendable media"));
- else if (disc_state == BURN_DISC_EMPTY)
- xfburn_progress_dialog_burning_failed (XFBURN_PROGRESS_DIALOG (dialog_progress), _("No media detected in drive"));
- else
- xfburn_progress_dialog_burning_failed (XFBURN_PROGRESS_DIALOG (dialog_progress), _("Cannot recognize state of drive and media"));
- goto cleanup;
- }
-
- burn_options = burn_write_opts_new (drive);
- burn_write_opts_set_perform_opc (burn_options, 0);
- burn_write_opts_set_multi (burn_options, 0);
-
- switch (params->write_mode) {
- case WRITE_MODE_TAO:
- burn_write_opts_set_write_type (burn_options, BURN_WRITE_TAO, BURN_BLOCK_MODE1);
- break;
- case WRITE_MODE_SAO:
- burn_write_opts_set_write_type (burn_options, BURN_WRITE_SAO, BURN_BLOCK_SAO);
- break;
- default:
- xfburn_progress_dialog_burning_failed (XFBURN_PROGRESS_DIALOG (dialog_progress), _("This write mode is not supported"));
- goto cleanup;
- }
-
- burn_write_opts_set_simulate(burn_options, params->dummy ? 1 : 0);
- DBG ("TODO set speed");
- burn_drive_set_speed (drive, 0, 0);
- burn_write_opts_set_underrun_proof (burn_options, params->burnfree ? 1 : 0);
-
- burn_disc_write (burn_options, disc);
- burn_write_opts_free (burn_options);
-
- while (burn_drive_get_status (drive, NULL) == BURN_DRIVE_SPAWNING)
- usleep(1002);
- time_start = time (NULL);
- while ((status = burn_drive_get_status (drive, &progress)) != BURN_DRIVE_IDLE) {
- time_t time_now = time (NULL);
-
- switch (status) {
- case BURN_DRIVE_WRITING:
- xfburn_progress_dialog_set_status_with_text (XFBURN_PROGRESS_DIALOG (dialog_progress), XFBURN_PROGRESS_DIALOG_STATUS_RUNNING, _("Burning composition..."));
- if (progress.sectors > 0 && progress.sector >= 0) {
- gdouble percent = 0.0;
-
- percent = (gdouble) (progress.buffer_capacity - progress.buffer_available) / (gdouble) progress.buffer_capacity;
- xfburn_progress_dialog_set_buffer_bar_fraction (XFBURN_PROGRESS_DIALOG (dialog_progress), percent);
-
- percent = 1.0 + ((gdouble) progress.sector+1.0) / ((gdouble) progress.sectors) * 98.0;
- xfburn_progress_dialog_set_progress_bar_fraction (XFBURN_PROGRESS_DIALOG (dialog_progress), percent / 100.0);
-
- xfburn_progress_dialog_set_writing_speed (XFBURN_PROGRESS_DIALOG (dialog_progress),
- ((gdouble) (progress.sector * 2048) / (gdouble) (time_now - time_start)) / (1350 * 1024));
- }
- break;
- case BURN_DRIVE_WRITING_LEADIN:
- xfburn_progress_dialog_set_status_with_text (XFBURN_PROGRESS_DIALOG (dialog_progress),
- XFBURN_PROGRESS_DIALOG_STATUS_RUNNING, _("Writing Lead-In..."));
- xfburn_progress_dialog_set_buffer_bar_fraction (XFBURN_PROGRESS_DIALOG (dialog_progress), -1);
- xfburn_progress_dialog_set_writing_speed (XFBURN_PROGRESS_DIALOG (dialog_progress), -1);
- break;
- case BURN_DRIVE_WRITING_LEADOUT:
- xfburn_progress_dialog_set_status_with_text (XFBURN_PROGRESS_DIALOG (dialog_progress),
- XFBURN_PROGRESS_DIALOG_STATUS_RUNNING, _("Writing Lead-Out..."));
- xfburn_progress_dialog_set_buffer_bar_fraction (XFBURN_PROGRESS_DIALOG (dialog_progress), -1);
- xfburn_progress_dialog_set_writing_speed (XFBURN_PROGRESS_DIALOG (dialog_progress), -1);
- break;
- case BURN_DRIVE_WRITING_PREGAP:
- xfburn_progress_dialog_set_status_with_text (XFBURN_PROGRESS_DIALOG (dialog_progress),
- XFBURN_PROGRESS_DIALOG_STATUS_RUNNING, _("Writing pregap..."));
- xfburn_progress_dialog_set_buffer_bar_fraction (XFBURN_PROGRESS_DIALOG (dialog_progress), -1);
- xfburn_progress_dialog_set_writing_speed (XFBURN_PROGRESS_DIALOG (dialog_progress), -1);
- break;
- case BURN_DRIVE_CLOSING_TRACK:
- xfburn_progress_dialog_set_status_with_text (XFBURN_PROGRESS_DIALOG (dialog_progress),
- XFBURN_PROGRESS_DIALOG_STATUS_RUNNING, _("Closing track..."));
- xfburn_progress_dialog_set_buffer_bar_fraction (XFBURN_PROGRESS_DIALOG (dialog_progress), -1);
- xfburn_progress_dialog_set_writing_speed (XFBURN_PROGRESS_DIALOG (dialog_progress), -1);
- break;
- case BURN_DRIVE_CLOSING_SESSION:
- xfburn_progress_dialog_set_status_with_text (XFBURN_PROGRESS_DIALOG (dialog_progress),
- XFBURN_PROGRESS_DIALOG_STATUS_RUNNING, _("Closing session..."));
- xfburn_progress_dialog_set_buffer_bar_fraction (XFBURN_PROGRESS_DIALOG (dialog_progress), -1);
- xfburn_progress_dialog_set_writing_speed (XFBURN_PROGRESS_DIALOG (dialog_progress), -1);
- break;
- default:
- DBG ("Status %d not supported", status);
- break;
- }
- usleep (500000);
- }
-
- xfburn_progress_dialog_set_status_with_text (XFBURN_PROGRESS_DIALOG (dialog_progress), XFBURN_PROGRESS_DIALOG_STATUS_COMPLETED, _("Done"));
-
- cleanup:
- burn_drive_release (drive, params->eject ? 1 : 0);
- end:
- burn_track_free (track);
- burn_session_free (session);
- burn_disc_free (disc);
- burn_finish ();
-
- burn_source_free (params->src);
- g_free (params);
-}
-
-static void
-cb_dialog_response (XfburnBurnDataDvdCompositionDialog * dialog, gint response_id, XfburnBurnDataDvdCompositionDialogPrivate * priv)
-{
- if (response_id == GTK_RESPONSE_OK) {
- GtkWidget *dialog_progress;
-
- struct burn_source * src = NULL;
- struct ecma119_source_opts src_opts = {};
-
- src_opts.volnum = 0;
- src_opts.level = 2;
- src_opts.flags = ECMA119_JOLIET;
- src = iso_source_new_ecma119 (priv->volume_set, &src_opts);
- if (src == NULL) {
- /* could not create source */
- xfce_err (_("Could not create ISO source structure"));
- return;
- }
-
- dialog_progress = xfburn_progress_dialog_new (GTK_WINDOW (dialog));
- gtk_window_set_transient_for (GTK_WINDOW (dialog_progress), gtk_window_get_transient_for (GTK_WINDOW (dialog)));
- gtk_widget_hide (GTK_WIDGET (dialog));
-
- gtk_widget_show (dialog_progress);
-
- if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->check_only_iso))) {
- ThreadWriteIsoParams *params = NULL;
-
- /* create a new iso */
- params = g_new0 (ThreadWriteIsoParams, 1);
- params->dialog_progress = dialog_progress;
- params->src = src;
- params->iso_path = g_strdup (gtk_entry_get_text (GTK_ENTRY (priv->entry_path_iso)));
- g_thread_create ((GThreadFunc) thread_write_iso, params, FALSE, NULL);
- }
- else {
- ThreadBurnCompositionParams *params = NULL;
- XfburnDevice *device;
- gint speed;
- XfburnWriteMode write_mode;
-
- device = xfburn_device_box_get_selected_device (XFBURN_DEVICE_BOX (priv->device_box));
- speed = xfburn_device_box_get_speed (XFBURN_DEVICE_BOX (priv->device_box));
- write_mode = xfburn_device_box_get_mode (XFBURN_DEVICE_BOX (priv->device_box));
-
- /* burn composition */
- params = g_new0 (ThreadBurnCompositionParams, 1);
- params->dialog_progress = dialog_progress;
- params->device = device;
- params->src = src;
- params->speed = speed;
- params->write_mode = write_mode;
- params->eject = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->check_eject));
- 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));
- g_thread_create ((GThreadFunc) thread_burn_composition, params, FALSE, NULL);
- }
- }
-}
-
/* public */
GtkWidget *
-xfburn_burn_data_dvd_composition_dialog_new (struct iso_volset * volume_set)
+xfburn_burn_data_dvd_composition_dialog_new (IsoImage *image)
{
XfburnBurnDataDvdCompositionDialog *obj;
- obj = XFBURN_BURN_DATA_DVD_COMPOSITION_DIALOG (g_object_new (XFBURN_TYPE_BURN_DATA_DVD_COMPOSITION_DIALOG, "volume-set", volume_set, NULL));
+ obj = XFBURN_BURN_DATA_DVD_COMPOSITION_DIALOG (g_object_new (XFBURN_TYPE_BURN_DATA_DVD_COMPOSITION_DIALOG, "image", image, NULL));
return GTK_WIDGET (obj);
}
-#endif
Modified: xfburn/trunk/xfburn/xfburn-burn-data-dvd-composition-dialog.h
===================================================================
--- xfburn/trunk/xfburn/xfburn-burn-data-dvd-composition-dialog.h 2008-04-16 11:24:05 UTC (rev 4591)
+++ xfburn/trunk/xfburn/xfburn-burn-data-dvd-composition-dialog.h 2008-04-16 14:58:48 UTC (rev 4592)
@@ -17,7 +17,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#if 0
#ifndef __XFBURN_BURN_DATA_DVD_COMPOSITION_DIALOG_H__
#define __XFBURN_BURN_DATA_DVD_COMPOSITION_DIALOG_H__
@@ -29,6 +28,7 @@
#include <libxfcegui4/libxfcegui4.h>
#include <libisofs.h>
+#include "xfburn-burn-data-composition-base-dialog.h"
G_BEGIN_DECLS
@@ -41,18 +41,17 @@
typedef struct
{
- XfceTitledDialog parent;
+ XfburnBurnDataCompositionBaseDialog parent;
} XfburnBurnDataDvdCompositionDialog;
typedef struct
{
- XfceTitledDialogClass parent_class;
+ XfburnBurnDataCompositionBaseDialogClass parent_class;
} XfburnBurnDataDvdCompositionDialogClass;
GtkType xfburn_burn_data_dvd_composition_dialog_get_type ();
-GtkWidget *xfburn_burn_data_dvd_composition_dialog_new (struct iso_volset * volume_set);
+GtkWidget *xfburn_burn_data_dvd_composition_dialog_new (IsoImage *image);
G_END_DECLS
#endif /* XFBURN_BURN_DATA_DVD_COMPOSITION_DIALOG_H */
-#endif
Modified: xfburn/trunk/xfburn/xfburn-data-composition.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-data-composition.c 2008-04-16 11:24:05 UTC (rev 4591)
+++ xfburn/trunk/xfburn/xfburn-data-composition.c 2008-04-16 14:58:48 UTC (rev 4592)
@@ -53,7 +53,7 @@
#include "xfburn-composition.h"
#include "xfburn-burn-data-cd-composition-dialog.h"
-//#include "xfburn-burn-data-dvd-composition-dialog.h"
+#include "xfburn-burn-data-dvd-composition-dialog.h"
#include "xfburn-data-disc-usage.h"
#include "xfburn-main-window.h"
#include "xfburn-utils.h"
@@ -436,7 +436,7 @@
dialog = xfburn_burn_data_cd_composition_dialog_new (image);
break;
case DVD_DISC:
- //dialog = xfburn_burn_data_dvd_composition_dialog_new (image);
+ dialog = xfburn_burn_data_dvd_composition_dialog_new (image);
break;
}
More information about the Goodies-commits
mailing list