summaryrefslogtreecommitdiffstats
path: root/xbmc/windowing/wayland/WinEventsWayland.h
diff options
context:
space:
mode:
Diffstat (limited to 'xbmc/windowing/wayland/WinEventsWayland.h')
-rw-r--r--xbmc/windowing/wayland/WinEventsWayland.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/xbmc/windowing/wayland/WinEventsWayland.h b/xbmc/windowing/wayland/WinEventsWayland.h
new file mode 100644
index 0000000..9390956
--- /dev/null
+++ b/xbmc/windowing/wayland/WinEventsWayland.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2017-2018 Team Kodi
+ * This file is part of Kodi - https://kodi.tv
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ * See LICENSES/README.md for more information.
+ */
+
+#pragma once
+
+#include "../WinEvents.h"
+#include "threads/CriticalSection.h"
+
+#include <queue>
+
+namespace wayland
+{
+class event_queue_t;
+class display_t;
+}
+
+namespace KODI
+{
+namespace WINDOWING
+{
+namespace WAYLAND
+{
+
+class CWinEventsWayland : public IWinEvents
+{
+public:
+ bool MessagePump() override;
+ void MessagePush(XBMC_Event* ev);
+ /// Write buffered messages to the compositor
+ static void Flush();
+ /// Do a roundtrip on the specified queue from the event processing thread
+ static void RoundtripQueue(wayland::event_queue_t const& queue);
+
+private:
+ friend class CWinSystemWayland;
+ static void SetDisplay(wayland::display_t* display);
+
+ CCriticalSection m_queueMutex;
+ std::queue<XBMC_Event> m_queue;
+};
+
+}
+}
+}