Hi Huang-Huang, On Thu, May 20, 2021 at 7:44 AM Huang-Huang Bao <eh5@xxxxxxxx> wrote: > > 'notify_addressed_player_changed()' expected to be called with > 'player->changed_id' set to a non-zero value. > > player->changed_id = g_idle_add(notify_addressed_player_changed, > player); > > And 'avrcp_player_event()' relies on 'player->changed_id' to perform > Addressed Player Changed notification. However, > 'avrcp_unregister_player()' calls 'notify_addressed_player_changed()' > without adding it to the main loop and set 'player->changed_id'. To > indicate addreddsed player changed for both scenarios, we set > 'player->changed_id' to 1 at the head of > 'notify_addressed_player_changed()'. > > Fixes https://github.com/bluez/bluez/issues/142 > --- > profiles/audio/avrcp.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/profiles/audio/avrcp.c b/profiles/audio/avrcp.c > index 58d30b24d..ef721e17b 100644 > --- a/profiles/audio/avrcp.c > +++ b/profiles/audio/avrcp.c > @@ -1794,6 +1794,12 @@ static gboolean notify_addressed_player_changed(gpointer user_data) > }; > uint8_t i; > > + /* > + * Set changed_id to an non-zero value to indicate addreddsed player > + * changed. > + */ > + player->changed_id = 1; > + > avrcp_player_event(player, AVRCP_EVENT_ADDRESSED_PLAYER_CHANGED, NULL); > > /* > -- > 2.31.1 Applied, thanks. -- Luiz Augusto von Dentz