From c820c3d4830b2c5db1c026ee332f2d773c366247 Mon Sep 17 00:00:00 2001 From: Benjamin Franzke Date: Sat, 24 Sep 2011 12:54:31 +0200 Subject: Add a general element finding routine to util.c And use this to implement find_user and find_channel as inline functions. --- src/util.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/util.h (limited to 'src/util.h') 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 +#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_ */ -- cgit