chiark / gitweb /
terminal/screen: add support for alternate screen buffers
[elogind.git] / src / libsystemd-terminal / idev-internal.h
index 3301ebf6e41f0cc372c6dfe4b3b3af116f56587f..a159aef211a8922bfaa534afec1f0e57907f05ad 100644 (file)
@@ -28,6 +28,7 @@
 #include <stdlib.h>
 #include <systemd/sd-bus.h>
 #include <systemd/sd-event.h>
+#include <xkbcommon/xkbcommon.h>
 #include "hashmap.h"
 #include "idev.h"
 #include "list.h"
@@ -46,6 +47,14 @@ bool idev_is_evdev(idev_element *e);
 idev_element *idev_find_evdev(idev_session *s, dev_t devnum);
 int idev_evdev_new(idev_element **out, idev_session *s, struct udev_device *ud);
 
+/*
+ * Keyboard Devices
+ */
+
+bool idev_is_keyboard(idev_device *d);
+idev_device *idev_find_keyboard(idev_session *s, const char *name);
+int idev_keyboard_new(idev_device **out, idev_session *s, const char *name);
+
 /*
  * Element Links
  */
@@ -107,6 +116,8 @@ struct idev_element_vtable {
         void (*disable) (idev_element *e);
         void (*open) (idev_element *e);
         void (*close) (idev_element *e);
+        void (*resume) (idev_element *e, int fd);
+        void (*pause) (idev_element *e, const char *mode);
         void (*feedback) (idev_element *e, idev_data *data);
 };
 
@@ -146,6 +157,8 @@ struct idev_session {
         idev_context *context;
         char *name;
         char *path;
+        sd_bus_slot *slot_resume_device;
+        sd_bus_slot *slot_pause_device;
 
         Hashmap *element_map;
         Hashmap *device_map;