diff mbox series

[BlueZ,v3] avrcp: Fix unregister AVRCP player

Message ID 20210520092200.14937-1-eh5@sokka.cn
State New
Headers show
Series [BlueZ,v3] avrcp: Fix unregister AVRCP player | expand

Commit Message

Huang-Huang Bao May 20, 2021, 9:22 a.m. UTC
'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(+)

--
2.31.1

Comments

Huang-Huang Bao May 22, 2021, 12:25 a.m. UTC | #1
Hi,

Seems the test bot failed to send mail, but all tests for this patch did 
passed though, see 
https://github.com/BluezTestBot/bluez/pull/824/checks?check_run_id=2628653346.

Should I resend the patch to make test bot re-run the tests and resend 
result mail?

Regards,
Bao

On 5/20/21 5:22 PM, Huang-Huang Bao 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

>
Luiz Augusto von Dentz May 22, 2021, 12:25 a.m. UTC | #2
Hi Huang-Huang,

On Thu, May 20, 2021 at 7:44 AM Huang-Huang Bao <eh5@sokka.cn> 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
Huang-Huang Bao May 22, 2021, 12:29 a.m. UTC | #3
Hi, Luiz

Oh, what a timing, thanks!

On 5/22/21 8:25 AM, Luiz Augusto von Dentz wrote:
> Hi Huang-Huang,

>

> On Thu, May 20, 2021 at 7:44 AM Huang-Huang Bao <eh5@sokka.cn> 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.

>
diff mbox series

Patch

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);

 	/*