From ffc506e476a071e016ee95390bea4b14a421be7a Mon Sep 17 00:00:00 2001 From: XANTRONIX Development Date: Fri, 24 Nov 2017 17:44:40 +0000 Subject: [PATCH] C'mon Barry --- examples/test.c | 48 +++++++++++++++++++++++++++++++++++++++++------ examples/test.c-e | 48 +++++++++++++++++++++++++++++++++++++++++------ src/message.c | 3 +++ src/message.c-e | 3 +++ 4 files changed, 90 insertions(+), 12 deletions(-) diff --git a/examples/test.c b/examples/test.c index 4a37a9f..9350695 100644 --- a/examples/test.c +++ b/examples/test.c @@ -12,13 +12,28 @@ static void usage(int argc, char **argv) { static int answer_phone_version_message(skipstone_message_service *service, void *buf, uint16_t size, uint16_t id) { - uint8_t response[12] = { - 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 + uint8_t response[13] = { + 1, 0xff, 0xff, 0xff, 0xff, 0x80, 0, 0, 0, 0, 0, 0, 0x32 }; - printf("Sending %hu message to %hu in response to %hu message\n", - sizeof(response), id, size); + struct { + uint8_t command; + uint8_t artist_len; + char artist[5]; + uint8_t album_len; + char album[5]; + uint8_t title_len; + char title[5]; + } play_track = { + 0x10, + 5, { 'K', 'M', 'F', 'D', 'M' }, + 5, { 'N', 'i', 'h', 'i', 'l' }, + 5, { 'U', 'l', 't', 'r', 'a' } + }; + printf("Got message on endpoint %hu\n", id); + + skipstone_message_service_queue(service, &play_track, sizeof(play_track), 20); skipstone_message_service_queue(service, &response, sizeof(response), id); return 0; @@ -28,6 +43,29 @@ int main(int argc, char **argv) { skipstone_link *link; skipstone_message_service *service; + struct { + uint8_t command; + uint8_t state; + uint32_t track_position; + uint32_t play_rate; + uint8_t shuffle; + uint8_t repeat; + } play_state = { + 0x11, 0x01, 0, 44100, 0x01, 0x01 + }; + + struct { + uint8_t command; + uint8_t package_len; + char package[8]; + uint8_t name_len; + char name[8]; + } play_info = { + 0x13, + 8, { 'D', 'e', 'a', 'D', 'B', 'e', 'e', 'F' }, + 8, { 'R', 'e', 'a', 'L', 'D', 'e', 'a', 'D' } + }; + if (argc != 2) { usage(argc, argv); } @@ -40,8 +78,6 @@ int main(int argc, char **argv) { goto error_message_service_new; } - printf("Registering endpoint %p\n", answer_phone_version_message); - skipstone_message_service_register(service, 17, answer_phone_version_message, NULL); skipstone_message_service_run(service, link); diff --git a/examples/test.c-e b/examples/test.c-e index 4a37a9f..9350695 100644 --- a/examples/test.c-e +++ b/examples/test.c-e @@ -12,13 +12,28 @@ static void usage(int argc, char **argv) { static int answer_phone_version_message(skipstone_message_service *service, void *buf, uint16_t size, uint16_t id) { - uint8_t response[12] = { - 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 + uint8_t response[13] = { + 1, 0xff, 0xff, 0xff, 0xff, 0x80, 0, 0, 0, 0, 0, 0, 0x32 }; - printf("Sending %hu message to %hu in response to %hu message\n", - sizeof(response), id, size); + struct { + uint8_t command; + uint8_t artist_len; + char artist[5]; + uint8_t album_len; + char album[5]; + uint8_t title_len; + char title[5]; + } play_track = { + 0x10, + 5, { 'K', 'M', 'F', 'D', 'M' }, + 5, { 'N', 'i', 'h', 'i', 'l' }, + 5, { 'U', 'l', 't', 'r', 'a' } + }; + printf("Got message on endpoint %hu\n", id); + + skipstone_message_service_queue(service, &play_track, sizeof(play_track), 20); skipstone_message_service_queue(service, &response, sizeof(response), id); return 0; @@ -28,6 +43,29 @@ int main(int argc, char **argv) { skipstone_link *link; skipstone_message_service *service; + struct { + uint8_t command; + uint8_t state; + uint32_t track_position; + uint32_t play_rate; + uint8_t shuffle; + uint8_t repeat; + } play_state = { + 0x11, 0x01, 0, 44100, 0x01, 0x01 + }; + + struct { + uint8_t command; + uint8_t package_len; + char package[8]; + uint8_t name_len; + char name[8]; + } play_info = { + 0x13, + 8, { 'D', 'e', 'a', 'D', 'B', 'e', 'e', 'F' }, + 8, { 'R', 'e', 'a', 'L', 'D', 'e', 'a', 'D' } + }; + if (argc != 2) { usage(argc, argv); } @@ -40,8 +78,6 @@ int main(int argc, char **argv) { goto error_message_service_new; } - printf("Registering endpoint %p\n", answer_phone_version_message); - skipstone_message_service_register(service, 17, answer_phone_version_message, NULL); skipstone_message_service_run(service, link); diff --git a/src/message.c b/src/message.c index fd01d0b..63b08d7 100644 --- a/src/message.c +++ b/src/message.c @@ -109,6 +109,8 @@ int skipstone_message_service_run(skipstone_message_service *service, goto error_io; } + printf("Got message %hu\n", id); + if ((endpoint = skipstone_map_get(service->endpoints, id)) != NULL) { if (endpoint->handler(service, buf, size, id) < 0) { goto error_io; @@ -116,6 +118,7 @@ int skipstone_message_service_run(skipstone_message_service *service, } while (skipstone_queue_pop(service->pending, (void **)&message)) { + printf("Sending message %hu\n", message->id); if (skipstone_link_send(link, message + 1, message->size, message->id) < 0) { goto error_io; } diff --git a/src/message.c-e b/src/message.c-e index fd01d0b..63b08d7 100644 --- a/src/message.c-e +++ b/src/message.c-e @@ -109,6 +109,8 @@ int skipstone_message_service_run(skipstone_message_service *service, goto error_io; } + printf("Got message %hu\n", id); + if ((endpoint = skipstone_map_get(service->endpoints, id)) != NULL) { if (endpoint->handler(service, buf, size, id) < 0) { goto error_io; @@ -116,6 +118,7 @@ int skipstone_message_service_run(skipstone_message_service *service, } while (skipstone_queue_pop(service->pending, (void **)&message)) { + printf("Sending message %hu\n", message->id); if (skipstone_link_send(link, message + 1, message->size, message->id) < 0) { goto error_io; }