* vim:ts=4:sw=4:expandtab
*
* i3 - an improved dynamic tiling window manager
- * © 2009-2010 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_IPC_H
-#define _I3_IPC_H
+#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
/** Request the configuration for a specific 'bar' */
#define I3_IPC_MESSAGE_TYPE_GET_BAR_CONFIG 6
-/** Request the SHM debug log start/wrap markers */
-#define I3_IPC_MESSAGE_TYPE_GET_LOG_MARKERS 7
+/** Request the i3 version */
+#define I3_IPC_MESSAGE_TYPE_GET_VERSION 7
/*
* Messages from i3 to clients
/** Bar config reply type */
#define I3_IPC_REPLY_TYPE_BAR_CONFIG 6
-/** Request the SHM debug log start/wrap markers */
-#define I3_IPC_REPLY_TYPE_LOG_MARKERS 7
+/** i3 version reply type */
+#define I3_IPC_REPLY_TYPE_VERSION 7
/*
* Events from i3 to clients. Events have the first bit set high.
/* 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)
+
#endif