Use Client_find_by_session() instead of a few open-coded loops.
[umurmur.git] / src / voicetarget.h
index fa8af04c33ce3316c5f42bd15235fd9c55a70461..8c911e56a318810f5d9a803d60d0aba7d22bef2d 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-2014, Martin Johansson <martin@fatbob.nu>
+   Copyright (C) 2005-2014, Thorvald Natvig <thorvald@natvig.com>
 
    All rights reserved.
 
@@ -28,6 +28,7 @@
    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
+
 #ifndef VOICETARGET_H_98762439875
 #define VOICETARGET_H_98762439875
 
 #define TARGET_MAX_CHANNELS 16
 #define TARGET_MAX_SESSIONS 32
 
+typedef struct {
+       int channel;
+       bool_t linked;
+       bool_t children;
+} channeltarget_t;
+
 typedef struct {
        int id;
-       int channels[TARGET_MAX_CHANNELS];
+       channeltarget_t channels[TARGET_MAX_CHANNELS];
        int sessions[TARGET_MAX_SESSIONS];
        struct dlist node;
 } voicetarget_t;
@@ -48,7 +55,8 @@ void Voicetarget_add_id(client_t *client, int targetId);
 void Voicetarget_del_id(client_t *client, int targetId);
 
 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);
 voicetarget_t *Voicetarget_get_id(client_t *client, int targetId);
 
 void Voicetarget_free_all(client_t *client);