C'mon Barry

This commit is contained in:
XANTRONIX Development 2017-11-24 17:44:40 +00:00
parent 2825ffb970
commit ffc506e476
4 changed files with 90 additions and 12 deletions

View file

@ -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);

View file

@ -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);

View file

@ -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;
}

View file

@ -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;
}