skipstone/include/skipstone/message.h

47 lines
1.5 KiB
C
Raw Normal View History

2017-11-23 17:22:36 +00:00
#ifndef _SKIPSTONE_MESSAGE_H
#define _SKIPSTONE_MESSAGE_H
#include <stdint.h>
#include <skipstone/link.h>
#include <skipstone/map.h>
#define SKIPSTONE_MESSAGE_MAX_PAYLOAD 4096
enum {
SKIPSTONE_MESSAGE_ENDPOINT_NONE = 0,
SKIPSTONE_MESSAGE_ENDPOINT_FIRMWARE = 1,
SKIPSTONE_MESSAGE_ENDPOINT_TIME = 11,
SKIPSTONE_MESSAGE_ENDPOINT_VERSIONS = 16,
SKIPSTONE_MESSAGE_ENDPOINT_PHONE_VERSION = 17,
SKIPSTONE_MESSAGE_ENDPOINT_SYSTEM_MESSAGE = 18,
SKIPSTONE_MESSAGE_ENDPOINT_MUSIC_CONTROL = 32,
SKIPSTONE_MESSAGE_ENDPOINT_PHONE_CONTROL = 33
};
2017-11-23 18:02:38 +00:00
typedef struct _skipstone_message_header {
uint16_t size,
id;
} skipstone_message_header;
2017-11-23 17:22:36 +00:00
typedef struct _skipstone_message_service skipstone_message_service;
2017-11-23 18:02:38 +00:00
typedef int (skipstone_message_handler)(skipstone_message_service *service,
2017-11-24 12:28:49 -06:00
void *buf, uint16_t size, uint16_t id, void *context);
2017-11-23 17:22:36 +00:00
skipstone_message_service *skipstone_message_service_new();
int skipstone_message_service_register(skipstone_message_service *service,
2017-11-23 18:02:38 +00:00
uint16_t id, skipstone_message_handler *handler, void *context);
2017-11-23 17:22:36 +00:00
int skipstone_message_service_deregister(skipstone_message_service *service,
2017-11-23 18:02:38 +00:00
uint16_t id);
int skipstone_message_service_queue(skipstone_message_service *service,
void *buf, uint16_t size, uint16_t id);
2017-11-23 17:22:36 +00:00
int skipstone_message_service_run(skipstone_message_service *service,
skipstone_link *link);
#endif /* _SKIPSTONE_MESSAGE_H */