Mercurial > audlegacy-plugins
diff src/bluetooth/gui.c @ 2728:229647ca4942
added some UI stuff
| author | paula@crocodil |
|---|---|
| date | Sun, 29 Jun 2008 00:37:01 +0300 |
| parents | d891ba4be5a5 |
| children | 1a27c497e526 |
line wrap: on
line diff
--- a/src/bluetooth/gui.c Mon Jun 23 12:15:36 2008 +0300 +++ b/src/bluetooth/gui.c Sun Jun 29 00:37:01 2008 +0300 @@ -3,101 +3,110 @@ static GtkWidget *window = NULL; static GtkTreeModel *model; -GtkWidget *mainbox; -GtkWidget *hbox_top; -GtkWidget *hbox_bottom; -GtkWidget *box_about; -GtkWidget *box_about_left; -GtkWidget *box_about_right; -GtkWidget *headset_frame; -GtkWidget *about_frame; -GtkWidget *refresh; -GtkWidget *connect_button; -GtkWidget *close_button; -GtkWidget *treeview; -GtkWidget *label_p; -GtkWidget *label_c; -GtkWidget *label_a; -GtkWidget *label_prod; -GtkWidget *label_class; -GtkWidget *label_address; -GList * dev = NULL; +static GtkWidget *mainbox; +static GtkWidget *hbox_top; +static GtkWidget *hbox_bottom; +static GtkWidget *box_about; +static GtkWidget *box_about_left; +static GtkWidget *box_about_right; +static GtkWidget *headset_frame; +static GtkWidget *about_frame; +static GtkWidget *refresh; +static GtkWidget *connect_button; +static GtkWidget *close_button; +static GtkWidget *treeview; +static GtkWidget *label_p; +static GtkWidget *label_c; +static GtkWidget *label_a; +static GtkWidget *label_prod; +static GtkWidget *label_class; +static GtkWidget *label_address; +static GList * dev = NULL; +gchar *status = NULL; enum{ COLUMN_PRODUCER, NUM_COLUMNS }; -static DeviceData test_data[]= -{ - {0,"00:00:00:00:00","Scanning"} -}; - static GtkTreeModel * create_model(void) { GtkListStore *store; GtkTreeIter iter; - gint i=0; - /* create list store */ + /* create list store */ store = gtk_list_store_new(NUM_COLUMNS, G_TYPE_STRING); - - /* add data to the list store */ - for(i = 0;i<G_N_ELEMENTS(test_data);i++) + dev = audio_devices; + if(dev == NULL) { + /*if we are scanning for devices now then print the Scanning message, + * else we print the "no devices found message */ + if(discover_finish == 1) + /*we are scanning*/ + status = g_strdup_printf("Scanning"); + else + status = g_strdup_printf("No devices found!"); + /* add the status to the list */ + gtk_list_store_append(store,&iter); + gtk_list_store_set(store,&iter, COLUMN_PRODUCER,status,-1); + return GTK_TREE_MODEL(store); + } + while(dev != NULL) { gtk_list_store_append(store,&iter); - gtk_list_store_set(store,&iter, - COLUMN_PRODUCER, test_data[i].name,-1); + gtk_list_store_set(store,&iter, COLUMN_PRODUCER, + ((DeviceData*)(dev->data))-> name,-1); + dev = g_list_next(dev); } - return GTK_TREE_MODEL(store); + return GTK_TREE_MODEL(store); } static GtkTreeModel * rebuild_model(void) { GtkListStore *store; GtkTreeIter iter; - gint i=0; gint dev_no=0; GList *dev; gchar *temp; if(!window) return NULL; - /* create list store */ + /* create list store */ store = gtk_list_store_new(NUM_COLUMNS, G_TYPE_STRING); - + /*add inf to test_data from audio_devices */ dev_no = g_list_length(audio_devices); dev = audio_devices; + if(dev == NULL || discover_finish == 0) { + /*if we are scanning for devices now then print the Scanning message, + * else we print the "no devices found message */ + printf("discover: %d\n",discover_finish); + if(discover_finish == 1) { + /*we are scanning*/ + status = g_strdup_printf("Scanning"); + } else + status = g_strdup_printf("No devices found!"); + /* add the status to the list */ + gtk_list_store_append(store,&iter); + gtk_list_store_set(store,&iter, COLUMN_PRODUCER,status,-1); + gtk_label_set_text(GTK_LABEL(label_prod),status); + return GTK_TREE_MODEL(store); + } + + /* add data to the list store */ while(dev != NULL) { - test_data[i].name = ((DeviceData*)(dev->data))-> name; - test_data[i].class = ((DeviceData*)(dev->data))-> class; - test_data[i].address = ((DeviceData*)(dev->data))-> address; - i++; - dev=g_list_next(dev); - } - if (dev_no == 0) - { - test_data[0].name = "No devices found!"; - test_data[0].class = 0; - test_data[0].address = "00:00:00:00:00"; + gtk_list_store_append(store,&iter); + gtk_list_store_set(store,&iter, COLUMN_PRODUCER, + ((DeviceData*)(dev->data))-> name,-1); + dev = g_list_next(dev); } - - /* add data to the list store */ - for(i = 0;i<G_N_ELEMENTS(test_data);i++) - { - gtk_list_store_append(store,&iter); - gtk_list_store_set(store,&iter, - COLUMN_PRODUCER, test_data[i].name,-1); - } - //set the labels - temp = g_strdup_printf("0x%x",test_data[0].class); - gtk_label_set_text(GTK_LABEL(label_prod),test_data[0].name); - gtk_label_set_text(GTK_LABEL(label_class),temp); - gtk_label_set_text(GTK_LABEL(label_address),test_data[0].address); - - return GTK_TREE_MODEL(store); + //set the labels + // temp = g_strdup_printf("0x%x",((DeviceData*)(dev->data))->class); + gtk_label_set_text(GTK_LABEL(label_prod),((DeviceData*)(dev->data))->name); +// gtk_label_set_text(GTK_LABEL(label_class),temp); + gtk_label_set_text(GTK_LABEL(label_address),((DeviceData*)(dev->data))->address); + g_free(temp); + return GTK_TREE_MODEL(store); } @@ -106,8 +115,8 @@ { if(!window) return; - model = rebuild_model(); - gtk_tree_view_set_model(GTK_TREE_VIEW(treeview),GTK_TREE_MODEL(model)); + model = rebuild_model(); + gtk_tree_view_set_model(GTK_TREE_VIEW(treeview),GTK_TREE_MODEL(model)); } @@ -139,6 +148,7 @@ GtkTreeIter iter; gint sel; gchar *temp; + gint i; printf("select\n"); GtkTreeSelection *selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(treeview)); if(gtk_tree_selection_get_selected (selection, NULL,&iter)){ @@ -146,21 +156,26 @@ path = gtk_tree_model_get_path (model, &iter); sel = gtk_tree_path_get_indices (path)[0]; printf("i=%d\n",sel); - temp = g_strdup_printf("0x%x",test_data[sel].class); - gtk_label_set_text(GTK_LABEL(label_prod),test_data[sel].name); + dev = audio_devices; + for(i=0;i<sel;i++) + dev = g_list_next(dev); + if(dev != NULL) { + temp = g_strdup_printf("0x%x",((DeviceData*)(dev->data))->class); + gtk_label_set_text(GTK_LABEL(label_prod),((DeviceData*)(dev->data))->name); gtk_label_set_text(GTK_LABEL(label_class),temp); - gtk_label_set_text(GTK_LABEL(label_address),test_data[sel].address); + gtk_label_set_text(GTK_LABEL(label_address),((DeviceData*)(dev->data))->address); gtk_tree_path_free (path); g_free(temp); - + }else + gtk_label_set_text(GTK_LABEL(label_prod),status); + g_free(status); + } - - +} -} -void bt_cfg() +void results_ui() { - + gchar *temp; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); @@ -206,7 +221,7 @@ gtk_container_add (GTK_CONTAINER (headset_frame), treeview); /* add columns to the tree view */ add_columns (GTK_TREE_VIEW (treeview)); - + g_signal_connect(treeview,"cursor-changed",G_CALLBACK(select_row),treeview); @@ -238,7 +253,7 @@ /*right labels */ - label_prod = gtk_label_new("Scanning"); + label_prod = gtk_label_new(" "); gtk_container_add(GTK_CONTAINER(box_about_right),label_prod); label_class = gtk_label_new(" "); @@ -248,7 +263,16 @@ label_address = gtk_label_new(" "); gtk_container_add(GTK_CONTAINER(box_about_right),label_address); - gtk_window_set_default_size (GTK_WINDOW (window), 480, 180); + dev = audio_devices; + if(dev != NULL) { + temp = g_strdup_printf("0x%x",((DeviceData*)(dev->data))->class); + gtk_label_set_text(GTK_LABEL(label_prod),((DeviceData*)(dev->data))->name); + gtk_label_set_text(GTK_LABEL(label_class),temp); + gtk_label_set_text(GTK_LABEL(label_address),((DeviceData*)(dev->data))->address); + g_free(temp); + } + + gtk_window_set_default_size (GTK_WINDOW (window), 460, 150); if (!GTK_WIDGET_VISIBLE (window)) gtk_widget_show_all (window); else
