Merge branch 'autotools'
[umurmur.git] / src / client.h
index 66bf7d8d9ad1bfc0ff4b8b95e4f6c0106c8dcc70..608c87c036f81d453f133ace43342af1ef3c3c0f 100644 (file)
@@ -1,5 +1,5 @@
-/* Copyright (C) 2009-2010, Martin Johansson <martin@fatbob.nu>
-   Copyright (C) 2005-2010, Thorvald Natvig <thorvald@natvig.com>
+/* Copyright (C) 2009-2011, Martin Johansson <martin@fatbob.nu>
+   Copyright (C) 2005-2011, Thorvald Natvig <thorvald@natvig.com>
 
    All rights reserved.
 
@@ -31,6 +31,7 @@
 #ifndef CLIENT_H_45786678
 #define CLIENT_H_45786678
 
+#include <config.h>
 #include <stdint.h>
 #include <unistd.h>             /* close() */
 #include <sys/types.h>
@@ -70,13 +71,13 @@ typedef struct {
        int sessionId;
        uint64_t key;
        char *username;
-       bool_t bUDP, authenticated, deaf, mute;
-       char *os, *release;
+       bool_t bUDP, authenticated, deaf, mute, recording;
+       char *os, *release, *os_version;
        uint32_t version;
        int codec_count;
        struct dlist codecs;
        int availableBandwidth;
-       etimer_t lastActivity;
+       etimer_t lastActivity, connectTime, idleTime;
        struct dlist node;
        struct dlist txMsgQueue;
        int txQueueCount;
@@ -84,6 +85,8 @@ typedef struct {
        char *context;
        struct dlist chan_node;
        struct dlist voicetargets;
+       float UDPPingAvg, UDPPingVar, TCPPingAvg, TCPPingVar;
+       uint32_t UDPPackets, TCPPackets;
 } client_t;
 
 typedef struct {
@@ -98,6 +101,8 @@ int Client_add(int fd, struct sockaddr_in *remote);
 int Client_read_fd(int fd);
 int Client_write_fd(int fd);
 int Client_send_message(client_t *client, message_t *msg);
+int Client_send_message_ver(client_t *client, message_t *msg, uint32_t version);
+int Client_send_message_except_ver(client_t *client, message_t *msg, uint32_t version);
 int Client_count(void);
 void Client_close(client_t *client);
 client_t *Client_iterate(client_t **client);