#include <gtk/gtk.h>
#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)
} 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)->plugin->dev_info_get((dev)->plugin_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");
/* 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->plugin->name */
+ sdevname = g_strdup(dev->plugin->name);
}
/* Destroy the old menu items */
/* 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)";
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->plugin->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;
}