Hi Lucas, On Mon, Oct 17, 2011 at 11:34 PM, Lucas De Marchi <lucas.demarchi@xxxxxxxxxxxxxx> wrote: > --- > audio/avrcp.c | 13 ++++++++++--- > audio/avrcp.h | 2 ++ > audio/media.c | 5 +++++ > 3 files changed, 17 insertions(+), 3 deletions(-) > > diff --git a/audio/avrcp.c b/audio/avrcp.c > index 076fdf4..b1c3d54 100644 > --- a/audio/avrcp.c > +++ b/audio/avrcp.c > @@ -136,7 +136,7 @@ struct avrcp_player { > > unsigned int handler; > uint16_t registered_events; > - uint8_t transaction_events[AVRCP_EVENT_TRACK_CHANGED + 1]; > + uint8_t transaction_events[AVRCP_EVENT_LAST + 1]; > > struct avrcp_player_cb *cb; > void *user_data; > @@ -368,6 +368,9 @@ int avrcp_player_event(struct avrcp_player *player, uint8_t id, void *data) > memcpy(&pdu->params[1], data, sizeof(uint64_t)); > > break; > + case AVRCP_EVENT_TRACK_REACHED_START: > + size = 1; > + break; > default: > error("Unknown event %u", id); > return -EINVAL; > @@ -504,10 +507,11 @@ static uint8_t avrcp_handle_get_capabilities(struct avrcp_player *player, > > return AVC_CTYPE_STABLE; > case CAP_EVENTS_SUPPORTED: > - pdu->params_len = htons(4); > - pdu->params[1] = 2; > + pdu->params_len = htons(5); > + pdu->params[1] = 3; > pdu->params[2] = AVRCP_EVENT_STATUS_CHANGED; > pdu->params[3] = AVRCP_EVENT_TRACK_CHANGED; > + pdu->params[4] = AVRCP_EVENT_TRACK_REACHED_START; > > return AVC_CTYPE_STABLE; > } > @@ -843,6 +847,9 @@ static uint8_t avrcp_handle_register_notification(struct avrcp_player *player, > memcpy(&pdu->params[1], &uid, sizeof(uint64_t)); > > break; > + case AVRCP_EVENT_TRACK_REACHED_START: > + len = 1; > + break; > default: > /* All other events are not supported yet */ > goto err; > diff --git a/audio/avrcp.h b/audio/avrcp.h > index 8cf95a4..c798658 100644 > --- a/audio/avrcp.h > +++ b/audio/avrcp.h > @@ -71,6 +71,8 @@ > /* Notification events */ > #define AVRCP_EVENT_STATUS_CHANGED 0x01 > #define AVRCP_EVENT_TRACK_CHANGED 0x02 > +#define AVRCP_EVENT_TRACK_REACHED_START 0x04 > +#define AVRCP_EVENT_LAST AVRCP_EVENT_TRACK_REACHED_START > > struct avrcp_player_cb { > int (*get_setting) (uint8_t attr, void *user_data); > diff --git a/audio/media.c b/audio/media.c > index 9ef393b..a7647ea 100644 > --- a/audio/media.c > +++ b/audio/media.c > @@ -1289,6 +1289,11 @@ static gboolean set_position(struct media_player *mp, DBusMessageIter *iter) > mp->position = value; > g_timer_start(mp->timer); > > + if (!mp->position) { > + avrcp_player_event(mp->player, > + AVRCP_EVENT_TRACK_REACHED_START, NULL); > + } > + > return TRUE; > } > > -- > 1.7.7 > > -- Ack. -- 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