X-Git-Url: https://git.cworth.org/git?p=loudgame;a=blobdiff_plain;f=loudgame.h;h=359ecfdd7287f78c38bf32c497e12ce583e0674c;hp=11e74df5fde3456b23858b21229797de8aa2f94b;hb=HEAD;hpb=0df3d3dd2384f2606ad5e037c925cb88a5f30fef diff --git a/loudgame.h b/loudgame.h index 11e74df..359ecfd 100644 --- a/loudgame.h +++ b/loudgame.h @@ -23,6 +23,13 @@ #include #include +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4) +#define LOUDGAME_PRINTF_FORMAT(fmt_index, va_index) \ + __attribute__((__format__(__printf__, fmt_index, va_index))) +#else +#define LOUDGAME_PRINTF_FORMAT(fmt_index, va_index) +#endif + typedef struct _loudgame loudgame_t; typedef void (*handle_message_cb) (loudgame_t *lg, @@ -34,13 +41,20 @@ struct _loudgame { gchar *name; gchar *passwd; LmConnection *connection; + GMainLoop *main_loop; + GHashTable *players; + int return_value; /* Callbacks */ handle_message_cb handle_message; }; +#define LOUDGAME_HELP \ +"\tsay message \t\tSay 'message' to everyone in the current game\n" \ +"\twhisper user message\tSay 'message' to 'user' only\n" + int loudgame_init (loudgame_t *lg, int argc, char **argv); @@ -56,13 +70,27 @@ void loudgame_sendf (loudgame_t *lg, const char *peer, const char *format, - ...); + ...) LOUDGAME_PRINTF_FORMAT (3, 4); void loudgame_vsendf (loudgame_t *lg, const char *peer, const char *format, - va_list va); + va_list va) LOUDGAME_PRINTF_FORMAT (3, 0); + +void +loudgame_broadcast (loudgame_t *lg, + const char *message); + +void +loudgame_vbroadcastf (loudgame_t *lg, + const char *format, + va_list va) LOUDGAME_PRINTF_FORMAT (2, 0); + +void +loudgame_broadcastf (loudgame_t *lg, + const char *format, + ...) LOUDGAME_PRINTF_FORMAT (2, 3); void loudgame_quit (loudgame_t *lg, int return_value);