Fix for:
[umurmur.git] / src / client.h
index b6528ebff8289708eb99e66b361a8c2dba279539..f7b88c492993a65144357151ead09a8f22990ada 100644 (file)
@@ -1,5 +1,5 @@
-/* Copyright (C) 2009, Martin Johansson <martin@fatbob.nu>
-   Copyright (C) 2005-2009, Thorvald Natvig <thorvald@natvig.com>
+/* Copyright (C) 2009-2010, Martin Johansson <martin@fatbob.nu>
+   Copyright (C) 2005-2010, Thorvald Natvig <thorvald@natvig.com>
 
    All rights reserved.
 
 #include "timer.h"
 #include "pds.h"
 
-#define BUFSIZE 2048
+#define BUFSIZE 8192
 #define UDP_BUFSIZE 512
 #define INACTICITY_TIMEOUT 15 /* Seconds */
+#define MAX_CODECS 10
 
 #define IS_AUTH(_a_) ((_a_)->authenticated)
 
@@ -68,19 +69,27 @@ typedef struct {
        uint32_t rxcount, msgsize, drainleft, txcount, txsize;
        int sessionId;
        uint64_t key;
-       char playerName[MAX_TEXT];
-       int playerId;
-       bool_t authenticated, deaf, mute;
+       char *username;
+       bool_t bUDP, authenticated, deaf, mute;
+       char *os, *release;
+       uint32_t version;
+       int codec_count;
+       struct dlist codecs;
        int availableBandwidth;
        etimer_t lastActivity;
        struct dlist node;
        struct dlist txMsgQueue;
        int txQueueCount;
-       /* Channel */
-       void *channel; /*Ugly... */
+       void *channel; /* Ugly... */
+       char *context;
        struct dlist chan_node;
+       struct dlist voicetargets;
 } client_t;
 
+typedef struct {
+       int codec, count;
+       struct dlist node;
+} codec_t;
 
 void Client_init();
 int Client_getfds(struct pollfd *pollfds);
@@ -96,5 +105,9 @@ int Client_send_message_except(client_t *client, message_t *msg);
 int Client_read_udp(void);
 void Client_disconnect_all();
 int Client_voiceMsg(client_t *client, uint8_t *data, int len);
+void recheckCodecVersions();
+void Client_codec_add(client_t *client, int codec);
+void Client_codec_free(client_t *client);
+codec_t *Client_codec_iterate(client_t *client, codec_t **codec_itr);
 
 #endif