aboutsummaryrefslogtreecommitdiff
path: root/include/backend/drm/otd.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/backend/drm/otd.h')
-rw-r--r--include/backend/drm/otd.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/include/backend/drm/otd.h b/include/backend/drm/otd.h
new file mode 100644
index 00000000..eef0e991
--- /dev/null
+++ b/include/backend/drm/otd.h
@@ -0,0 +1,44 @@
+#ifndef LIBOTD_H
+#define LIBOTD_H
+
+#include <stdbool.h>
+#include <stddef.h>
+#include <EGL/egl.h>
+#include <gbm.h>
+#include <libudev.h>
+
+#include "session.h"
+
+struct otd {
+ int fd;
+ bool paused;
+
+ // Priority Queue (Max-heap)
+ size_t event_cap;
+ size_t event_len;
+ struct otd_event *events;
+
+ size_t display_len;
+ struct otd_display *displays;
+
+ uint32_t taken_crtcs;
+
+ struct gbm_device *gbm;
+ struct {
+ EGLDisplay disp;
+ EGLConfig conf;
+ EGLContext context;
+ } egl;
+
+ struct otd_session session;
+
+ struct udev *udev;
+ struct udev_monitor *mon;
+ int udev_fd;
+ char *drm_path;
+};
+
+struct otd *otd_start(void);
+void otd_finish(struct otd *otd);
+
+#endif