C'mon Barry
This commit is contained in:
parent
2825ffb970
commit
ffc506e476
4 changed files with 90 additions and 12 deletions
|
@ -12,13 +12,28 @@ static void usage(int argc, char **argv) {
|
||||||
|
|
||||||
static int answer_phone_version_message(skipstone_message_service *service,
|
static int answer_phone_version_message(skipstone_message_service *service,
|
||||||
void *buf, uint16_t size, uint16_t id) {
|
void *buf, uint16_t size, uint16_t id) {
|
||||||
uint8_t response[12] = {
|
uint8_t response[13] = {
|
||||||
0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02
|
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",
|
struct {
|
||||||
sizeof(response), id, size);
|
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);
|
skipstone_message_service_queue(service, &response, sizeof(response), id);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -28,6 +43,29 @@ int main(int argc, char **argv) {
|
||||||
skipstone_link *link;
|
skipstone_link *link;
|
||||||
skipstone_message_service *service;
|
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) {
|
if (argc != 2) {
|
||||||
usage(argc, argv);
|
usage(argc, argv);
|
||||||
}
|
}
|
||||||
|
@ -40,8 +78,6 @@ int main(int argc, char **argv) {
|
||||||
goto error_message_service_new;
|
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_register(service, 17, answer_phone_version_message, NULL);
|
||||||
|
|
||||||
skipstone_message_service_run(service, link);
|
skipstone_message_service_run(service, link);
|
||||||
|
|
|
@ -12,13 +12,28 @@ static void usage(int argc, char **argv) {
|
||||||
|
|
||||||
static int answer_phone_version_message(skipstone_message_service *service,
|
static int answer_phone_version_message(skipstone_message_service *service,
|
||||||
void *buf, uint16_t size, uint16_t id) {
|
void *buf, uint16_t size, uint16_t id) {
|
||||||
uint8_t response[12] = {
|
uint8_t response[13] = {
|
||||||
0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02
|
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",
|
struct {
|
||||||
sizeof(response), id, size);
|
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);
|
skipstone_message_service_queue(service, &response, sizeof(response), id);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -28,6 +43,29 @@ int main(int argc, char **argv) {
|
||||||
skipstone_link *link;
|
skipstone_link *link;
|
||||||
skipstone_message_service *service;
|
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) {
|
if (argc != 2) {
|
||||||
usage(argc, argv);
|
usage(argc, argv);
|
||||||
}
|
}
|
||||||
|
@ -40,8 +78,6 @@ int main(int argc, char **argv) {
|
||||||
goto error_message_service_new;
|
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_register(service, 17, answer_phone_version_message, NULL);
|
||||||
|
|
||||||
skipstone_message_service_run(service, link);
|
skipstone_message_service_run(service, link);
|
||||||
|
|
|
@ -109,6 +109,8 @@ int skipstone_message_service_run(skipstone_message_service *service,
|
||||||
goto error_io;
|
goto error_io;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
printf("Got message %hu\n", id);
|
||||||
|
|
||||||
if ((endpoint = skipstone_map_get(service->endpoints, id)) != NULL) {
|
if ((endpoint = skipstone_map_get(service->endpoints, id)) != NULL) {
|
||||||
if (endpoint->handler(service, buf, size, id) < 0) {
|
if (endpoint->handler(service, buf, size, id) < 0) {
|
||||||
goto error_io;
|
goto error_io;
|
||||||
|
@ -116,6 +118,7 @@ int skipstone_message_service_run(skipstone_message_service *service,
|
||||||
}
|
}
|
||||||
|
|
||||||
while (skipstone_queue_pop(service->pending, (void **)&message)) {
|
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) {
|
if (skipstone_link_send(link, message + 1, message->size, message->id) < 0) {
|
||||||
goto error_io;
|
goto error_io;
|
||||||
}
|
}
|
||||||
|
|
|
@ -109,6 +109,8 @@ int skipstone_message_service_run(skipstone_message_service *service,
|
||||||
goto error_io;
|
goto error_io;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
printf("Got message %hu\n", id);
|
||||||
|
|
||||||
if ((endpoint = skipstone_map_get(service->endpoints, id)) != NULL) {
|
if ((endpoint = skipstone_map_get(service->endpoints, id)) != NULL) {
|
||||||
if (endpoint->handler(service, buf, size, id) < 0) {
|
if (endpoint->handler(service, buf, size, id) < 0) {
|
||||||
goto error_io;
|
goto error_io;
|
||||||
|
@ -116,6 +118,7 @@ int skipstone_message_service_run(skipstone_message_service *service,
|
||||||
}
|
}
|
||||||
|
|
||||||
while (skipstone_queue_pop(service->pending, (void **)&message)) {
|
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) {
|
if (skipstone_link_send(link, message + 1, message->size, message->id) < 0) {
|
||||||
goto error_io;
|
goto error_io;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue