diff --git a/android/avrcp-lib.c b/android/avrcp-lib.c
index 7b043ce..357ae5b 100644
--- a/android/avrcp-lib.c
+++ b/android/avrcp-lib.c
struct avrcp {
struct avctp *conn;
+ struct avrcp_player *player;
size_t tx_mtu;
uint8_t *tx_buf;
void *destroy_data;
};
+struct avrcp_player {
+ const struct avrcp_control_ind *ind;
+ const struct avrcp_control_cfm *cfm;
+
+ void *user_data;
+};
+
void avrcp_shutdown(struct avrcp *session)
{
if (session->conn) {
if (session->destroy)
session->destroy(session->destroy_data);
+ g_free(session->player);
g_free(session->tx_buf);
g_free(session);
}
switch (ret) {
case -EAGAIN:
return ret;
+ case -ENOSYS:
+ pdu->params[0] = AVRCP_STATUS_INVALID_COMMAND;
+ goto reject;
case -EINVAL:
pdu->params[0] = AVRCP_STATUS_INVALID_PARAM;
goto reject;
session->destroy_data = user_data;
}
+void avrcp_register_player(struct avrcp *session,
+ const struct avrcp_control_ind *ind,
+ const struct avrcp_control_cfm *cfm,
+ void *user_data)
+{
+ struct avrcp_player *player;
+
+ player = g_new0(struct avrcp_player, 1);
+ player->ind = ind;
+ player->cfm = cfm;
+ player->user_data = user_data;
+
+ session->player = player;
+}
+
void avrcp_set_control_handlers(struct avrcp *session,
const struct avrcp_control_handler *handlers,
void *user_data)
diff --git a/android/avrcp-lib.h b/android/avrcp-lib.h
index 4adf4bf..6e33a75 100644
--- a/android/avrcp-lib.h
+++ b/android/avrcp-lib.h
uint16_t params_len, uint8_t *params, void *user_data);
};
+struct avrcp_control_ind {
+};
+
+struct avrcp_control_cfm {
+};
+
struct avrcp_passthrough_handler {
uint8_t op;
bool (*func) (struct avrcp *session, bool pressed, void *user_data);
void avrcp_shutdown(struct avrcp *session);
void avrcp_set_destroy_cb(struct avrcp *session, avrcp_destroy_cb_t cb,
void *user_data);
+
+void avrcp_register_player(struct avrcp *session,
+ const struct avrcp_control_ind *ind,
+ const struct avrcp_control_cfm *cfm,
+ void *user_data);
void avrcp_set_control_handlers(struct avrcp *session,
const struct avrcp_control_handler *handlers,
void *user_data);