static gboolean audio_device_is_connected(struct audio_device *dev) { if (dev->headset) { headset_state_t state = headset_get_state(dev); if (state == HEADSET_STATE_CONNECTED || state == HEADSET_STATE_PLAY_IN_PROGRESS || state == HEADSET_STATE_PLAYING) return TRUE; } if (dev->sink) { sink_state_t state = sink_get_state(dev); if (state == SINK_STATE_CONNECTED || state == SINK_STATE_PLAYING) return TRUE; } if (dev->source) { source_state_t state = source_get_state(dev); if (state == SOURCE_STATE_CONNECTED || state == SOURCE_STATE_PLAYING) return TRUE; } return FALSE; }
gboolean sink_is_streaming(struct audio_device *dev) { struct sink *sink = dev->sink; if (sink_get_state(dev) == AVDTP_STATE_STREAMING) 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; }