From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: MIME-Version: 1.0 In-Reply-To: <1316060497-4068-5-git-send-email-lucas.demarchi@profusion.mobi> References: <1316060497-4068-1-git-send-email-lucas.demarchi@profusion.mobi> <1316060497-4068-5-git-send-email-lucas.demarchi@profusion.mobi> Date: Fri, 16 Sep 2011 10:50:58 +0300 Message-ID: Subject: Re: [PATCH 4/5] avrcp: fix handling of metadata item 0x7 From: Luiz Augusto von Dentz To: Lucas De Marchi Cc: linux-bluetooth@vger.kernel.org, David Stockwell Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-bluetooth-owner@vger.kernel.org List-ID: Hi Lucas and David, On Thu, Sep 15, 2011 at 7:21 AM, Lucas De Marchi wrote: > From: David Stockwell > > Metadata field number 0x7 should be the total playing time of the track > (TrackDuration) in msec, not current position within track. > --- >  audio/avrcp.c |   18 ++++++------------ >  1 files changed, 6 insertions(+), 12 deletions(-) > > diff --git a/audio/avrcp.c b/audio/avrcp.c > index f7f3924..835249b 100644 > --- a/audio/avrcp.c > +++ b/audio/avrcp.c > @@ -141,7 +141,7 @@ enum media_info_id { >        MEDIA_INFO_TRACK =              4, >        MEDIA_INFO_N_TRACKS =           5, >        MEDIA_INFO_GENRE =              6, > -       MEDIA_INFO_CURRENT_POSITION =   7, > +       MEDIA_INFO_PLAYING_TIME =       7, >        MEDIA_INFO_LAST >  }; > > @@ -690,19 +690,13 @@ static int mp_get_media_attribute(struct media_player *mp, >                len = strlen(valstr); >                memcpy(elem->val, valstr, len); >                break; > -       case MEDIA_INFO_CURRENT_POSITION: > -               if (mi->elapsed != 0xFFFFFFFF) { > -                       uint32_t elapsed; > - > -                       mp_get_playback_status(mp, NULL, &elapsed, NULL); > - > -                       snprintf(valstr, 20, "%u", elapsed); > -                       len = strlen(valstr); > -                       memcpy(elem->val, valstr, len); > -               } else { > +       case MEDIA_INFO_PLAYING_TIME: > +               if (mi->track_len == 0xFFFFFFFF) >                        return -ENOENT; > -               } > > +               snprintf(valstr, 20, "%u", mi->track_len); > +               len = strlen(valstr); > +               memcpy(elem->val, valstr, len); >                break; >        default: >                return -EINVAL; > -- > 1.7.6.1 Ack. -- Luiz Augusto von Dentz