prezzyd/prezzyipc.h
2024-12-28 10:36:36 +13:00

73 lines
1.5 KiB
C

/*
* prezzyipc.h
* Copyright (c) 2024 Jeremy Baxter.
*/
#ifndef _PREZZYIPC_H_
#define _PREZZYIPC_H_
#include <sys/socket.h>
#include <sys/un.h>
#include <errno.h>
#include <limits.h>
#include <stdint.h>
#define PREZZY_PACKET_MAX 1024
#define PREZZY_SOCK "/tmp/prezzyd.sock"
typedef char byte;
typedef enum {
PREZZY_STATE = 1,
PREZZY_DETAILS = 2,
PREZZY_LARGE_IMAGE = 3,
PREZZY_LARGE_TOOLTIP = 4,
PREZZY_ICON = 5,
PREZZY_ICON_TOOLTIP = 6,
PREZZY_PARTY_SIZE = 7,
PREZZY_PARTY_LIMIT = 8,
PREZZY_TIMESTAMP_START = 9,
PREZZY_TIMESTAMP_END = 10,
PREZZY_PROPERTY_MAX = 11
} PrezzyProperty;
typedef enum {
PLT_STRING = 1,
PLT_INT64 = 2,
PLT_INT = 3,
PLT_MAX = 4
} PrezzyPayloadType;
#ifdef _PREZZYIPC_C_
PrezzyPayloadType payloadTypeMapping[PREZZY_PROPERTY_MAX] = {
[PREZZY_STATE] = PLT_STRING,
[PREZZY_DETAILS] = PLT_STRING,
[PREZZY_LARGE_IMAGE] = PLT_STRING,
[PREZZY_LARGE_TOOLTIP] = PLT_STRING,
[PREZZY_ICON] = PLT_STRING,
[PREZZY_ICON_TOOLTIP] = PLT_STRING,
[PREZZY_PARTY_SIZE] = PLT_INT,
[PREZZY_PARTY_LIMIT] = PLT_INT,
[PREZZY_TIMESTAMP_START] = PLT_INT64,
[PREZZY_TIMESTAMP_END] = PLT_INT64
};
#else
extern PrezzyPayloadType payloadTypeMapping[PREZZY_PROPERTY_MAX];
#endif
typedef struct {
PrezzyProperty property;
PrezzyPayloadType type;
char *pString;
int64_t pInteger;
} PrezzyIpcPacket;
void dumpPacket(PrezzyIpcPacket);
char *fromIpcPacket(PrezzyIpcPacket);
PrezzyIpcPacket *makeIpcPacket(const char *);
int squashLong(long);
size_t strbcpy(char *, const char *, size_t);
char *stringFrom(const char *);
#endif