From: Luiz Augusto von Dentz <redacted>
This cause some clients like PulseAudio to fail to find a proper
transport since connected state is send before transport configuration
is set.
To fix this now SetConfiguration is called early on when headset is still
in connecting phase, this matches sink/source where SetConfiguration is
also called before connected.
---
audio/media.c | 11 ++++-------
1 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/audio/media.c b/audio/media.c
index 0e6ccc9..b28bb33 100644
--- a/audio/media.c
+++ b/audio/media.c
@@ -151,16 +151,13 @@ static void headset_state_changed(struct audio_device *dev,
switch (new_state) {
case HEADSET_STATE_DISCONNECTED:
- if (old_state != HEADSET_STATE_CONNECTING)
- media_endpoint_clear_configuration(endpoint);
+ media_endpoint_clear_configuration(endpoint);
+ break;
case HEADSET_STATE_CONNECTING:
+ media_endpoint_set_configuration(endpoint, dev, NULL, 0,
+ headset_setconf_cb, dev);
break;
case HEADSET_STATE_CONNECTED:
- if (old_state != HEADSET_STATE_PLAY_IN_PROGRESS &&
- old_state != HEADSET_STATE_PLAYING)
- media_endpoint_set_configuration(endpoint, dev, NULL,
- 0, headset_setconf_cb,
- dev);
break;
case HEADSET_STATE_PLAY_IN_PROGRESS:
break;--
1.7.1