Lines Matching +full:not +full:- +full:swapped
4 * Copyright (c) 2021 Marc-André Lureau <marcandre.lureau@redhat.com>
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25 #include "qemu/error-report.h"
28 #include "ui/kbd-state.h"
66 g_object_set(ddc->iface, in G_DEFINE_TYPE()
131 .dpy_name = "dbus-console",
145 ddc->listeners = g_ptr_array_new_with_free_func(g_object_unref); in dbus_display_console_init()
146 ddc->dcl.ops = &dbus_console_dcl_ops; in dbus_display_console_init()
154 unregister_displaychangelistener(&ddc->dcl); in dbus_display_console_dispose()
155 g_clear_object(&ddc->iface_touch); in dbus_display_console_dispose()
156 g_clear_object(&ddc->iface_mouse); in dbus_display_console_dispose()
157 g_clear_object(&ddc->iface_kbd); in dbus_display_console_dispose()
158 g_clear_object(&ddc->iface); in dbus_display_console_dispose()
159 g_clear_pointer(&ddc->listeners, g_ptr_array_unref); in dbus_display_console_dispose()
160 g_clear_pointer(&ddc->kbd, qkbd_state_free); in dbus_display_console_dispose()
162 G_OBJECT_CLASS(dbus_display_console_parent_class)->dispose(object); in dbus_display_console_dispose()
170 gobject_class->dispose = dbus_display_console_dispose; in dbus_display_console_class_init()
181 g_ptr_array_remove_fast(ddc->listeners, listener); in listener_vanished_cb()
182 qkbd_state_lift_all_keys(ddc->kbd); in listener_vanished_cb()
204 if (!dpy_ui_info_supported(ddc->dcl.con)) { in dbus_console_set_ui_info()
208 "SetUIInfo is not supported"); in dbus_console_set_ui_info()
212 dpy_set_ui_info(ddc->dcl.con, &info, false); in dbus_console_set_ui_info()
213 qemu_dbus_display1_console_complete_set_uiinfo(ddc->iface, invocation); in dbus_console_set_ui_info()
280 "Couldn't get peer fd: %s", err->message); in dbus_console_register_listener()
291 "Couldn't make a socket: %s", err->message); in dbus_console_register_listener()
302 ddc->iface, invocation in dbus_console_register_listener()
320 error_report("Failed to setup peer connection: %s", err->message); in dbus_console_register_listener()
329 g_ptr_array_add(ddc->listeners, listener); in dbus_console_register_listener()
331 "swapped-signal::closed", listener_vanished_cb, listener, in dbus_console_register_listener()
347 qkbd_state_key_event(ddc->kbd, qcode, true); in dbus_kbd_press()
349 qemu_dbus_display1_keyboard_complete_press(ddc->iface_kbd, invocation); in dbus_kbd_press()
363 qkbd_state_key_event(ddc->kbd, qcode, false); in dbus_kbd_release()
365 qemu_dbus_display1_keyboard_complete_release(ddc->iface_kbd, invocation); in dbus_kbd_release()
375 qemu_dbus_display1_keyboard_set_modifiers(ddc->iface_kbd, ledstate); in dbus_kbd_qemu_leds_updated()
385 if (qemu_input_is_absolute(ddc->dcl.con)) { in dbus_mouse_rel_motion()
389 "Mouse is not relative"); in dbus_mouse_rel_motion()
393 qemu_input_queue_rel(ddc->dcl.con, INPUT_AXIS_X, dx); in dbus_mouse_rel_motion()
394 qemu_input_queue_rel(ddc->dcl.con, INPUT_AXIS_Y, dy); in dbus_mouse_rel_motion()
397 qemu_dbus_display1_mouse_complete_rel_motion(ddc->iface_mouse, in dbus_mouse_rel_motion()
424 width = qemu_console_get_width(ddc->dcl.con, 0); in dbus_touch_send_event()
425 height = qemu_console_get_height(ddc->dcl.con, 0); in dbus_touch_send_event()
427 console_handle_touch_event(ddc->dcl.con, touch_slots, in dbus_touch_send_event()
437 qemu_dbus_display1_multi_touch_complete_send_event(ddc->iface_touch, in dbus_touch_send_event()
452 if (!qemu_input_is_absolute(ddc->dcl.con)) { in dbus_mouse_set_pos()
456 "Mouse is not absolute"); in dbus_mouse_set_pos()
460 width = qemu_console_get_width(ddc->dcl.con, 0); in dbus_mouse_set_pos()
461 height = qemu_console_get_height(ddc->dcl.con, 0); in dbus_mouse_set_pos()
469 qemu_input_queue_abs(ddc->dcl.con, INPUT_AXIS_X, x, 0, width); in dbus_mouse_set_pos()
470 qemu_input_queue_abs(ddc->dcl.con, INPUT_AXIS_Y, y, 0, height); in dbus_mouse_set_pos()
473 qemu_dbus_display1_mouse_complete_set_abs_position(ddc->iface_mouse, in dbus_mouse_set_pos()
486 qemu_input_queue_btn(ddc->dcl.con, button, true); in dbus_mouse_press()
489 qemu_dbus_display1_mouse_complete_press(ddc->iface_mouse, invocation); in dbus_mouse_press()
501 qemu_input_queue_btn(ddc->dcl.con, button, false); in dbus_mouse_release()
504 qemu_dbus_display1_mouse_complete_release(ddc->iface_mouse, invocation); in dbus_mouse_release()
512 g_object_set(ddc->iface_mouse, in dbus_mouse_update_is_absolute()
513 "is-absolute", qemu_input_is_absolute(ddc->dcl.con), in dbus_mouse_update_is_absolute()
528 return qemu_console_get_index(ddc->dcl.con); in dbus_display_console_get_index()
553 "g-object-path", path, in dbus_display_console_new()
555 ddc->display = display; in dbus_display_console_new()
556 ddc->dcl.con = con; in dbus_display_console_new()
561 ddc->iface = qemu_dbus_display1_console_skeleton_new(); in dbus_display_console_new()
562 g_object_set(ddc->iface, in dbus_display_console_new()
568 "device-address", device_addr, in dbus_display_console_new()
571 g_object_connect(ddc->iface, in dbus_display_console_new()
572 "swapped-signal::handle-register-listener", in dbus_display_console_new()
574 "swapped-signal::handle-set-uiinfo", in dbus_display_console_new()
578 G_DBUS_INTERFACE_SKELETON(ddc->iface)); in dbus_display_console_new()
580 ddc->kbd = qkbd_state_init(con); in dbus_display_console_new()
581 ddc->iface_kbd = qemu_dbus_display1_keyboard_skeleton_new(); in dbus_display_console_new()
583 g_object_connect(ddc->iface_kbd, in dbus_display_console_new()
584 "swapped-signal::handle-press", dbus_kbd_press, ddc, in dbus_display_console_new()
585 "swapped-signal::handle-release", dbus_kbd_release, ddc, in dbus_display_console_new()
588 G_DBUS_INTERFACE_SKELETON(ddc->iface_kbd)); in dbus_display_console_new()
590 ddc->iface_mouse = qemu_dbus_display1_mouse_skeleton_new(); in dbus_display_console_new()
591 g_object_connect(ddc->iface_mouse, in dbus_display_console_new()
592 "swapped-signal::handle-set-abs-position", dbus_mouse_set_pos, ddc, in dbus_display_console_new()
593 "swapped-signal::handle-rel-motion", dbus_mouse_rel_motion, ddc, in dbus_display_console_new()
594 "swapped-signal::handle-press", dbus_mouse_press, ddc, in dbus_display_console_new()
595 "swapped-signal::handle-release", dbus_mouse_release, ddc, in dbus_display_console_new()
598 G_DBUS_INTERFACE_SKELETON(ddc->iface_mouse)); in dbus_display_console_new()
600 ddc->iface_touch = qemu_dbus_display1_multi_touch_skeleton_new(); in dbus_display_console_new()
601 g_object_connect(ddc->iface_touch, in dbus_display_console_new()
602 "swapped-signal::handle-send-event", dbus_touch_send_event, ddc, in dbus_display_console_new()
604 qemu_dbus_display1_multi_touch_set_max_slots(ddc->iface_touch, in dbus_display_console_new()
607 G_DBUS_INTERFACE_SKELETON(ddc->iface_touch)); in dbus_display_console_new()
611 slot->tracking_id = -1; in dbus_display_console_new()
614 register_displaychangelistener(&ddc->dcl); in dbus_display_console_new()
615 ddc->mouse_mode_notifier.notify = dbus_mouse_mode_change; in dbus_display_console_new()
616 qemu_add_mouse_mode_change_notifier(&ddc->mouse_mode_notifier); in dbus_display_console_new()