mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
ui/dbus: add chardev backend & interface
Add a new chardev backend which allows D-Bus client to handle the chardev stream & events. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Acked-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
4085b87ff0
commit
3e301c8d7e
8 changed files with 476 additions and 0 deletions
26
ui/dbus.c
26
ui/dbus.c
|
@ -55,6 +55,27 @@ static const DisplayGLCtxOps dbus_gl_ops = {
|
|||
.dpy_gl_ctx_make_current = qemu_egl_make_context_current,
|
||||
};
|
||||
|
||||
static NotifierList dbus_display_notifiers =
|
||||
NOTIFIER_LIST_INITIALIZER(dbus_display_notifiers);
|
||||
|
||||
void
|
||||
dbus_display_notifier_add(Notifier *notifier)
|
||||
{
|
||||
notifier_list_add(&dbus_display_notifiers, notifier);
|
||||
}
|
||||
|
||||
static void
|
||||
dbus_display_notifier_remove(Notifier *notifier)
|
||||
{
|
||||
notifier_remove(notifier);
|
||||
}
|
||||
|
||||
void
|
||||
dbus_display_notify(DBusDisplayEvent *event)
|
||||
{
|
||||
notifier_list_notify(&dbus_display_notifiers, event);
|
||||
}
|
||||
|
||||
static void
|
||||
dbus_display_init(Object *o)
|
||||
{
|
||||
|
@ -73,6 +94,7 @@ dbus_display_init(Object *o)
|
|||
g_dbus_object_manager_server_export(dd->server, vm);
|
||||
|
||||
dbus_clipboard_init(dd);
|
||||
dbus_chardev_init(dd);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -80,6 +102,10 @@ dbus_display_finalize(Object *o)
|
|||
{
|
||||
DBusDisplay *dd = DBUS_DISPLAY(o);
|
||||
|
||||
if (dd->notifier.notify) {
|
||||
dbus_display_notifier_remove(&dd->notifier);
|
||||
}
|
||||
|
||||
qemu_clipboard_peer_unregister(&dd->clipboard_peer);
|
||||
g_clear_object(&dd->clipboard);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue