diff options
| author | Luiz Augusto von Dentz <luiz.dentz@openbossa.org> | 2009-02-18 19:17:54 -0300 | 
|---|---|---|
| committer | Johan Hedberg <johan.hedberg@nokia.com> | 2009-02-19 14:27:38 +0200 | 
| commit | d048052453e0a8ea53061e68424f671df8c405a0 (patch) | |
| tree | e66b94261ad103d0398e79eb914b4ca4a3e115b7 /audio/main.c | |
| parent | 2ecef94bcdd0324da979752352a286be85520059 (diff) | |
Make audio plugin to use BtIO API.
Diffstat (limited to 'audio/main.c')
| -rw-r--r-- | audio/main.c | 27 | 
1 files changed, 18 insertions, 9 deletions
| diff --git a/audio/main.c b/audio/main.c index 846866a8..0e5afc42 100644 --- a/audio/main.c +++ b/audio/main.c @@ -38,6 +38,7 @@  #include <dbus/dbus.h>  #include "glib-helper.h" +#include "btio.h"  #include "plugin.h"  #include "logging.h"  #include "unix.h" @@ -64,19 +65,28 @@ static GKeyFile *load_config_file(const char *file)  	return keyfile;  } -static void sco_server_cb(GIOChannel *chan, int err, const bdaddr_t *src, -			const bdaddr_t *dst, gpointer data) +static void sco_server_cb(GIOChannel *chan, GError *err, gpointer data)  {  	int sk;  	struct audio_device *device;  	char addr[18]; +	bdaddr_t dst; -	if (err < 0) { -		error("accept: %s (%d)", strerror(-err), -err); +	if (err) { +		error("sco_server_cb: %s", err->message);  		return;  	} -	device = manager_find_device(dst, NULL, FALSE); +	bt_io_get(chan, BT_IO_SCO, &err, +			BT_IO_OPT_DEST_BDADDR, &dst, +			BT_IO_OPT_DEST, addr, +			BT_IO_OPT_INVALID); +	if (err) { +		error("bt_io_get: %s", err->message); +		goto drop; +	} + +	device = manager_find_device(&dst, NULL, FALSE);  	if (!device)  		goto drop; @@ -85,8 +95,6 @@ static void sco_server_cb(GIOChannel *chan, int err, const bdaddr_t *src,  		goto drop;  	} -	ba2str(dst, addr); -  	if (!get_hfp_active(device)) {  		error("Refusing non-HFP SCO connect attempt from %s", addr);  		goto drop; @@ -104,7 +112,6 @@ static void sco_server_cb(GIOChannel *chan, int err, const bdaddr_t *src,  drop:  	g_io_channel_close(chan); -	g_io_channel_unref(chan);  }  static DBusConnection *connection; @@ -129,7 +136,9 @@ static int audio_init(void)  		return -EIO;  	} -	sco_server = bt_sco_listen(BDADDR_ANY, 0, sco_server_cb, NULL); +	sco_server = bt_io_listen(BT_IO_SCO, sco_server_cb, NULL, NULL, +					NULL, NULL, +					BT_IO_OPT_INVALID);  	if (!sco_server) {  		error("Unable to start SCO server socket");  		return -EIO; | 
