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;
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)
}
#define GET_DEV_INST(dev) \
- (dev)->plugin->dev_info_get((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)
{
*/
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 */
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)