diff mbox

[1/3] console: add API to get underlying gui window ID

Message ID 20161030150857.2557-2-samuel.thibault@ens-lyon.org
State New
Headers show

Commit Message

Samuel Thibault Oct. 30, 2016, 3:08 p.m. UTC
This adds two console functions, qemu_console_set_window_id and
qemu_graphic_console_get_window_id, to let graphical backend record the
window id in the QemuConsole structure, and let the baum driver read it.

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
---
 include/ui/console.h |  3 +++
 ui/console.c         | 15 +++++++++++++++
 2 files changed, 18 insertions(+)
diff mbox

Patch

diff --git a/include/ui/console.h b/include/ui/console.h
index e2589e2..cf07e41 100644
--- a/include/ui/console.h
+++ b/include/ui/console.h
@@ -394,6 +394,9 @@  uint32_t qemu_console_get_head(QemuConsole *con);
 QemuUIInfo *qemu_console_get_ui_info(QemuConsole *con);
 int qemu_console_get_width(QemuConsole *con, int fallback);
 int qemu_console_get_height(QemuConsole *con, int fallback);
+/* Return the low-level window id for the first graphical console */
+int qemu_graphic_console_get_window_id(void);
+void qemu_console_set_window_id(int index, int window_id);
 
 void console_select(unsigned int index);
 void qemu_console_resize(QemuConsole *con, int width, int height);
diff --git a/ui/console.c b/ui/console.c
index ed888e5..aa3c4c7 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -124,6 +124,7 @@  struct QemuConsole {
     int dcls;
     DisplayChangeListener *gl;
     bool gl_block;
+    int window_id;
 
     /* Graphic console state.  */
     Object *device;
@@ -273,6 +274,20 @@  void graphic_hw_gl_block(QemuConsole *con, bool block)
     }
 }
 
+int qemu_graphic_console_get_window_id(void)
+{
+    if (consoles[0]->console_type == GRAPHIC_CONSOLE) {
+        return consoles[0]->window_id;
+    }
+    return -1;
+}
+
+void qemu_console_set_window_id(int index, int window_id)
+{
+    assert(index >= 0 && index < nb_consoles);
+    consoles[index]->window_id = window_id;
+}
+
 void graphic_hw_invalidate(QemuConsole *con)
 {
     if (!con) {