]> sigrok.org Git - sigrok-gtk.git/blobdiff - devselect.c
gtk: Consistent 'sigrok' spelling.
[sigrok-gtk.git] / devselect.c
index 950d94a338991b47b240b46b79ab2f2d46de6cc7..7ed45e4a884f8bed2be9372ab3da05dd7fc0ad2c 100644 (file)
@@ -24,6 +24,8 @@
 static void dev_selected(GtkComboBox *devbox, GObject *parent)
 {
        GtkTreeModel *devlist = gtk_combo_box_get_model(devbox);
+       GtkEntry *timesamples = g_object_get_data(parent, "timesamples");
+       GtkComboBox *timeunit = g_object_get_data(parent, "timeunit");
        GtkTreeIter iter;
        const gchar *name;
        GtkCheckMenuItem *menuitem;
@@ -38,13 +40,23 @@ static void dev_selected(GtkComboBox *devbox, GObject *parent)
 
        gtk_check_menu_item_set_active(menuitem, TRUE);
 
-       sr_session_dev_clear();
+       sr_session_dev_remove_all();
        if (sr_session_dev_add(dev) != SR_OK) {
                g_critical("Failed to use device.");
                sr_session_destroy();
                dev = NULL;
        }
        g_object_set_data(parent, "dev", dev);
+
+       /*
+        * Grey out the time unless the device is valid,
+        * and it supports sample limiting
+        */
+       const gboolean limit_samples = dev &&
+               sr_driver_hwcap_exists(dev->driver,
+               SR_HWCAP_LIMIT_SAMPLES);
+       gtk_widget_set_sensitive((GtkWidget*)timesamples, limit_samples);
+       gtk_widget_set_sensitive((GtkWidget*)timeunit, limit_samples);
 }
 
 static void dev_menuitem_toggled(GtkMenuItem *item, GtkComboBox *combo)
@@ -66,7 +78,7 @@ static void dev_menuitem_toggled(GtkMenuItem *item, GtkComboBox *combo)
 }
 
 #define GET_DEV_INST(dev) \
-       (dev)->plugin->get_dev_info((dev)->plugin_index, SR_DI_INST);
+       (dev)->driver->dev_info_get((dev)->driver_index, SR_DI_INST);
 
 void dev_select_rescan(GtkAction *action, GtkWindow *parent)
 {
@@ -91,8 +103,8 @@ void dev_select_rescan(GtkAction *action, GtkWindow *parent)
         */
        if (gtk_combo_box_get_active_iter(devbox, &iter)) {
                gtk_tree_model_get(GTK_TREE_MODEL(devlist), &iter, 1, &dev, -1);
-               /* FIXME: Use something other than dev->plugin->name */
-               sdevname = g_strdup(dev->plugin->name);
+               /* FIXME: Use something other than dev->driver->name */
+               sdevname = g_strdup(dev->driver->name);
        }
 
        /* Destroy the old menu items */
@@ -131,7 +143,7 @@ void dev_select_rescan(GtkAction *action, GtkWindow *parent)
                                2, menuitem,
                                -1);
 
-               if (sdevname && g_str_equal(sdevname, dev->plugin->name))
+               if (sdevname && g_str_equal(sdevname, dev->driver->name))
                        gtk_combo_box_set_active_iter(devbox, &iter);
        }
        if (sdevname)