static int select_probes(struct sr_dev *dev) { struct sr_probe *probe; char **probelist; int max_probes, i; if (!opt_probes) return SR_OK; /* * This only works because a device by default initializes * and enables all its probes. */ max_probes = g_slist_length(dev->probes); probelist = parse_probestring(max_probes, opt_probes); if (!probelist) { return SR_ERR; } for (i = 0; i < max_probes; i++) { if (probelist[i]) { sr_dev_probe_name_set(dev, i + 1, probelist[i]); g_free(probelist[i]); } else { probe = sr_dev_probe_find(dev, i + 1); probe->enabled = FALSE; } } g_free(probelist); return SR_OK; }
static void probe_toggled(GtkCellRenderer *cel, gchar *path, GtkTreeModel *probes) { struct sr_dev *dev = g_object_get_data(G_OBJECT(probes), "dev"); GtkTreeIter iter; struct sr_probe *probe; gint i; gboolean en; (void)cel; gtk_tree_model_get_iter_from_string(probes, &iter, path); gtk_tree_model_get(probes, &iter, PROBE_NUMBER, &i, PROBE_ENABLED, &en, -1); probe = sr_dev_probe_find(dev, i); probe->enabled = !en; gtk_list_store_set(GTK_LIST_STORE(probes), &iter, PROBE_ENABLED, probe->enabled, -1); }