-/* Copyright (C) 2010, Martin Johansson <martin@fatbob.nu>
- Copyright (C) 2005-2010, Thorvald Natvig <thorvald@natvig.com>
+/* Copyright (C) 2009-2014, Martin Johansson <martin@fatbob.nu>
+ Copyright (C) 2005-2014, Thorvald Natvig <thorvald@natvig.com>
All rights reserved.
#define MESSAGES_H_89768
#include <stdint.h>
+#include <arpa/inet.h>
#include "Mumble.pb-c.h"
#include "list.h"
#include "types.h"
#define PROTVER_MAJOR 1
#define PROTVER_MINOR 2
-#define PROTVER_PATCH 0
+#define PROTVER_PATCH 4
#define PROTOCOL_VERSION ((PROTVER_MAJOR << 16) | (PROTVER_MINOR << 8) | (PROTVER_PATCH))
-#define MAX_TEXT 512
-
-
#define PERM_NONE 0x0
#define PERM_WRITE 0x1
#define PERM_TRAVERSE 0x2
#define PERM_CACHED 0x8000000
#define PERM_ALL 0xf07ff
-#define PERM_DEFAULT (PERM_TRAVERSE | PERM_ENTER | PERM_SPEAK | PERM_WHISPER | PERM_TEXTMESSAGE)
+#define PERM_DEFAULT (PERM_TRAVERSE | PERM_ENTER | PERM_SPEAK | PERM_WHISPER | PERM_TEXTMESSAGE | PERM_MAKETEMPCHANNEL)
+#define PERM_ADMIN (PERM_DEFAULT | PERM_MUTEDEAFEN | PERM_MOVE | PERM_KICK | PERM_BAN)
typedef enum {
Version,
VoiceTarget,
PermissionQuery, /* 20 */
CodecVersion,
+ UserStats,
+ RequestBlob,
+ ServerConfig
} messageType_t;
typedef enum {
UDPPing,
UDPVoiceSpeex,
UDPVoiceCELTBeta,
+ UDPVoiceOpus,
} UDPMessageType_t;
struct _MumbleProto__ChannelState *channelState;
struct _MumbleProto__UserRemove *userRemove;
struct _MumbleProto__UserState *userState;
- /* BanEntry not supported */
- /* BanList not supported */
+ struct _MumbleProto__BanList *banList;
struct _MumbleProto__TextMessage *textMessage;
struct _MumbleProto__PermissionDenied *permissionDenied;
/* ChanACL not supported */
struct _MumbleProto__VoiceTarget *voiceTarget;
struct _MumbleProto__PermissionQuery *permissionQuery;
struct _MumbleProto__CodecVersion *codecVersion;
+ struct _MumbleProto__UserStats *userStats;
+ struct _MumbleProto__ServerConfig *serverConfig;
} payload_t;
typedef struct message {
void Msg_free(message_t *msg);
void Msg_inc_ref(message_t *msg);
+message_t *Msg_CreateVoiceMsg(uint8_t *data, int size);
message_t *Msg_create(messageType_t messageType);
+void Msg_banList_addEntry(message_t *msg, int index, uint8_t *address, uint32_t mask,
+ char *name, char *hash, char *reason, char *start, uint32_t duration);
+void Msg_banList_getEntry(message_t *msg, int index, uint8_t **address, uint32_t *mask,
+ char **name, char **hash, char **reason, char **start, uint32_t *duration);
+message_t *Msg_banList_create(int n_bans);
+
#endif