[Xfce4-commits] [apps/xfburn] 06/06: Recognize blu-ray capabilities and show it in the preferences.

noreply at xfce.org noreply at xfce.org
Tue Mar 18 19:24:10 CET 2014


This is an automated email from the git hooks/post-receive script.

squisher pushed a commit to branch master
in repository apps/xfburn.

commit a0841eb840f0559226d82ede5896b3ca466df982
Author: David Mohr <david at mcbf.net>
Date:   Tue Mar 18 12:18:17 2014 -0600

    Recognize blu-ray capabilities and show it in the preferences.
---
 xfburn/xfburn-device-box.c         |    2 +-
 xfburn/xfburn-device.c             |   11 +++++++++++
 xfburn/xfburn-preferences-dialog.c |   12 +++++++++---
 xfburn/xfburn-udev-manager.c       |    6 +++++-
 4 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/xfburn/xfburn-device-box.c b/xfburn/xfburn-device-box.c
index ceca04d..6ee1998 100644
--- a/xfburn/xfburn-device-box.c
+++ b/xfburn/xfburn-device-box.c
@@ -563,7 +563,7 @@ check_disc_validity (XfburnDeviceBoxPrivate *priv)
         break;
       case XFBURN_PROFILE_BD_R:
       case XFBURN_PROFILE_BD_RE:
-        g_object_get (G_OBJECT (device), "dvdr", &priv->valid_disc, NULL);
+        g_object_get (G_OBJECT (device), "bd", &priv->valid_disc, NULL);
         break;
       case XFBURN_PROFILE_CDROM:
       case XFBURN_PROFILE_DVDROM:
diff --git a/xfburn/xfburn-device.c b/xfburn/xfburn-device.c
index 30b4e26..1731a80 100644
--- a/xfburn/xfburn-device.c
+++ b/xfburn/xfburn-device.c
@@ -44,6 +44,7 @@ enum {
   PROP_DVDR,
   PROP_DVDPLUSR,
   PROP_DVDRAM,
+  PROP_BD,
   PROP_TAO_BLOCK_TYPES,
   PROP_SAO_BLOCK_TYPES,
   PROP_RAW_BLOCK_TYPES,
@@ -80,6 +81,7 @@ struct _XfburnDevicePrivate {
   gboolean dvdr;
   gboolean dvdplusr;
   gboolean dvdram;
+  gboolean bd;
 
   GSList *supported_speeds;
 
@@ -137,6 +139,9 @@ xfburn_device_get_property (GObject *object, guint property_id,
     case PROP_DVDRAM:
       g_value_set_boolean (value, priv->dvdram);
       break;
+    case PROP_BD:
+      g_value_set_boolean (value, priv->bd);
+      break;
     case PROP_TAO_BLOCK_TYPES:
       g_value_set_int (value, priv->tao_block_types);
       break;
@@ -197,6 +202,9 @@ xfburn_device_set_property (GObject *object, guint property_id,
     case PROP_DVDRAM:
       priv->dvdram = g_value_get_boolean (value);
       break;
+    case PROP_BD:
+      priv->bd = g_value_get_boolean (value);
+      break;
     case PROP_TAO_BLOCK_TYPES:
       priv->tao_block_types = g_value_get_int (value);
       break;
@@ -274,6 +282,9 @@ xfburn_device_class_init (XfburnDeviceClass *klass)
   g_object_class_install_property (object_class, PROP_DVDRAM, 
                                    g_param_spec_boolean ("dvdram", _("Can burn DVDRAM"),
                                                         _("Can burn DVDRAM"), FALSE, G_PARAM_READWRITE));
+  g_object_class_install_property (object_class, PROP_BD,
+                                   g_param_spec_boolean ("bd", _("Can burn Blu-ray"),
+                                                        _("Can burn Blu-ray"), FALSE, G_PARAM_READWRITE));
   g_object_class_install_property (object_class, PROP_TAO_BLOCK_TYPES, 
                                    g_param_spec_int ("tao-block-types", _("libburn TAO block types"),
                                                      _("libburn TAO block types"), 0, G_MAXINT, 0, G_PARAM_READABLE));
diff --git a/xfburn/xfburn-preferences-dialog.c b/xfburn/xfburn-preferences-dialog.c
index c582402..e025905 100644
--- a/xfburn/xfburn-preferences-dialog.c
+++ b/xfburn/xfburn-preferences-dialog.c
@@ -75,6 +75,7 @@ enum
   DEVICE_LIST_COLUMN_CDRW,
   DEVICE_LIST_COLUMN_DVDR,
   DEVICE_LIST_COLUMN_DVDRAM,
+  DEVICE_LIST_COLUMN_BD,
   DEVICE_LIST_N_COLUMNS
 };
 
@@ -253,7 +254,8 @@ xfburn_preferences_dialog_init (XfburnPreferencesDialog * obj)
   gtk_box_pack_start (GTK_BOX (vbox2), scrolled_window, TRUE, TRUE, BORDER);
 
   store = gtk_list_store_new (DEVICE_LIST_N_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING,
-                              G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN);
+                              G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN,
+                              G_TYPE_BOOLEAN);
   priv->treeview_devices = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store));
   gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store), DEVICE_LIST_COLUMN_NAME, GTK_SORT_ASCENDING);
   gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (priv->treeview_devices), TRUE);
@@ -289,6 +291,9 @@ xfburn_preferences_dialog_init (XfburnPreferencesDialog * obj)
   gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (priv->treeview_devices), -1, _("Write DVD-RAM"),
                                                gtk_cell_renderer_toggle_new (), "active", DEVICE_LIST_COLUMN_DVDRAM,
                                                NULL);
+  gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (priv->treeview_devices), -1, _("Write Blu-ray"),
+                                               gtk_cell_renderer_toggle_new (), "active", DEVICE_LIST_COLUMN_BD,
+                                               NULL);
 
   hbox = gtk_hbox_new (FALSE, 0);
   gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, FALSE, BORDER);
@@ -426,13 +431,13 @@ refresh_devices_list (XfburnPreferencesDialog * dialog)
     GtkTreeIter iter;
     XfburnDevice *device_data;
     gchar *name, *addr;
-    gboolean cdr, cdrw, dvdr, dvdram;
+    gboolean cdr, cdrw, dvdr, dvdram, bd;
 
     device_data = (XfburnDevice *) device->data;
 
     g_object_get (G_OBJECT (device_data), "name", &name, "address", &addr,
                   "cdr", &cdr, "cdrw", &cdrw, "dvdr", &dvdr, "dvdram", &dvdram,
-                  NULL);
+                  "bd", &bd, NULL);
 
     gtk_list_store_append (GTK_LIST_STORE (model), &iter);
     gtk_list_store_set (GTK_LIST_STORE (model), &iter,
@@ -442,6 +447,7 @@ refresh_devices_list (XfburnPreferencesDialog * dialog)
                         DEVICE_LIST_COLUMN_CDRW, cdrw,
                         DEVICE_LIST_COLUMN_DVDR, dvdr, 
                         DEVICE_LIST_COLUMN_DVDRAM, dvdram, 
+                        DEVICE_LIST_COLUMN_BD, bd,
                         -1);
 
     g_free (name);
diff --git a/xfburn/xfburn-udev-manager.c b/xfburn/xfburn-udev-manager.c
index e3af4b2..0cd9567 100644
--- a/xfburn/xfburn-udev-manager.c
+++ b/xfburn/xfburn-udev-manager.c
@@ -251,10 +251,13 @@ xfburn_udev_manager_get_devices (XfburnUdevManager *udevman, gint *drives, gint
                    || g_udev_device_get_property_as_boolean(l->data, "ID_CDROM_DVD_PLUS_RW")
                    || g_udev_device_get_property_as_boolean(l->data, "ID_CDROM_DVD_PLUS_R_DL");
       gboolean dvdram = g_udev_device_get_property_as_boolean(l->data, "ID_CDROM_DVD_RAM");
+      gboolean bdr = g_udev_device_get_property_as_boolean(l->data, "ID_CDROM_BD")
+                  || g_udev_device_get_property_as_boolean(l->data, "ID_CDROM_BD_R")
+                  || g_udev_device_get_property_as_boolean(l->data, "ID_CDROM_BD_RE");
 
       (*drives)++;
 
-      if (cdr || dvdr || dvdram) {
+      if (cdr || dvdr || dvdram || bdr) {
         XfburnDevice *device;
         const gchar *addr, *name, *str_model, *str_vendor; 
 
@@ -291,6 +294,7 @@ xfburn_udev_manager_get_devices (XfburnUdevManager *udevman, gint *drives, gint
         g_object_set (G_OBJECT (device), "cdrw", cdrw, NULL);
         g_object_set (G_OBJECT (device), "dvdr", dvdr, NULL);
         g_object_set (G_OBJECT (device), "dvdram", dvdram, NULL);
+        g_object_set (G_OBJECT (device), "bd", bdr, NULL);
 
         if (!xfburn_device_can_burn (device)) {
           g_message ("Ignoring reader '%s' at '%s'", name, addr);

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list