chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
terminal: add evdev elements to idev
[elogind.git]
/
src
/
libsystemd-terminal
/
idev.h
diff --git
a/src/libsystemd-terminal/idev.h
b/src/libsystemd-terminal/idev.h
index 6f618f37af5e2355161096f9cabab424b3fb459e..c98fb1bfb090a8a54b4304b91d7f7dad1d11ed5f 100644
(file)
--- a/
src/libsystemd-terminal/idev.h
+++ b/
src/libsystemd-terminal/idev.h
@@
-26,6
+26,8
@@
#pragma once
#include <inttypes.h>
#pragma once
#include <inttypes.h>
+#include <libudev.h>
+#include <linux/input.h>
#include <stdbool.h>
#include <stdlib.h>
#include <systemd/sd-bus.h>
#include <stdbool.h>
#include <stdlib.h>
#include <systemd/sd-bus.h>
@@
-33,6
+35,7
@@
#include "util.h"
typedef struct idev_data idev_data;
#include "util.h"
typedef struct idev_data idev_data;
+typedef struct idev_data_evdev idev_data_evdev;
typedef struct idev_event idev_event;
typedef struct idev_device idev_device;
typedef struct idev_event idev_event;
typedef struct idev_device idev_device;
@@
-44,6
+47,7
@@
typedef struct idev_context idev_context;
*/
enum {
*/
enum {
+ IDEV_ELEMENT_EVDEV,
IDEV_ELEMENT_CNT
};
IDEV_ELEMENT_CNT
};
@@
-51,18
+55,31
@@
enum {
IDEV_DEVICE_CNT
};
IDEV_DEVICE_CNT
};
+/*
+ * Evdev Elements
+ */
+
+struct idev_data_evdev {
+ struct input_event event;
+};
+
/*
* Data Packets
*/
enum {
IDEV_DATA_RESYNC,
/*
* Data Packets
*/
enum {
IDEV_DATA_RESYNC,
+ IDEV_DATA_EVDEV,
IDEV_DATA_CNT
};
struct idev_data {
unsigned int type;
bool resync : 1;
IDEV_DATA_CNT
};
struct idev_data {
unsigned int type;
bool resync : 1;
+
+ union {
+ idev_data_evdev evdev;
+ };
};
/*
};
/*
@@
-122,6
+139,9
@@
bool idev_session_is_enabled(idev_session *s);
void idev_session_enable(idev_session *s);
void idev_session_disable(idev_session *s);
void idev_session_enable(idev_session *s);
void idev_session_disable(idev_session *s);
+int idev_session_add_evdev(idev_session *s, struct udev_device *ud);
+int idev_session_remove_evdev(idev_session *s, struct udev_device *ud);
+
/*
* Contexts
*/
/*
* Contexts
*/