Hi Lucas, On Tue, Oct 4, 2011 at 5:56 AM, Lucas De Marchi <lucas.demarchi@xxxxxxxxxxxxxx> wrote: > --- > > Hi, Luiz, > > I applied this patch on top of yours. If you are able to test the "set_player_value" > at UPF, please apply this patch first. > > > Regards, > > audio/avrcp.c | 4 +++- > 1 files changed, 3 insertions(+), 1 deletions(-) > > diff --git a/audio/avrcp.c b/audio/avrcp.c > index cfdb313..6969fac 100644 > --- a/audio/avrcp.c > +++ b/audio/avrcp.c > @@ -719,6 +719,7 @@ static uint8_t avrcp_handle_set_player_value(struct avrcp_player *player, > if (len <= 3) > goto err; > > + DBG("len %u", len); > len = 0; > > /* > @@ -728,13 +729,14 @@ static uint8_t avrcp_handle_set_player_value(struct avrcp_player *player, > * attribute is valid, we respond with no parameters. Otherwise an > * E_INVALID_PARAM is sent. > */ > - for (i = 1; i < pdu->params[0]; i += 2) { > + for (i = 1; i < (2 * pdu->params[0] + 1U); i += 2) { > uint8_t attr = pdu->params[i]; > uint8_t val = pdu->params[i + 1]; > > if (player_set_attribute(player, attr, val) < 0) > continue; > > + DBG("set attr %u val %u", attr, val); > len++; > } Maybe we can have an auxiliary pointer to the current params, e.g. uint8_t *param = &pdu->params[1] and then we increment the actual pointer without messing around with i which is the number of attributes. -- Luiz Augusto von Dentz -- 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