gboolean audio_device_is_active(struct audio_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; else if (!strcmp(interface, AUDIO_CONTROL_INTERFACE) && dev->control && control_is_active(dev)) return TRUE; else if (!strcmp(interface, AUDIO_GATEWAY_INTERFACE) && dev->gateway && gateway_is_connected(dev)) return TRUE; return FALSE; }
gboolean device_is_connected(struct audio_device *dev, const char *interface) { #ifndef BT_ALT_STACK 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; else if (!strcmp(interface, AUDIO_CONTROL_INTERFACE) && dev->headset && control_is_active(dev)) return TRUE; #endif return FALSE; }
gboolean audio_device_is_active(struct audio_device *dev, const char *interface) { if (!interface) { if ((dev->sink || dev->source) && avdtp_is_connected(dev)) return TRUE; } else if (!strcmp(interface, AUDIO_SINK_INTERFACE) && dev->sink && avdtp_is_connected(dev)) return TRUE; else if (!strcmp(interface, AUDIO_SOURCE_INTERFACE) && dev->source && avdtp_is_connected(dev)) return TRUE; else if (!strcmp(interface, AUDIO_CONTROL_INTERFACE) && dev->control && control_is_active(dev)) return TRUE; return FALSE; }
uint8_t device_get_state(struct audio_device *dev) { avdtp_state_t sink_state; headset_state_t hs_state; if (dev->sink && sink_is_active(dev)) { sink_state = sink_get_state(dev); return avdtp_to_ipc_state(sink_state); } else if (dev->headset && headset_is_active(dev)) { hs_state = headset_get_state(dev); return hs_to_ipc_state(hs_state); } else if (dev->control && control_is_active(dev)) return STATE_CONNECTED; return STATE_DISCONNECTED; }