]> git.sur5r.net Git - i3/i3/blobdiff - include/i3/ipc.h
Merge branch 'master' into next
[i3/i3] / include / i3 / ipc.h
index 86fa1b4bb80389c2c9b3b54dc3ffeba76826c559..2a3321b50302727281a6838baf893a5c345669d0 100644 (file)
@@ -2,7 +2,7 @@
  * vim:ts=4:sw=4:expandtab
  *
  * i3 - an improved dynamic tiling window manager
- * © 2009-2012 Michael Stapelberg and contributors (see also: LICENSE)
+ * © 2009-2013 Michael Stapelberg and contributors (see also: LICENSE)
  *
  * This public header defines the different constants and message types to use
  * for the IPC interface to i3 (see docs/ipc for more information).
 #ifndef I3_I3_IPC_H
 #define I3_I3_IPC_H
 
+#include <stdint.h>
+
+typedef struct i3_ipc_header {
+    /* 6 = strlen(I3_IPC_MAGIC) */
+    char magic[6];
+    uint32_t size;
+    uint32_t type;
+} __attribute__ ((packed)) i3_ipc_header_t;
+
 /*
  * Messages from clients to i3
  *
 /* The output event will be triggered upon changes in the output list */
 #define I3_IPC_EVENT_OUTPUT                     (I3_IPC_EVENT_MASK | 1)
 
+/* The output event will be triggered upon mode changes */
+#define I3_IPC_EVENT_MODE                       (I3_IPC_EVENT_MASK | 2)
+
+/* The window event will be triggered upon window changes */
+#define I3_IPC_EVENT_WINDOW                     (I3_IPC_EVENT_MASK | 3)
+
 #endif