diff --git a/audio/avrcp.c b/audio/avrcp.c
index 076fdf4..b1c3d54 100644
--- a/audio/avrcp.c
+++ b/audio/avrcp.c
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;
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;
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;
}
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
/* 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
mp->position = value;
g_timer_start(mp->timer);
+ if (!mp->position) {
+ avrcp_player_event(mp->player,
+ AVRCP_EVENT_TRACK_REACHED_START, NULL);
+ }
+
return TRUE;
}