From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60181) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WmkbK-0006t8-4s for qemu-devel@nongnu.org; Tue, 20 May 2014 10:01:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WmkbD-0007Hd-Rw for qemu-devel@nongnu.org; Tue, 20 May 2014 10:01:06 -0400 Received: from mx1.redhat.com ([209.132.183.28]:7316) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WmkbD-0007HX-JY for qemu-devel@nongnu.org; Tue, 20 May 2014 10:00:59 -0400 Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s4KE0wds025031 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 20 May 2014 10:00:59 -0400 From: Gerd Hoffmann Date: Tue, 20 May 2014 16:00:46 +0200 Message-Id: <1400594447-16637-6-git-send-email-kraxel@redhat.com> In-Reply-To: <1400594447-16637-1-git-send-email-kraxel@redhat.com> References: <1400594447-16637-1-git-send-email-kraxel@redhat.com> Subject: [Qemu-devel] [PATCH 5/6] usb: add input routing support for tablet and keyboard List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Gerd Hoffmann Add display property to the keyboard. Add display and head properties to the tablet. If properties are set bind device to the display specified to setup input routing. Signed-off-by: Gerd Hoffmann --- hw/usb/dev-hid.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/hw/usb/dev-hid.c b/hw/usb/dev-hid.c index d097d93..67a57f1 100644 --- a/hw/usb/dev-hid.c +++ b/hw/usb/dev-hid.c @@ -47,6 +47,8 @@ typedef struct USBHIDState { USBEndpoint *intr; HIDState hid; uint32_t usb_version; + char *display; + uint32_t head; } USBHIDState; enum { @@ -574,6 +576,9 @@ static int usb_hid_initfn(USBDevice *dev, int kind) usb_desc_init(dev); us->intr = usb_ep_get(dev, USB_TOKEN_IN, 1); hid_init(&us->hid, kind, usb_hid_changed); + if (us->display && us->hid.s) { + qemu_input_handler_bind(us->hid.s, us->display, us->head, NULL); + } return 0; } @@ -653,6 +658,8 @@ static void usb_hid_class_initfn(ObjectClass *klass, void *data) static Property usb_tablet_properties[] = { DEFINE_PROP_UINT32("usb_version", USBHIDState, usb_version, 2), + DEFINE_PROP_STRING("display", USBHIDState, display), + DEFINE_PROP_UINT32("head", USBHIDState, head, 0), DEFINE_PROP_END_OF_LIST(), }; @@ -696,6 +703,11 @@ static const TypeInfo usb_mouse_info = { .class_init = usb_mouse_class_initfn, }; +static Property usb_keyboard_properties[] = { + DEFINE_PROP_STRING("display", USBHIDState, display), + DEFINE_PROP_END_OF_LIST(), +}; + static void usb_keyboard_class_initfn(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); @@ -706,6 +718,7 @@ static void usb_keyboard_class_initfn(ObjectClass *klass, void *data) uc->product_desc = "QEMU USB Keyboard"; uc->usb_desc = &desc_keyboard; dc->vmsd = &vmstate_usb_kbd; + dc->props = usb_keyboard_properties; set_bit(DEVICE_CATEGORY_INPUT, dc->categories); } -- 1.8.3.1