[brasero] When burning a video image don't let the user choose between cue, iso image but between SVCD, VCD or
- From: Philippe Rouquier <philippr src gnome org>
- To: svn-commits-list gnome org
- Subject: [brasero] When burning a video image don't let the user choose between cue, iso image but between SVCD, VCD or
- Date: Fri, 3 Jul 2009 13:13:00 +0000 (UTC)
commit 2dba461af55237fda2c082c184328f7fa6ed9385
Author: Philippe Rouquier <bonfire-app wanadoo fr>
Date: Fri Jul 3 10:23:53 2009 +0200
When burning a video image don't let the user choose between cue, iso image but between SVCD, VCD or DVD video image which is probably clearer
libbrasero-burn/brasero-image-properties.c | 36 +++++++++++++++-
libbrasero-burn/brasero-image-type-chooser.c | 57 ++++++++++++++++++++++----
libbrasero-burn/brasero-image-type-chooser.h | 5 ++-
libbrasero-burn/brasero-src-image.c | 2 +-
4 files changed, 88 insertions(+), 12 deletions(-)
---
diff --git a/libbrasero-burn/brasero-image-properties.c b/libbrasero-burn/brasero-image-properties.c
index 02b9990..7a376e3 100644
--- a/libbrasero-burn/brasero-image-properties.c
+++ b/libbrasero-burn/brasero-image-properties.c
@@ -41,6 +41,7 @@
#include <gtk/gtk.h>
#include "burn-basics.h"
+#include "brasero-tags.h"
#include "burn-image-format.h"
#include "brasero-image-properties.h"
#include "brasero-image-type-chooser.h"
@@ -54,6 +55,7 @@ struct _BraseroImagePropertiesPrivate
GtkWidget *format_box;
guint edited:1;
+ guint is_video:1;
};
#define BRASERO_IMAGE_PROPERTIES_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), BRASERO_TYPE_IMAGE_PROPERTIES, BraseroImagePropertiesPrivate))
@@ -132,7 +134,6 @@ brasero_image_properties_format_changed_cb (BraseroImageTypeChooser *chooser,
return;
format = brasero_image_properties_get_format (self);
-
if (format == BRASERO_IMAGE_FORMAT_ANY || format == BRASERO_IMAGE_FORMAT_NONE)
format = brasero_burn_session_get_default_output_format (BRASERO_BURN_SESSION (priv->session));
@@ -209,7 +210,8 @@ brasero_image_properties_set_formats (BraseroImageProperties *self,
num = brasero_image_type_chooser_set_formats (BRASERO_IMAGE_TYPE_CHOOSER (priv->format),
formats,
- FALSE);
+ FALSE,
+ priv->is_video);
brasero_image_type_chooser_set_format (BRASERO_IMAGE_TYPE_CHOOSER (priv->format),
format);
@@ -277,6 +279,24 @@ brasero_image_properties_response (GtkFileChooser *chooser,
format,
path);
g_free (path);
+
+ if (priv->is_video && format == BRASERO_IMAGE_FORMAT_BIN) {
+ gboolean res;
+ GValue *value;
+
+ value = g_new0 (GValue, 1);
+ g_value_init (value, G_TYPE_INT);
+
+ res = brasero_image_type_chooser_is_SVCD (BRASERO_IMAGE_TYPE_CHOOSER (priv->format));
+ if (res)
+ g_value_set_int (value, BRASERO_SVCD);
+ else
+ g_value_set_int (value, BRASERO_SVCD);
+
+ brasero_burn_session_tag_add (BRASERO_BURN_SESSION (priv->session),
+ BRASERO_VCD_TYPE,
+ value);
+ }
}
static gchar *
@@ -315,6 +335,7 @@ static void
brasero_image_properties_update (BraseroImageProperties *self)
{
BraseroImagePropertiesPrivate *priv;
+ BraseroTrackType *track_type;
BraseroImageFormat formats;
BraseroImageFormat format;
gchar *path;
@@ -324,6 +345,17 @@ brasero_image_properties_update (BraseroImageProperties *self)
priv->edited = brasero_session_cfg_has_default_output_path (priv->session);
+ track_type = brasero_track_type_new ();
+
+ brasero_burn_session_get_input_type (BRASERO_BURN_SESSION (priv->session), track_type);
+ if (brasero_track_type_get_has_stream (track_type)
+ && BRASERO_STREAM_FORMAT_HAS_VIDEO (brasero_track_type_get_stream_format (track_type)))
+ priv->is_video = TRUE;
+ else
+ priv->is_video = FALSE;
+
+ brasero_track_type_free (track_type);
+
/* set all information namely path and format */
path = brasero_image_properties_get_output_path (self);
brasero_image_properties_set_path (self, path);
diff --git a/libbrasero-burn/brasero-image-type-chooser.c b/libbrasero-burn/brasero-image-type-chooser.c
index 85e6ddf..1836f32 100644
--- a/libbrasero-burn/brasero-image-type-chooser.c
+++ b/libbrasero-burn/brasero-image-type-chooser.c
@@ -48,6 +48,7 @@ G_DEFINE_TYPE (BraseroImageTypeChooser, brasero_image_type_chooser, GTK_TYPE_HBO
enum {
FORMAT_TEXT,
FORMAT_TYPE,
+ FORMAT_SVCD,
FORMAT_LAST
};
@@ -70,7 +71,8 @@ static GtkHBoxClass *parent_class = NULL;
guint
brasero_image_type_chooser_set_formats (BraseroImageTypeChooser *self,
BraseroImageFormat formats,
- gboolean show_autodetect)
+ gboolean show_autodetect,
+ gboolean is_video)
{
guint format_num;
GtkTreeIter iter;
@@ -100,7 +102,7 @@ brasero_image_type_chooser_set_formats (BraseroImageTypeChooser *self,
format_num ++;
gtk_list_store_append (GTK_LIST_STORE (store), &iter);
gtk_list_store_set (GTK_LIST_STORE (store), &iter,
- FORMAT_TEXT, _("ISO9660 images"),
+ FORMAT_TEXT, is_video? _("Video DVD image"):_("ISO9660 images"),
FORMAT_TYPE, BRASERO_IMAGE_FORMAT_BIN,
-1);
}
@@ -116,11 +118,29 @@ brasero_image_type_chooser_set_formats (BraseroImageTypeChooser *self,
if (formats & BRASERO_IMAGE_FORMAT_CUE) {
format_num ++;
- gtk_list_store_append (GTK_LIST_STORE (store), &iter);
- gtk_list_store_set (GTK_LIST_STORE (store), &iter,
- FORMAT_TEXT, _("Cue images"),
- FORMAT_TYPE, BRASERO_IMAGE_FORMAT_CUE,
- -1);
+ if (is_video) {
+ format_num ++;
+
+ gtk_list_store_append (GTK_LIST_STORE (store), &iter);
+ gtk_list_store_set (GTK_LIST_STORE (store), &iter,
+ FORMAT_TEXT, _("VCD image"),
+ FORMAT_TYPE, BRASERO_IMAGE_FORMAT_CUE,
+ -1);
+
+ gtk_list_store_append (GTK_LIST_STORE (store), &iter);
+ gtk_list_store_set (GTK_LIST_STORE (store), &iter,
+ FORMAT_TEXT, _("SVCD image"),
+ FORMAT_TYPE, BRASERO_IMAGE_FORMAT_CUE,
+ FORMAT_SVCD, TRUE,
+ -1);
+ }
+ else {
+ gtk_list_store_append (GTK_LIST_STORE (store), &iter);
+ gtk_list_store_set (GTK_LIST_STORE (store), &iter,
+ FORMAT_TEXT, _("Cue images"),
+ FORMAT_TYPE, BRASERO_IMAGE_FORMAT_CUE,
+ -1);
+ }
}
if (formats & BRASERO_IMAGE_FORMAT_CDRDAO) {
@@ -194,6 +214,26 @@ brasero_image_type_chooser_get_format (BraseroImageTypeChooser *self,
*format = priv->format;
}
+gboolean
+brasero_image_type_chooser_is_SVCD (BraseroImageTypeChooser *chooser)
+{
+ BraseroImageTypeChooserPrivate *priv;
+ GtkTreeModel *model;
+ gboolean value;
+ GtkTreeIter iter;
+
+ priv = BRASERO_IMAGE_TYPE_CHOOSER_PRIVATE (chooser);
+ if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (priv->combo), &iter))
+ return FALSE;
+
+ model = gtk_combo_box_get_model (GTK_COMBO_BOX (priv->combo));
+ gtk_tree_model_get (model, &iter,
+ FORMAT_SVCD, &value,
+ -1);
+
+ return value;
+}
+
static void
brasero_image_type_chooser_changed_cb (GtkComboBox *combo,
BraseroImageTypeChooser *self)
@@ -236,7 +276,8 @@ brasero_image_type_chooser_init (BraseroImageTypeChooser *obj)
store = gtk_list_store_new (FORMAT_LAST,
G_TYPE_STRING,
- G_TYPE_INT);
+ G_TYPE_INT,
+ G_TYPE_BOOLEAN);
priv->combo = gtk_combo_box_new_with_model (GTK_TREE_MODEL (store));
g_signal_connect (priv->combo,
diff --git a/libbrasero-burn/brasero-image-type-chooser.h b/libbrasero-burn/brasero-image-type-chooser.h
index 0146b21..d97f6d3 100644
--- a/libbrasero-burn/brasero-image-type-chooser.h
+++ b/libbrasero-burn/brasero-image-type-chooser.h
@@ -63,13 +63,16 @@ GtkWidget *brasero_image_type_chooser_new ();
guint
brasero_image_type_chooser_set_formats (BraseroImageTypeChooser *self,
BraseroImageFormat formats,
- gboolean show_autodetect);
+ gboolean show_autodetect,
+ gboolean is_video);
void
brasero_image_type_chooser_set_format (BraseroImageTypeChooser *self,
BraseroImageFormat format);
void
brasero_image_type_chooser_get_format (BraseroImageTypeChooser *self,
BraseroImageFormat *format);
+gboolean
+brasero_image_type_chooser_is_SVCD (BraseroImageTypeChooser *chooser);
G_END_DECLS
diff --git a/libbrasero-burn/brasero-src-image.c b/libbrasero-burn/brasero-src-image.c
index 4c5f90d..1d76d44 100644
--- a/libbrasero-burn/brasero-src-image.c
+++ b/libbrasero-burn/brasero-src-image.c
@@ -378,7 +378,7 @@ brasero_src_image_set_formats (BraseroSrcImage *dialog)
brasero_track_type_free (input);
- brasero_image_type_chooser_set_formats (BRASERO_IMAGE_TYPE_CHOOSER (priv->format), formats, TRUE);
+ brasero_image_type_chooser_set_formats (BRASERO_IMAGE_TYPE_CHOOSER (priv->format), formats, TRUE, FALSE);
format = brasero_track_image_cfg_get_forced_format (priv->track);
brasero_image_type_chooser_set_format (BRASERO_IMAGE_TYPE_CHOOSER (priv->format), format);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]