diff options
Diffstat (limited to 'plugins/lib/bluealsa/hal-bluealsa-transports.c')
-rw-r--r-- | plugins/lib/bluealsa/hal-bluealsa-transports.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/plugins/lib/bluealsa/hal-bluealsa-transports.c b/plugins/lib/bluealsa/hal-bluealsa-transports.c index 56e1a29..590ab5d 100644 --- a/plugins/lib/bluealsa/hal-bluealsa-transports.c +++ b/plugins/lib/bluealsa/hal-bluealsa-transports.c @@ -74,6 +74,7 @@ bool halBlueAlsaTransportFind( } + int halBlueAlsaTransportUpdate( const bluealsa_watch * watch, bluealsa_transport_t * list, @@ -129,7 +130,8 @@ static bool halBlueAlsaTransportMatch(const struct ba_msg_transport * transport1 if (transport1->type != transport2->type) goto done; - if (transport1->stream != transport2->stream) + /* with HFP/ofono, a NULL codec means a hangup. So we consider that the transport has disappeared in that case */ + if (transport1->codec != transport2->codec) goto done; if (bacmp(&transport1->addr, &transport2->addr) != 0) { @@ -146,8 +148,8 @@ char * halBlueAlsaTransportAsString(char * buff, size_t len, const struct ba_msg ba2str(&transport->addr, addr); snprintf(buff, len, "%s,%s,%s", addr, - transport->type == BA_PCM_TYPE_A2DP?"a2dp":"sco", - transport->stream == BA_PCM_STREAM_PLAYBACK?"playback":"capture"); + transport->type & BA_PCM_TYPE_A2DP?"a2dp":"sco", + transport->type & BA_PCM_STREAM_PLAYBACK?"playback":"capture"); return buff; } |