Mercurial > audlegacy-plugins
annotate src/bluetooth/bluetooth.c @ 2846:3d7f01edb388
updated pairing agent - added bonding signals
| author | Paula Stanciu <paula.stanciu@gmail.com> |
|---|---|
| date | Sun, 27 Jul 2008 22:15:41 +0300 |
| parents | d0cbf303869b |
| children | 671cdfc2d62d |
| rev | line source |
|---|---|
| 2839 | 1 /* |
| 2 * Audacious Bluetooth headset suport plugin | |
| 3 * | |
| 4 * Copyright (c) 2008 Paula Stanciu paula.stanciu@gmail.com | |
| 5 * | |
| 6 * This program is free software; you can redistribute it and/or modify | |
| 7 * it under the terms of the GNU General Public License as published by | |
| 8 * the Free Software Foundation; under version 3 of the License. | |
| 9 * | |
| 10 * This program is distributed in the hope that it will be useful, | |
| 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 13 * GNU General Public License for more details. | |
| 14 * | |
| 15 * You should have received a copy of the GNU General Public License | |
| 16 * along with this program. If not, see <http://www.gnu.org/licenses>. | |
| 17 */ | |
| 18 | |
| 2644 | 19 #include "bluetooth.h" |
|
2646
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
20 #include "marshal.h" |
|
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
21 #include "gui.h" |
| 2728 | 22 #include "scan_gui.h" |
|
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2756
diff
changeset
|
23 #include "agent.h" |
| 2644 | 24 #define DEBUG 1 |
| 25 static gboolean plugin_active = FALSE,exiting=FALSE; | |
|
2646
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
26 GList * current_device = NULL; |
| 2728 | 27 gint config = 0; |
| 28 gint devices_no = 0; | |
|
2646
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
29 GStaticMutex mutex = G_STATIC_MUTEX_INIT; |
|
2845
d0cbf303869b
removed interface freeze while pairing
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2842
diff
changeset
|
30 static GThread *connect_th; |
| 2644 | 31 void bluetooth_init ( void ); |
| 32 void bluetooth_cleanup ( void ); | |
| 33 void bt_cfg(void); | |
| 34 void bt_about(void); | |
|
2646
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
35 static void remote_device_found(DBusGProxy *object, char *address, const unsigned int class, const int rssi, gpointer user_data); |
|
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
36 static void discovery_started(DBusGProxy *object, gpointer user_data); |
|
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
37 static void remote_name_updated(DBusGProxy *object, const char *address, char *name, gpointer user_data); |
|
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
38 static void print_results(void); |
|
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
39 static void discovery_completed(DBusGProxy *object, gpointer user_data); |
|
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
40 void discover_devices(void); |
| 2728 | 41 void disconnect_dbus_signals(void); |
|
2646
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
42 |
|
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
43 |
| 2644 | 44 GeneralPlugin bluetooth_gp = |
| 45 { | |
|
2649
d891ba4be5a5
fixed crash when prefs window was closed while scanning
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2648
diff
changeset
|
46 .description = "Bluetooth audio support", |
| 2644 | 47 .init = bluetooth_init, |
| 48 .about = bt_about, | |
| 49 .configure = bt_cfg, | |
| 50 .cleanup = bluetooth_cleanup | |
| 51 }; | |
| 52 GeneralPlugin *bluetooth_gplist[] = { &bluetooth_gp, NULL }; | |
| 53 DECLARE_PLUGIN(bluetooth_gp, NULL, NULL, NULL, NULL, NULL, bluetooth_gplist, NULL, NULL) | |
| 2728 | 54 |
| 2644 | 55 void bluetooth_init ( void ) |
| 56 { | |
|
2646
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
57 audio_devices = NULL; |
|
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2756
diff
changeset
|
58 bus = NULL; |
|
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2756
diff
changeset
|
59 obj = NULL; |
|
2646
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
60 discover_devices(); |
| 2644 | 61 } |
| 62 | |
| 63 void bluetooth_cleanup ( void ) | |
| 64 { | |
|
2646
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
65 printf("bluetooth: exit\n"); |
|
2732
1a27c497e526
indentation and some small bug fixing
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2728
diff
changeset
|
66 if (config ==1 ){ |
|
2756
d3d71539d675
rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2734
diff
changeset
|
67 close_window(); |
|
2732
1a27c497e526
indentation and some small bug fixing
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2728
diff
changeset
|
68 config =0; |
|
2649
d891ba4be5a5
fixed crash when prefs window was closed while scanning
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2648
diff
changeset
|
69 } |
|
2732
1a27c497e526
indentation and some small bug fixing
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2728
diff
changeset
|
70 if(discover_finish == 2) { |
|
1a27c497e526
indentation and some small bug fixing
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2728
diff
changeset
|
71 dbus_g_connection_flush (bus); |
| 2734 | 72 dbus_g_connection_unref(bus); |
|
2732
1a27c497e526
indentation and some small bug fixing
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2728
diff
changeset
|
73 disconnect_dbus_signals(); |
| 2644 | 74 |
|
2732
1a27c497e526
indentation and some small bug fixing
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2728
diff
changeset
|
75 } |
| 2734 | 76 } |
|
2732
1a27c497e526
indentation and some small bug fixing
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2728
diff
changeset
|
77 |
| 2734 | 78 void bt_about( void ) |
| 79 { | |
| 80 printf("about call\n"); | |
| 81 } | |
| 2728 | 82 |
| 2734 | 83 void bt_cfg(void) |
| 84 { | |
| 85 printf("bt_cfg\n"); | |
| 86 config =1; | |
| 87 if(discover_finish == 2){ | |
| 88 if (devices_no == 0){ | |
| 89 printf("no devs!\n"); | |
| 90 show_scan(); | |
| 91 show_no_devices(); | |
| 92 }else | |
| 93 results_ui(); | |
| 2728 | 94 } |
| 2734 | 95 else show_scan(); |
| 96 printf("end of bt_cfg\n"); | |
| 97 } | |
| 2728 | 98 |
| 2734 | 99 void disconnect_dbus_signals() |
| 100 { | |
| 101 dbus_g_proxy_disconnect_signal(obj, "RemoteDeviceFound", G_CALLBACK(remote_device_found), bus); | |
| 102 dbus_g_proxy_disconnect_signal(obj, "DiscoveryStarted", G_CALLBACK(discovery_started), bus); | |
| 103 dbus_g_proxy_disconnect_signal(obj, "DiscoveryCompleted", G_CALLBACK(discovery_completed), bus); | |
| 104 dbus_g_proxy_disconnect_signal(obj, "RemoteNameUpdated", G_CALLBACK(remote_name_updated), NULL); | |
| 2644 | 105 |
| 2734 | 106 } |
| 2644 | 107 |
|
2756
d3d71539d675
rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2734
diff
changeset
|
108 void clean_devices_list(){ |
|
d3d71539d675
rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2734
diff
changeset
|
109 g_list_free(audio_devices); |
|
d3d71539d675
rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2734
diff
changeset
|
110 dbus_g_connection_flush (bus); |
|
d3d71539d675
rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2734
diff
changeset
|
111 dbus_g_connection_unref(bus); |
|
d3d71539d675
rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2734
diff
changeset
|
112 audio_devices = NULL; |
|
d3d71539d675
rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2734
diff
changeset
|
113 //g_list_free(current_device); |
|
d3d71539d675
rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2734
diff
changeset
|
114 } |
| 2644 | 115 |
| 2734 | 116 void refresh_call(void) |
| 117 { | |
| 118 printf("refresh function called\n"); | |
| 119 disconnect_dbus_signals(); | |
|
2756
d3d71539d675
rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2734
diff
changeset
|
120 clean_devices_list(); |
| 2734 | 121 if(discover_finish == 0 ||discover_finish== 2){ |
| 122 discover_finish = 0; | |
|
2756
d3d71539d675
rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2734
diff
changeset
|
123 |
| 2734 | 124 discover_devices(); |
|
2756
d3d71539d675
rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2734
diff
changeset
|
125 close_window(); |
|
d3d71539d675
rescan functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2734
diff
changeset
|
126 show_scan(); |
| 2728 | 127 } |
| 2734 | 128 else |
| 129 printf("Scanning please wait!\n"); | |
| 130 } | |
| 2644 | 131 |
|
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2756
diff
changeset
|
132 void bounding_created(gchar* address) |
|
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2756
diff
changeset
|
133 { |
|
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2756
diff
changeset
|
134 printf("Signal BoundingCreated : %s\n",address); |
|
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2756
diff
changeset
|
135 |
|
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2756
diff
changeset
|
136 } |
|
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2756
diff
changeset
|
137 |
|
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2756
diff
changeset
|
138 void bounding_removed(gchar* address) |
|
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2756
diff
changeset
|
139 { |
|
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2756
diff
changeset
|
140 printf("Signal: BoundingRemoved: %s\n",address); |
|
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2756
diff
changeset
|
141 |
|
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2756
diff
changeset
|
142 } |
|
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2756
diff
changeset
|
143 |
|
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2756
diff
changeset
|
144 |
|
2845
d0cbf303869b
removed interface freeze while pairing
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2842
diff
changeset
|
145 gpointer connect_call_th(void) |
| 2734 | 146 { |
| 2841 | 147 |
| 148 //I will have to enable the audio service if necessary | |
|
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2756
diff
changeset
|
149 |
|
2845
d0cbf303869b
removed interface freeze while pairing
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2842
diff
changeset
|
150 dbus_g_object_register_marshaller(marshal_VOID__STRING_UINT_INT, G_TYPE_NONE, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INT, G_TYPE_INVALID); |
| 2841 | 151 run_agents(); |
|
2845
d0cbf303869b
removed interface freeze while pairing
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2842
diff
changeset
|
152 dbus_g_proxy_call(obj,"CreateBonding",NULL,G_TYPE_STRING,((DeviceData*)(selected_dev->data))->address,G_TYPE_INVALID,G_TYPE_INVALID); |
|
d0cbf303869b
removed interface freeze while pairing
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2842
diff
changeset
|
153 |
|
d0cbf303869b
removed interface freeze while pairing
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2842
diff
changeset
|
154 } |
|
d0cbf303869b
removed interface freeze while pairing
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2842
diff
changeset
|
155 void connect_call(void) |
|
d0cbf303869b
removed interface freeze while pairing
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2842
diff
changeset
|
156 { |
|
d0cbf303869b
removed interface freeze while pairing
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2842
diff
changeset
|
157 connect_th = g_thread_create((GThreadFunc)connect_call_th,NULL,TRUE,NULL) ; |
| 2734 | 158 } |
|
2646
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
159 |
|
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
160 |
| 2734 | 161 static void remote_device_found(DBusGProxy *object, char *address, const unsigned int class, const int rssi, gpointer user_data) |
| 162 { | |
| 163 int found_in_list=FALSE; | |
| 164 g_static_mutex_lock(&mutex); | |
| 165 current_device = audio_devices; | |
| 166 if((class & 0x200404)==0x200404) | |
|
2646
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
167 { |
|
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
168 while(current_device != NULL) |
|
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
169 { |
|
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
170 if(g_str_equal(address,((DeviceData*)(current_device->data))->address)) |
|
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
171 { |
| 2734 | 172 found_in_list = TRUE; |
|
2646
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
173 break; |
|
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
174 } |
|
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
175 current_device=g_list_next(current_device); |
|
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
176 } |
| 2734 | 177 if(!found_in_list) |
| 178 { | |
| 179 DeviceData *dev= g_new0(DeviceData, 1); | |
| 180 dev->class = class; | |
| 181 dev->address = g_strdup(address); | |
| 182 dev->name = NULL; | |
| 183 audio_devices=g_list_prepend(audio_devices, dev); | |
|
2646
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
184 } |
|
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
185 } |
| 2734 | 186 g_static_mutex_unlock(&mutex); |
| 187 } | |
| 188 | |
| 189 static void discovery_started(DBusGProxy *object, gpointer user_data) | |
| 190 { | |
| 191 g_print("Signal: DiscoveryStarted()\n"); | |
| 192 discover_finish = 1; | |
| 193 } | |
| 194 | |
| 195 static void remote_name_updated(DBusGProxy *object, const char *address, char *name, gpointer user_data) | |
| 196 { | |
| 197 g_static_mutex_lock(&mutex); | |
| 198 current_device=audio_devices; | |
| 199 while(current_device != NULL) | |
| 200 { | |
| 201 if(g_str_equal(address,((DeviceData*)(current_device->data))->address)) | |
| 202 { | |
| 203 ((DeviceData*)(current_device->data))->name=g_strdup(name); | |
| 204 break; | |
| 205 } | |
| 206 current_device=g_list_next(current_device); | |
| 207 } | |
| 208 g_static_mutex_unlock(&mutex); | |
| 209 } | |
| 210 | |
| 211 static void print_results() | |
| 212 { | |
| 213 int i=0; | |
| 214 g_print("Final Scan results:\n"); | |
| 215 devices_no = g_list_length(audio_devices); | |
| 216 g_print("Number of audio devices: %d \n",devices_no); | |
| 217 if(devices_no==0 ) { | |
| 218 if(config ==1) show_no_devices(); | |
| 219 } else { | |
| 220 current_device=audio_devices; | |
| 221 while(current_device != NULL) | |
| 222 { | |
| 223 g_print("Device %d: Name: %s, Class: 0x%x, Address: %s\n",++i, | |
| 224 ((DeviceData*)(current_device->data))-> name, | |
| 225 ((DeviceData*)(current_device->data))-> class, | |
| 226 ((DeviceData*)(current_device->data))-> address); | |
| 227 current_device=g_list_next(current_device); | |
| 228 } | |
| 229 destroy_scan_window(); | |
| 230 if(config==1) { | |
| 231 destroy_scan_window(); | |
| 232 results_ui(); | |
| 233 } | |
| 234 // refresh_tree(); | |
| 235 } | |
| 236 } | |
|
2646
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
237 |
|
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
238 |
|
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
239 |
| 2734 | 240 static void discovery_completed(DBusGProxy *object, gpointer user_data) |
| 241 { | |
| 242 g_print("Signal: DiscoveryCompleted()\n"); | |
| 243 discover_finish =2; | |
| 244 print_results(); | |
| 245 } | |
|
2646
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
246 |
|
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
247 |
| 2728 | 248 |
| 2734 | 249 void discover_devices(void) |
| 250 { | |
| 251 GError *error = NULL; | |
| 252 // g_type_init(); | |
| 253 g_log_set_always_fatal (G_LOG_LEVEL_WARNING); | |
| 254 bus = dbus_g_bus_get(DBUS_BUS_SYSTEM, &error); | |
| 255 if (error != NULL) | |
| 256 { | |
| 257 g_printerr("Connecting to system bus failed: %s\n", error->message); | |
| 258 g_error_free(error); | |
| 259 } | |
| 260 obj = dbus_g_proxy_new_for_name(bus, "org.bluez", "/org/bluez/hci0", "org.bluez.Adapter"); | |
| 261 printf("bluetooth plugin - start discovery \n"); | |
| 262 dbus_g_object_register_marshaller(marshal_VOID__STRING_UINT_INT, G_TYPE_NONE, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INT, G_TYPE_INVALID); | |
|
2646
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
263 |
| 2734 | 264 dbus_g_proxy_add_signal(obj, "RemoteDeviceFound", G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INT, G_TYPE_INVALID); |
| 265 dbus_g_proxy_connect_signal(obj, "RemoteDeviceFound", G_CALLBACK(remote_device_found), bus, NULL); | |
|
2646
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
266 |
| 2734 | 267 dbus_g_proxy_add_signal(obj, "DiscoveryStarted", G_TYPE_INVALID); |
| 268 dbus_g_proxy_connect_signal(obj, "DiscoveryStarted", G_CALLBACK(discovery_started), bus, NULL); | |
|
2646
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
269 |
| 2734 | 270 dbus_g_proxy_add_signal(obj, "DiscoveryCompleted", G_TYPE_INVALID); |
| 271 dbus_g_proxy_connect_signal(obj, "DiscoveryCompleted", G_CALLBACK(discovery_completed), bus, NULL); | |
|
2646
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
272 |
| 2734 | 273 dbus_g_object_register_marshaller(marshal_VOID__STRING_STRING, G_TYPE_NONE, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID); |
| 2728 | 274 |
| 2734 | 275 dbus_g_proxy_add_signal(obj, "RemoteNameUpdated", G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID); |
| 276 dbus_g_proxy_connect_signal(obj, "RemoteNameUpdated", G_CALLBACK(remote_name_updated), NULL, NULL); | |
|
2646
7fbff3287a56
added device discovery in the plugin's prefs window
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2644
diff
changeset
|
277 |
| 2734 | 278 dbus_g_proxy_call(obj, "DiscoverDevices", &error, G_TYPE_INVALID, G_TYPE_INVALID); |
| 279 if (error != NULL) | |
| 280 { | |
| 281 g_printerr("Failed to discover devices: %s\n", error->message); | |
| 282 g_error_free(error); | |
| 283 } | |
| 2728 | 284 |
| 2734 | 285 } |
