diff --git a/android/avctp.c b/android/avctp.c
index d7f047a..aaf9442 100644
--- a/android/avctp.c
+++ b/android/avctp.c
uint8_t key_quirks[256];
struct key_pressed key;
uint16_t version;
+
+ avctp_destroy_cb_t destroy;
+ void *data;
};
struct avctp_passthrough_handler {
return 0;
}
+void avctp_set_destroy_cb(struct avctp *session, avctp_destroy_cb_t cb,
+ void *user_data)
+{
+ session->destroy = cb;
+ session->data = user_data;
+}
+
void avctp_shutdown(struct avctp *session)
{
if (!session)
if (session->control)
avctp_channel_destroy(session->control);
+ if (session->destroy)
+ session->destroy(session->data);
+
if (session->key.timer > 0)
g_source_remove(session->key.timer);
diff --git a/android/avctp.h b/android/avctp.h
index 99aaf95..a22bf13 100644
--- a/android/avctp.h
+++ b/android/avctp.h
typedef void (*avctp_destroy_cb_t) (void *user_data);
struct avctp *avctp_new(int fd, size_t imtu, size_t omtu, uint16_t version);
+void avctp_set_destroy_cb(struct avctp *session, avctp_destroy_cb_t cb,
+ void *user_data);
+
int avctp_init_uinput(struct avctp *session, const char *name,
const char *address);
int avctp_connect_browsing(struct avctp *session, int fd, size_t imtu,