diff options
Diffstat (limited to 'audio/headset.c')
| -rw-r--r-- | audio/headset.c | 20 | 
1 files changed, 15 insertions, 5 deletions
| diff --git a/audio/headset.c b/audio/headset.c index ca7cc189..6599e1d7 100644 --- a/audio/headset.c +++ b/audio/headset.c @@ -59,6 +59,8 @@  #include "headset.h"  #include "glib-helper.h"  #include "dbus-common.h" +#include "../src/adapter.h" +#include "../src/device.h"  #define DC_TIMEOUT 3000 @@ -1810,8 +1812,8 @@ static GDBusSignalTable headset_signals[] = {  	{ NULL, NULL }  }; -static void headset_set_channel(struct headset *headset, sdp_record_t *record, -				uint16_t svc) +static void headset_set_channel(struct headset *headset, +				const sdp_record_t *record, uint16_t svc)  {  	int ch;  	sdp_list_t *protos; @@ -1835,9 +1837,15 @@ static void headset_set_channel(struct headset *headset, sdp_record_t *record,  		error("Unable to get RFCOMM channel from Headset record");  } -void headset_update(struct audio_device *dev, sdp_record_t *record, uint16_t svc) +void headset_update(struct audio_device *dev, uint16_t svc, +			const char *uuidstr)  {  	struct headset *headset = dev->headset; +	const sdp_record_t *record; + +	record = btd_device_get_record(dev->btd_dev, uuidstr); +	if (!record) +		return;  	switch (svc) {  	case HANDSFREE_SVCLASS_ID: @@ -1918,10 +1926,11 @@ void headset_unregister(struct audio_device *dev)  		AUDIO_HEADSET_INTERFACE);  } -struct headset *headset_init(struct audio_device *dev, sdp_record_t *record, -				uint16_t svc) +struct headset *headset_init(struct audio_device *dev, uint16_t svc, +				const char *uuidstr)  {  	struct headset *hs; +	const sdp_record_t *record;  	hs = g_new0(struct headset, 1);  	hs->rfcomm_ch = -1; @@ -1931,6 +1940,7 @@ struct headset *headset_init(struct audio_device *dev, sdp_record_t *record,  	hs->hfp_active = FALSE;  	hs->cli_active = FALSE; +	record = btd_device_get_record(dev->btd_dev, uuidstr);  	if (!record)  		goto register_iface; | 
