diff options
Diffstat (limited to 'audio/device.c')
| -rw-r--r-- | audio/device.c | 23 | 
1 files changed, 23 insertions, 0 deletions
diff --git a/audio/device.c b/audio/device.c index 2a6498ee..2c06233e 100644 --- a/audio/device.c +++ b/audio/device.c @@ -417,3 +417,26 @@ uint8_t device_get_state(struct device *dev)  	return STATE_DISCONNECTED;  } + +gboolean device_is_connected(struct device *dev, const char *interface) +{ +	if (!interface) { +		if ((dev->sink || dev->source) && +			avdtp_is_connected(&dev->src, &dev->dst)) +			return TRUE; + +		if (dev->headset && headset_is_active(dev)) +			return TRUE; +	} +	else if (!strcmp(interface, AUDIO_SINK_INTERFACE) && dev->sink && +			avdtp_is_connected(&dev->src, &dev->dst)) +		return TRUE; +	else if (!strcmp(interface, AUDIO_SOURCE_INTERFACE) && dev->source && +			avdtp_is_connected(&dev->src, &dev->dst)) +		return TRUE; +	else if (!strcmp(interface, AUDIO_HEADSET_INTERFACE) && dev->headset && +			headset_is_active(dev)) +		return TRUE; + +	return FALSE; +}  | 
