diff options
author | Benjamin Franzke <benjaminfranzke@googlemail.com> | 2013-11-21 10:45:44 +0100 |
---|---|---|
committer | Benjamin Franzke <benjaminfranzke@googlemail.com> | 2013-11-21 22:20:59 +0100 |
commit | d4abd71aff37402fea80191c9b3b990124b0ee9b (patch) | |
tree | 1c237d3714ba7128983f7419a87e430f315454a8 /src/message.h | |
parent | 3e94de272da73e76219a114395130fd1844e68af (diff) | |
download | cmumble-d4abd71aff37402fea80191c9b3b990124b0ee9b.tar.gz cmumble-d4abd71aff37402fea80191c9b3b990124b0ee9b.tar.bz2 cmumble-d4abd71aff37402fea80191c9b3b990124b0ee9b.zip |
message.h: Add wrapper around protobufs ugly func names
They are of cause autogenerated.
Only the one wrapper for the reject enum is added as one makro by hand.
Diffstat (limited to 'src/message.h')
-rw-r--r-- | src/message.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/message.h b/src/message.h index 0186192..b34bed7 100644 --- a/src/message.h +++ b/src/message.h @@ -10,6 +10,28 @@ enum cmumble_message { #undef MUMBLE_MSG }; +#define PREAMBLE_SIZE 6 +struct mumble_msg_base { + uint8_t preamble[PREAMBLE_SIZE]; +}; + +struct __attribute__ ((__packed__)) mumble_message { + struct mumble_msg_base base; + ProtobufCMessage msg; +}; + +#define MUMBLE_MSG(cname, name) \ + struct __attribute__ ((__packed__)) mumble_##name { \ + struct mumble_msg_base base; \ + MumbleProto__##cname m; \ + }; +MUMBLE_MSGS +#undef MUMBLE_MSG + +/* Makro to hide ugly protobuf-c constat names. */ +#define MUMBLE_REJECT_TYPE(type) MUMBLE_PROTO__REJECT__REJECT_TYPE__##type + + struct cmumble; void @@ -18,4 +40,20 @@ cmumble_send_msg(struct cmumble *cm, ProtobufCMessage *msg); int cmumble_recv_msg(struct cmumble *cm); + +#define MUMBLE_MSG(cname, name) \ + static inline void \ + cmumble_init_##name(struct mumble_##name *msg) \ + { \ + mumble_proto__##name##__init(&msg->m); \ + } \ + \ + static inline void \ + cmumble_send_##name(struct cmumble *cm, struct mumble_##name *msg) \ + { \ + cmumble_send_msg(cm, &msg->m.base); \ + } +MUMBLE_MSGS +#undef MUMBLE_MSG + #endif /* _MESSAGE_H_ */ |