annotate src/bluetooth/scan_gui.c @ 2889:6c53f9fa9029

Backed out changeset 59ff744e1e23
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 12 Aug 2008 20:29:49 +0300
parents 43557eb3180f
children 5e97b55f87cf
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2839
22a5075fc7f7 GPL Headers
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2764
diff changeset
1 /*
22a5075fc7f7 GPL Headers
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2764
diff changeset
2 * Audacious Bluetooth headset suport plugin
22a5075fc7f7 GPL Headers
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2764
diff changeset
3 *
22a5075fc7f7 GPL Headers
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2764
diff changeset
4 * Copyright (c) 2008 Paula Stanciu paula.stanciu@gmail.com
22a5075fc7f7 GPL Headers
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2764
diff changeset
5 *
22a5075fc7f7 GPL Headers
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2764
diff changeset
6 * This program is free software; you can redistribute it and/or modify
22a5075fc7f7 GPL Headers
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2764
diff changeset
7 * it under the terms of the GNU General Public License as published by
22a5075fc7f7 GPL Headers
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2764
diff changeset
8 * the Free Software Foundation; under version 3 of the License.
22a5075fc7f7 GPL Headers
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2764
diff changeset
9 *
22a5075fc7f7 GPL Headers
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2764
diff changeset
10 * This program is distributed in the hope that it will be useful,
22a5075fc7f7 GPL Headers
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2764
diff changeset
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22a5075fc7f7 GPL Headers
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2764
diff changeset
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22a5075fc7f7 GPL Headers
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2764
diff changeset
13 * GNU General Public License for more details.
22a5075fc7f7 GPL Headers
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2764
diff changeset
14 *
22a5075fc7f7 GPL Headers
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2764
diff changeset
15 * You should have received a copy of the GNU General Public License
22a5075fc7f7 GPL Headers
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2764
diff changeset
16 * along with this program. If not, see <http://www.gnu.org/licenses>.
22a5075fc7f7 GPL Headers
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2764
diff changeset
17 */
22a5075fc7f7 GPL Headers
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2764
diff changeset
18
2728
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
19 #include "scan_gui.h"
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
20 #include "bluetooth.h"
2847
671cdfc2d62d Basic pairing interface
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2839
diff changeset
21 #include "agent.h"
2728
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
22 static GtkWidget *window = NULL;
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
23 static GtkWidget *winbox;
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
24 static GtkWidget *scanbox;
2756
d3d71539d675 rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2732
diff changeset
25 static GtkWidget *buttonsbox;
2728
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
26 static GtkWidget *progressbox;
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
27 static GtkWidget *bluetooth_img;
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
28 static GtkWidget *scan_label;
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
29 static GtkWidget *progress_bar;
2756
d3d71539d675 rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2732
diff changeset
30 static GtkWidget *rescan_buttton;
d3d71539d675 rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2732
diff changeset
31 static GtkWidget *close_button;
2847
671cdfc2d62d Basic pairing interface
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2839
diff changeset
32 static gint usage=0;
671cdfc2d62d Basic pairing interface
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2839
diff changeset
33
2889
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
34 gpointer progress() {
2728
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
35
2732
1a27c497e526 indentation and some small bug fixing
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2728
diff changeset
36 for(;;){
1a27c497e526 indentation and some small bug fixing
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2728
diff changeset
37 if(window){
1a27c497e526 indentation and some small bug fixing
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2728
diff changeset
38 gtk_progress_bar_pulse(GTK_PROGRESS_BAR(progress_bar));
1a27c497e526 indentation and some small bug fixing
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2728
diff changeset
39 }
1a27c497e526 indentation and some small bug fixing
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2728
diff changeset
40 sleep(1);
2889
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
41 if(usage == 0){
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
42 if(discover_finish == 2 ) {
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
43 if(window){
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
44 gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progress_bar),1);
2732
1a27c497e526 indentation and some small bug fixing
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2728
diff changeset
45 }
2889
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
46 return 0;
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
47 }
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
48 }else
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
49 {
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
50 if(bonding_finish == 1 ) {
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
51 if(window){
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
52 gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progress_bar),1);
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
53 show_pairing_ok();
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
54 }
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
55 return 0;
2853
fed560b80720 added Retry button for the pairing interface
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2847
diff changeset
56 }
2889
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
57 }
2728
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
58 }
2732
1a27c497e526 indentation and some small bug fixing
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2728
diff changeset
59 return 0;
2728
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
60 }
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
61
2847
671cdfc2d62d Basic pairing interface
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2839
diff changeset
62 void show_pairing_ok()
671cdfc2d62d Basic pairing interface
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2839
diff changeset
63 {
2889
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
64 if(window ){
2847
671cdfc2d62d Basic pairing interface
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2839
diff changeset
65 gtk_label_set_text(GTK_LABEL(scan_label),_("Bonding finish!"));
671cdfc2d62d Basic pairing interface
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2839
diff changeset
66 }
671cdfc2d62d Basic pairing interface
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2839
diff changeset
67 }
671cdfc2d62d Basic pairing interface
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2839
diff changeset
68
2889
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
69 void show_no_devices(){
2732
1a27c497e526 indentation and some small bug fixing
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2728
diff changeset
70 if(window ){
2764
d45b4beadf6c Made "bluetooth" and "streambrowser" plugins translatable.
Stany HENRY <StrassBoy@gmail.com>
parents: 2756
diff changeset
71 gtk_label_set_text(GTK_LABEL(scan_label),_("No devices found!"));
2732
1a27c497e526 indentation and some small bug fixing
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2728
diff changeset
72 }
2728
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
73 }
2889
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
74 void destroy_scan_window(){
2728
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
75 gtk_widget_hide(window);
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
76 }
2889
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
77 void close_window(void){
2756
d3d71539d675 rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2732
diff changeset
78 printf("scan_gui close callback \n");
d3d71539d675 rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2732
diff changeset
79 gtk_widget_destroy (window);
d3d71539d675 rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2732
diff changeset
80 window = NULL;
d3d71539d675 rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2732
diff changeset
81 }
2889
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
82
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
83
2847
671cdfc2d62d Basic pairing interface
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2839
diff changeset
84 void show_scan(gint use)
2728
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
85 {
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
86 GThread *th1;
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
87 gchar *filename;
2847
671cdfc2d62d Basic pairing interface
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2839
diff changeset
88 usage = use;
671cdfc2d62d Basic pairing interface
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2839
diff changeset
89 /*
671cdfc2d62d Basic pairing interface
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2839
diff changeset
90 * 0 - discovery
671cdfc2d62d Basic pairing interface
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2839
diff changeset
91 * 1 - pairing
671cdfc2d62d Basic pairing interface
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2839
diff changeset
92 */
2728
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
93 if (!window)
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
94 {
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
95 window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
96 g_signal_connect (window, "destroy",G_CALLBACK (gtk_widget_destroyed), &window);
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
97
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
98 winbox = gtk_vbox_new(FALSE,2);
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
99 gtk_container_set_border_width (GTK_CONTAINER (winbox), 2);
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
100 gtk_container_add (GTK_CONTAINER (window), winbox);
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
101
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
102 scanbox = gtk_hbox_new(FALSE,2);
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
103 gtk_container_set_border_width(GTK_CONTAINER(scanbox),2);
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
104 gtk_container_add(GTK_CONTAINER(winbox),scanbox);
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
105
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
106 progressbox = gtk_vbox_new(FALSE,2);
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
107 gtk_container_set_border_width(GTK_CONTAINER(progressbox),4);
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
108 gtk_container_add(GTK_CONTAINER(winbox),progressbox);
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
109 filename = DATA_DIR G_DIR_SEPARATOR_S "images" G_DIR_SEPARATOR_S "blue.png";
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
110 bluetooth_img = gtk_image_new_from_file(filename);
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
111 gtk_image_set_pixel_size(GTK_IMAGE(bluetooth_img),-1);
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
112 gtk_container_add(GTK_CONTAINER(scanbox),bluetooth_img);
2847
671cdfc2d62d Basic pairing interface
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2839
diff changeset
113 if(usage == 0){
671cdfc2d62d Basic pairing interface
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2839
diff changeset
114 scan_label = gtk_label_new_with_mnemonic(_("Scanning..."));
671cdfc2d62d Basic pairing interface
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2839
diff changeset
115 }else
2889
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
116 {
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
117 scan_label = gtk_label_new_with_mnemonic(_("Pairing..."));
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
118 }
2728
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
119
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
120 gtk_container_add(GTK_CONTAINER(scanbox),scan_label);
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
121
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
122 progress_bar = gtk_progress_bar_new();
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
123 gtk_progress_bar_pulse(GTK_PROGRESS_BAR(progress_bar));
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
124 gtk_container_add(GTK_CONTAINER(progressbox),progress_bar);
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
125 th1 = g_thread_create((GThreadFunc)progress, NULL,TRUE,NULL);
2756
d3d71539d675 rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2732
diff changeset
126 buttonsbox = gtk_hbox_new(FALSE,2);
d3d71539d675 rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2732
diff changeset
127 gtk_container_set_border_width(GTK_CONTAINER(buttonsbox),2);
d3d71539d675 rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2732
diff changeset
128 gtk_container_add(GTK_CONTAINER(progressbox),buttonsbox);
2847
671cdfc2d62d Basic pairing interface
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2839
diff changeset
129 /* I have to modify the rescan button with a play one
671cdfc2d62d Basic pairing interface
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2839
diff changeset
130 * and treat the case when the bounding is not ok
671cdfc2d62d Basic pairing interface
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2839
diff changeset
131 */
2889
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
132 rescan_buttton = gtk_button_new_with_mnemonic(_("Rescan"));
6c53f9fa9029 Backed out changeset 59ff744e1e23
Matti Hamalainen <ccr@tnsp.org>
parents: 2854
diff changeset
133 g_signal_connect(rescan_buttton,"clicked",G_CALLBACK (refresh_call),NULL);
2756
d3d71539d675 rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2732
diff changeset
134
2764
d45b4beadf6c Made "bluetooth" and "streambrowser" plugins translatable.
Stany HENRY <StrassBoy@gmail.com>
parents: 2756
diff changeset
135 close_button = gtk_button_new_with_mnemonic(_("Close"));
2756
d3d71539d675 rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2732
diff changeset
136 gtk_container_add(GTK_CONTAINER(buttonsbox),rescan_buttton);
d3d71539d675 rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2732
diff changeset
137 gtk_container_add(GTK_CONTAINER(buttonsbox),close_button);
d3d71539d675 rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2732
diff changeset
138 g_signal_connect(close_button,"clicked",G_CALLBACK (close_window),NULL);
d3d71539d675 rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2732
diff changeset
139
d3d71539d675 rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2732
diff changeset
140 gtk_window_set_default_size (GTK_WINDOW (window), 60, 40);
d3d71539d675 rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2732
diff changeset
141 gtk_window_set_resizable(GTK_WINDOW(window),FALSE);
2728
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
142 if (!GTK_WIDGET_VISIBLE (window))
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
143 gtk_widget_show_all (window);
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
144 else
2732
1a27c497e526 indentation and some small bug fixing
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2728
diff changeset
145 {
2728
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
146 gtk_widget_destroy (window);
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
147 g_free(filename);
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
148 window = NULL;
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
149 }
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
150
2732
1a27c497e526 indentation and some small bug fixing
Paula Stanciu <paula.stanciu@gmail.com>
parents: 2728
diff changeset
151 }
2728
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
152
229647ca4942 added some UI stuff
paula@crocodil
parents:
diff changeset
153 }