Add compile-time check for POLARSSL_VERSION_FEATURES before using version_get_string().
[umurmur.git] / src / voicetarget.c
index 935139fd2fb8c7080e9773771bb5be5a3e46af8f..e2ed569c8f2db196c6d129404503a93355848e7d 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-2014, Martin Johansson <martin@fatbob.nu>
+   Copyright (C) 2005-2014, Thorvald Natvig <thorvald@natvig.com>
 
    All rights reserved.
 
@@ -29,6 +29,8 @@
    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
+#include <stdlib.h>
+#include <string.h>
 #include "voicetarget.h"
 #include "log.h"
 
@@ -36,7 +38,7 @@ void Voicetarget_add_session(client_t *client, int targetId, int sessionId)
 {
        struct dlist *itr;
        voicetarget_t *vt;
-       
+
        list_iterate(itr, &client->voicetargets) {
                if (targetId == list_get_entry(itr, voicetarget_t, node)->id) {
                        int i;
@@ -52,38 +54,41 @@ void Voicetarget_add_session(client_t *client, int targetId, int sessionId)
        }
 }
 
-void Voicetarget_add_channel(client_t *client, int targetId, int channelId)
+void Voicetarget_add_channel(client_t *client, int targetId, int channelId,
+                                                        bool_t linked, bool_t children)
 {
        struct dlist *itr;
        voicetarget_t *vt;
-       
+
        list_iterate(itr, &client->voicetargets) {
                if (targetId == list_get_entry(itr, voicetarget_t, node)->id) {
                        int i;
                        vt = list_get_entry(itr, voicetarget_t, node);
                        for (i = 0; i < TARGET_MAX_CHANNELS; i++) {
-                               if (vt->channels[i] == -1) {
-                                       vt->channels[i] = channelId;
+                               if (vt->channels[i].channel == -1) {
+                                       vt->channels[i].channel = channelId;
+                                       vt->channels[i].linked = linked;
+                                       vt->channels[i].children = children;
                                        Log_debug("Adding channel ID %d to voicetarget ID %d", channelId, targetId);
                                        return;
                                }
                        }
                }
-       }       
+       }
 }
 
 void Voicetarget_add_id(client_t *client, int targetId)
 {
        voicetarget_t *newtarget;
        int i;
-       
+
        Voicetarget_del_id(client, targetId);
        newtarget = malloc(sizeof(voicetarget_t));
        if (!newtarget)
                Log_fatal("Out of memory");
        memset(newtarget, 0, sizeof(voicetarget_t));
        for (i = 0; i < TARGET_MAX_CHANNELS; i++)
-               newtarget->channels[i] = -1;
+               newtarget->channels[i].channel = -1;
        for (i = 0; i < TARGET_MAX_SESSIONS; i++)
                newtarget->sessions[i] = -1;
        newtarget->id = targetId;