Use sc_ prefix for device sender

issue4703
Romain Vimont 3 months ago
parent 9858eff856
commit 78a7e4f293

@ -8,7 +8,8 @@
#include "util/log.h" #include "util/log.h"
ssize_t ssize_t
device_msg_deserialize(const uint8_t *buf, size_t len, struct device_msg *msg) { sc_device_msg_deserialize(const uint8_t *buf, size_t len,
struct sc_device_msg *msg) {
if (!len) { if (!len) {
return 0; // no message return 0; // no message
} }
@ -52,7 +53,7 @@ device_msg_deserialize(const uint8_t *buf, size_t len, struct device_msg *msg) {
} }
void void
device_msg_destroy(struct device_msg *msg) { sc_device_msg_destroy(struct sc_device_msg *msg) {
if (msg->type == DEVICE_MSG_TYPE_CLIPBOARD) { if (msg->type == DEVICE_MSG_TYPE_CLIPBOARD) {
free(msg->clipboard.text); free(msg->clipboard.text);
} }

@ -11,13 +11,13 @@
// type: 1 byte; length: 4 bytes // type: 1 byte; length: 4 bytes
#define DEVICE_MSG_TEXT_MAX_LENGTH (DEVICE_MSG_MAX_SIZE - 5) #define DEVICE_MSG_TEXT_MAX_LENGTH (DEVICE_MSG_MAX_SIZE - 5)
enum device_msg_type { enum sc_device_msg_type {
DEVICE_MSG_TYPE_CLIPBOARD, DEVICE_MSG_TYPE_CLIPBOARD,
DEVICE_MSG_TYPE_ACK_CLIPBOARD, DEVICE_MSG_TYPE_ACK_CLIPBOARD,
}; };
struct device_msg { struct sc_device_msg {
enum device_msg_type type; enum sc_device_msg_type type;
union { union {
struct { struct {
char *text; // owned, to be freed by free() char *text; // owned, to be freed by free()
@ -30,9 +30,10 @@ struct device_msg {
// return the number of bytes consumed (0 for no msg available, -1 on error) // return the number of bytes consumed (0 for no msg available, -1 on error)
ssize_t ssize_t
device_msg_deserialize(const uint8_t *buf, size_t len, struct device_msg *msg); sc_device_msg_deserialize(const uint8_t *buf, size_t len,
struct sc_device_msg *msg);
void void
device_msg_destroy(struct device_msg *msg); sc_device_msg_destroy(struct sc_device_msg *msg);
#endif #endif

@ -27,7 +27,7 @@ sc_receiver_destroy(struct sc_receiver *receiver) {
} }
static void static void
process_msg(struct sc_receiver *receiver, struct device_msg *msg) { process_msg(struct sc_receiver *receiver, struct sc_device_msg *msg) {
switch (msg->type) { switch (msg->type) {
case DEVICE_MSG_TYPE_CLIPBOARD: { case DEVICE_MSG_TYPE_CLIPBOARD: {
char *current = SDL_GetClipboardText(); char *current = SDL_GetClipboardText();
@ -55,8 +55,8 @@ static ssize_t
process_msgs(struct sc_receiver *receiver, const uint8_t *buf, size_t len) { process_msgs(struct sc_receiver *receiver, const uint8_t *buf, size_t len) {
size_t head = 0; size_t head = 0;
for (;;) { for (;;) {
struct device_msg msg; struct sc_device_msg msg;
ssize_t r = device_msg_deserialize(&buf[head], len - head, &msg); ssize_t r = sc_device_msg_deserialize(&buf[head], len - head, &msg);
if (r == -1) { if (r == -1) {
return -1; return -1;
} }
@ -65,7 +65,7 @@ process_msgs(struct sc_receiver *receiver, const uint8_t *buf, size_t len) {
} }
process_msg(receiver, &msg); process_msg(receiver, &msg);
device_msg_destroy(&msg); sc_device_msg_destroy(&msg);
head += r; head += r;
assert(head <= len); assert(head <= len);

@ -14,15 +14,15 @@ static void test_deserialize_clipboard(void) {
0x41, 0x42, 0x43, // "ABC" 0x41, 0x42, 0x43, // "ABC"
}; };
struct device_msg msg; struct sc_device_msg msg;
ssize_t r = device_msg_deserialize(input, sizeof(input), &msg); ssize_t r = sc_device_msg_deserialize(input, sizeof(input), &msg);
assert(r == 8); assert(r == 8);
assert(msg.type == DEVICE_MSG_TYPE_CLIPBOARD); assert(msg.type == DEVICE_MSG_TYPE_CLIPBOARD);
assert(msg.clipboard.text); assert(msg.clipboard.text);
assert(!strcmp("ABC", msg.clipboard.text)); assert(!strcmp("ABC", msg.clipboard.text));
device_msg_destroy(&msg); sc_device_msg_destroy(&msg);
} }
static void test_deserialize_clipboard_big(void) { static void test_deserialize_clipboard_big(void) {
@ -35,8 +35,8 @@ static void test_deserialize_clipboard_big(void) {
memset(input + 5, 'a', DEVICE_MSG_TEXT_MAX_LENGTH); memset(input + 5, 'a', DEVICE_MSG_TEXT_MAX_LENGTH);
struct device_msg msg; struct sc_device_msg msg;
ssize_t r = device_msg_deserialize(input, sizeof(input), &msg); ssize_t r = sc_device_msg_deserialize(input, sizeof(input), &msg);
assert(r == DEVICE_MSG_MAX_SIZE); assert(r == DEVICE_MSG_MAX_SIZE);
assert(msg.type == DEVICE_MSG_TYPE_CLIPBOARD); assert(msg.type == DEVICE_MSG_TYPE_CLIPBOARD);
@ -44,7 +44,7 @@ static void test_deserialize_clipboard_big(void) {
assert(strlen(msg.clipboard.text) == DEVICE_MSG_TEXT_MAX_LENGTH); assert(strlen(msg.clipboard.text) == DEVICE_MSG_TEXT_MAX_LENGTH);
assert(msg.clipboard.text[0] == 'a'); assert(msg.clipboard.text[0] == 'a');
device_msg_destroy(&msg); sc_device_msg_destroy(&msg);
} }
static void test_deserialize_ack_set_clipboard(void) { static void test_deserialize_ack_set_clipboard(void) {
@ -53,8 +53,8 @@ static void test_deserialize_ack_set_clipboard(void) {
0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, // sequence 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, // sequence
}; };
struct device_msg msg; struct sc_device_msg msg;
ssize_t r = device_msg_deserialize(input, sizeof(input), &msg); ssize_t r = sc_device_msg_deserialize(input, sizeof(input), &msg);
assert(r == 9); assert(r == 9);
assert(msg.type == DEVICE_MSG_TYPE_ACK_CLIPBOARD); assert(msg.type == DEVICE_MSG_TYPE_ACK_CLIPBOARD);

Loading…
Cancel
Save