+ const char *format,
+ ...)
+{
+ va_list va;
+
+ va_start (va, format);
+
+ loudgame_vsendf (lg, peer, format, va);
+
+ va_end (va);
+}
+
+typedef struct _loudgame_broadcast_data
+{
+ loudgame_t *lg;
+ const char *message;
+} loudgame_broadcast_data_t;
+
+static void
+loudgame_broadcast_cb (void *key,
+ void *data,
+ void *closure)
+{
+ loudgame_broadcast_data_t *lbd = closure;
+ char *peer = key;
+
+ loudgame_send (lbd->lg, peer, lbd->message);
+}
+
+void
+loudgame_broadcast (loudgame_t *lg,
+ const char *message)
+{
+ loudgame_broadcast_data_t lbd;
+
+ lbd.lg = lg;
+ lbd.message = message;
+
+ g_hash_table_foreach (lg->players,
+ loudgame_broadcast_cb, &lbd);
+}
+
+void
+loudgame_vbroadcastf (loudgame_t *lg,
+ const char *format,
+ va_list va)
+{
+ char *str;
+
+ str = g_strdup_vprintf (format, va);
+
+ loudgame_broadcast (lg, str);
+
+ free (str);
+}
+
+void
+loudgame_broadcastf (loudgame_t *lg,
+ const char *format,
+ ...)