summaryrefslogtreecommitdiff
path: root/src/util.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/util.h')
-rw-r--r--src/util.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/util.h b/src/util.h
new file mode 100644
index 0000000..dab7b54
--- /dev/null
+++ b/src/util.h
@@ -0,0 +1,26 @@
+#ifndef _UTIL_H_
+#define _UTIL_H_
+
+#include <glib.h>
+#include "cmumble.h"
+
+gpointer
+cmumble_find_by_id(GList *list, gsize member_offset, guint id);
+
+static inline struct cmumble_user *
+find_user(struct cmumble_context *ctx, uint32_t session)
+{
+ return cmumble_find_by_id(ctx->users,
+ G_STRUCT_OFFSET(struct cmumble_user, id),
+ session);
+}
+
+static inline struct cmumble_channel *
+find_channel(struct cmumble_context *ctx, guint channel_id)
+{
+ return cmumble_find_by_id(ctx->channels,
+ G_STRUCT_OFFSET(struct cmumble_channel, id),
+ channel_id);
+}
+
+#endif /* _UTIL_H_ */