From: Marc-André Lureau <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Signed-off-by: Marc-André Lureau <[email protected]>
---
ui/console.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/ui/console.c b/ui/console.c
index 4f3b4394268..22ca1c35db3 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -572,6 +572,17 @@ dcl_set_graphic_cursor(DisplayChangeListener *dcl,
QemuGraphicConsole *con)
}
}
+/*
+ * qemu_console_register_listener:
+ * @con: the console to attach the listener to
+ * @dcl: the display change listener to register
+ * @ops: the listener operations (callbacks for display updates)
+ *
+ * Register a display change listener on a console. The listener
+ * must not already be registered (i.e. @dcl->ds must be NULL).
+ * This sets up the listener, adds it to the display state, triggers
+ * an initial display update, and setup the cursor.
+ */
void qemu_console_register_listener(QemuConsole *con,
DisplayChangeListener *dcl,
const DisplayChangeListenerOps *ops)
@@ -605,6 +616,15 @@ void update_displaychangelistener(DisplayChangeListener
*dcl,
}
}
+/*
+ * qemu_console_unregister_listener:
+ * @dcl: the display change listener to unregister
+ *
+ * Unregister a display change listener, removing it from the
+ * display state's listener list. If the listener is not currently
+ * registered (@dcl->ds is NULL), this is a no-op. After unregistering,
+ * the display refresh timer is recalculated.
+ */
void qemu_console_unregister_listener(DisplayChangeListener *dcl)
{
DisplayState *ds = dcl->ds;
--
2.54.0