diff options
Diffstat (limited to 'src/util.h')
-rw-r--r-- | src/util.h | 26 |
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_ */ |