summaryrefslogtreecommitdiffstats
path: root/lassi-server.h
diff options
context:
space:
mode:
Diffstat (limited to 'lassi-server.h')
-rw-r--r--lassi-server.h70
1 files changed, 70 insertions, 0 deletions
diff --git a/lassi-server.h b/lassi-server.h
new file mode 100644
index 0000000..b8f7dc4
--- /dev/null
+++ b/lassi-server.h
@@ -0,0 +1,70 @@
+#ifndef foolassiserverhfoo
+#define foolassiserverhfoo
+
+#include <dbus/dbus.h>
+#include <glib.h>
+
+typedef struct LassiServer LassiServer;
+typedef struct LassiConnection LassiConnection;
+
+#include "lassi-grab.h"
+#include "lassi-osd.h"
+#include "lassi-clipboard.h"
+
+struct LassiServer {
+ DBusServer *dbus_server;
+
+ char *id, *address;
+
+ /* All connections */
+ GList *connections;
+ int n_connections;
+
+ /* Configured connections */
+ GHashTable *connections_by_id;
+ GList *connections_left, *connections_right; /* stored from right to left, resp, left to right */
+
+ /* Active display management */
+ int active_generation;
+ LassiConnection *active_connection;
+
+ /* Layout management */
+ int order_generation;
+ GList *order;
+
+ /* Clipboard CLIPBOARD management */
+ int clipboard_generation;
+ LassiConnection *clipboard_connection;
+ gboolean clipboard_empty;
+
+ /* Clipboard PRIMARY management */
+ int primary_generation;
+ LassiConnection *primary_connection;
+ gboolean primary_empty;
+
+ LassiGrabInfo grab_info;
+ LassiOsdInfo osd_info;
+ LassiClipboardInfo clipboard_info;
+};
+
+struct LassiConnection {
+ LassiServer *server;
+
+ DBusConnection *dbus_connection;
+ char *id, *address;
+
+ gboolean we_are_client;
+};
+
+int lassi_server_change_grab(LassiServer *s, gboolean to_left, int y);
+int lassi_server_acquire_grab(LassiServer *s);
+
+int lassi_server_motion_event(LassiServer *s, int dx, int dy);
+int lassi_server_button_event(LassiServer *ls, unsigned button, gboolean is_press);
+int lassi_server_key_event(LassiServer *ls, unsigned key, gboolean is_press);
+
+int lassi_server_acquire_clipboard(LassiServer *ls, gboolean primary, char**targets);
+int lassi_server_return_clipboard(LassiServer *ls, gboolean primary);
+int lassi_server_get_clipboard(LassiServer *ls, gboolean primary, const char *t, int *f, gpointer *p, int *l);
+
+#endif