X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=devselect.c;h=acdad5ce7abbe4c462c08d9af74a84635760de37;hb=a4f48bca49eb316be707abceda0ad964ddadc510;hp=3a6771c41abdeb577217542bd994b556916efcc6;hpb=91a22b68c7e8334de0e3d248a327c5a020f53e3c;p=sigrok-gtk.git diff --git a/devselect.c b/devselect.c index 3a6771c..acdad5c 100644 --- a/devselect.c +++ b/devselect.c @@ -21,30 +21,30 @@ #include #include "sigrok-gtk.h" -static void dev_selected(GtkComboBox *dev, GObject *parent) +static void dev_selected(GtkComboBox *devbox, GObject *parent) { - GtkTreeModel *devlist = gtk_combo_box_get_model(dev); + GtkTreeModel *devlist = gtk_combo_box_get_model(devbox); GtkTreeIter iter; const gchar *name; GtkCheckMenuItem *menuitem; - struct sr_device *device; + struct sr_dev *dev; - if (!gtk_combo_box_get_active_iter(dev, &iter)) { - g_object_set_data(parent, "device", NULL); + if (!gtk_combo_box_get_active_iter(devbox, &iter)) { + g_object_set_data(parent, "dev", NULL); return; } - gtk_tree_model_get(devlist, &iter, 0, &name, 1, &device, + gtk_tree_model_get(devlist, &iter, 0, &name, 1, &dev, 2, &menuitem, -1); gtk_check_menu_item_set_active(menuitem, TRUE); - sr_session_device_clear(); - if (sr_session_device_add(device) != SR_OK) { + sr_session_dev_clear(); + if (sr_session_dev_add(dev) != SR_OK) { g_critical("Failed to use device."); sr_session_destroy(); - device = NULL; + dev = NULL; } - g_object_set_data(parent, "device", device); + g_object_set_data(parent, "dev", dev); } static void dev_menuitem_toggled(GtkMenuItem *item, GtkComboBox *combo) @@ -65,20 +65,19 @@ static void dev_menuitem_toggled(GtkMenuItem *item, GtkComboBox *combo) } while (gtk_tree_model_iter_next(model, &iter)); } -#define GET_DEVICE_INSTANCE(device) \ - (device)->plugin->get_device_info((device)->plugin_index, \ - SR_DI_INSTANCE); +#define GET_DEV_INST(dev) \ + (dev)->driver->dev_info_get((dev)->driver_index, SR_DI_INST); void dev_select_rescan(GtkAction *action, GtkWindow *parent) { - GtkComboBox *dev = g_object_get_data(G_OBJECT(parent), "devcombo"); - g_return_if_fail(dev != NULL); - GtkListStore *devlist = GTK_LIST_STORE(gtk_combo_box_get_model(dev)); + GtkComboBox *devbox = g_object_get_data(G_OBJECT(parent), "devcombo"); + g_return_if_fail(devbox != NULL); + GtkListStore *devlist = GTK_LIST_STORE(gtk_combo_box_get_model(devbox)); GtkTreeIter iter; - struct sr_device *device; - struct sr_device_instance *sdi; + struct sr_dev *dev; + struct sr_dev_inst *sdi; gchar *sdevname = NULL; - GSList *devices, *l; + GSList *devs, *l; GtkUIManager *ui = g_object_get_data(G_OBJECT(parent), "ui_manager"); GtkWidget *menuitem = gtk_ui_manager_get_widget(ui, "/menubar/DevMenu/DevSelectMenu"); @@ -90,10 +89,10 @@ void dev_select_rescan(GtkAction *action, GtkWindow *parent) /* Make a copy of the selected device's short name for comparison. * We wish to select the same device after the refresh if possible. */ - if (gtk_combo_box_get_active_iter(dev, &iter)) { - gtk_tree_model_get(GTK_TREE_MODEL(devlist), &iter, 1, &device, -1); - /* FIXME: Use something other than device->plugin->name */ - sdevname = g_strdup(device->plugin->name); + 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->driver->name */ + sdevname = g_strdup(dev->driver->name); } /* Destroy the old menu items */ @@ -108,10 +107,10 @@ void dev_select_rescan(GtkAction *action, GtkWindow *parent) /* Scan for new devices and update our list */ /* TODO: Fix this in libsigrok first. */ /*sr_dev_scan();*/ - devices = sr_dev_list(); - for (l = devices; l; l = l->next) { - device = l->data; - sdi = GET_DEVICE_INSTANCE(device); + devs = sr_dev_list(); + for (l = devs; l; l = l->next) { + dev = l->data; + sdi = GET_DEV_INST(dev); gchar *name = sdi->model ? sdi->model : sdi->vendor; if (!name) name = "(unknown)"; @@ -122,51 +121,51 @@ void dev_select_rescan(GtkAction *action, GtkWindow *parent) radiolist = gtk_radio_menu_item_get_group( GTK_RADIO_MENU_ITEM(menuitem)); g_signal_connect(menuitem, "toggled", - G_CALLBACK(dev_menuitem_toggled), dev); + G_CALLBACK(dev_menuitem_toggled), devbox); gtk_menu_shell_prepend(devmenu, menuitem); gtk_list_store_append(devlist, &iter); gtk_list_store_set(devlist, &iter, 0, name, - 1, device, + 1, dev, 2, menuitem, -1); - if (sdevname && g_str_equal(sdevname, device->plugin->name)) - gtk_combo_box_set_active_iter(dev, &iter); + if (sdevname && g_str_equal(sdevname, dev->driver->name)) + gtk_combo_box_set_active_iter(devbox, &iter); } if (sdevname) g_free(sdevname); /* Select a default if nothing selected */ - if (!gtk_combo_box_get_active_iter(dev, &iter)) { + if (!gtk_combo_box_get_active_iter(devbox, &iter)) { if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(devlist), &iter)) return; /* Skip demo if there's another available */ GtkTreeIter first = iter; if (gtk_tree_model_iter_next(GTK_TREE_MODEL(devlist), &iter)) - gtk_combo_box_set_active_iter(dev, &iter); + gtk_combo_box_set_active_iter(devbox, &iter); else - gtk_combo_box_set_active_iter(dev, &first); + gtk_combo_box_set_active_iter(devbox, &first); } } GtkWidget *dev_select_combo_box_new(GtkWindow *parent) { - GtkWidget *dev = gtk_combo_box_new(); + GtkWidget *devbox = gtk_combo_box_new(); /* Populate device list */ GtkListStore *devlist = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_POINTER, GTK_TYPE_CHECK_MENU_ITEM); GtkCellRenderer *cel = gtk_cell_renderer_text_new(); - gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(dev), cel, TRUE); - gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(dev), cel, "text", 0); - gtk_combo_box_set_model(GTK_COMBO_BOX(dev), GTK_TREE_MODEL(devlist)); - g_signal_connect(dev, "changed", G_CALLBACK(dev_selected), parent); + gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(devbox), cel, TRUE); + gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(devbox), cel, "text", 0); + gtk_combo_box_set_model(GTK_COMBO_BOX(devbox), GTK_TREE_MODEL(devlist)); + g_signal_connect(devbox, "changed", G_CALLBACK(dev_selected), parent); - g_object_set_data(G_OBJECT(parent), "devcombo", dev); + g_object_set_data(G_OBJECT(parent), "devcombo", devbox); dev_select_rescan(NULL, parent); - return dev; + return devbox; }