Re: [PATCH 3/5] AVRCP: respond with UINT32_MAX if duration is not available

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Luiz,

On Mon, Oct 17, 2011 at 5:57 AM, Luiz Augusto von Dentz
<luiz.dentz@xxxxxxxxx> wrote:
> Hi Lucas,
>
> On Sat, Oct 15, 2011 at 12:28 AM, Lucas De Marchi
> <lucas.demarchi@xxxxxxxxxxxxxx> wrote:
>> Section 5.4.1 of AVRCP 1.3 spec says:
>>
>>        If TG does not support SongLength And SongPosition on TG, then TG shall
>>        return 0xFFFFFFFF.
>>
>> SongPosition is always available, but song length depends on user to
>> provied it.
>> ---
>>  audio/avrcp.c     |    2 +-
>>  doc/media-api.txt |    4 +++-
>>  2 files changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/audio/avrcp.c b/audio/avrcp.c
>> index 8b48e83..1b55e33 100644
>> --- a/audio/avrcp.c
>> +++ b/audio/avrcp.c
>> @@ -808,7 +808,7 @@ static uint8_t avrcp_handle_get_play_status(struct avrcp_player *player,
>>                                                AVRCP_MEDIA_ATTRIBUTE_DURATION,
>>                                                player->user_data));
>>
>> -       duration = htonl(duration);
>> +       duration = duration ? htonl(duration) : UINT32_MAX;
>>        position = htonl(position);
>
> I would prefer doing this on RegisterPlayer/parse_player_metadata as
> we do with title, so if is not present then we set UINT32_MAX.

Humn... I don't know if this is good. 'Duration' is replied on both
GetElementAttributes and GetPlayStatus commands and they have
different ways to inform about a unavailable attribute. While in the
former we should use zero-length string, the later uses UINT32_MAX.


>
>>        memcpy(&pdu->params[0], &duration, 4);
>> diff --git a/doc/media-api.txt b/doc/media-api.txt
>> index b8dcdbd..204f33e 100644
>> --- a/doc/media-api.txt
>> +++ b/doc/media-api.txt
>> @@ -114,7 +114,9 @@ Methods             void RegisterEndpoint(object endpoint, dict properties)
>>
>>                                uint32 Duration:
>>
>> -                                       Track duration in milliseconds
>> +                                       Track duration in milliseconds. If it's
>> +                                       set to 0 or left blank, it will be
>> +                                       treated as not available.
>
> 0 might be a valid duration so I would just treat as not available if
> Duration is not part of the metadata or if the value is actually
> UINT32_MAX which can happen if the duration exceeds 32 bits.

Ok.

Lucas De Marchi
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux