From patchwork Fri Jan 15 18:04:27 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: sL1pKn07 SpinFlo X-Patchwork-Id: 8043761 Return-Path: X-Original-To: patchwork-qemu-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 5B6DFBEEE5 for ; Fri, 15 Jan 2016 18:05:27 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 8CD0C203F4 for ; Fri, 15 Jan 2016 18:05:26 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B12EF20357 for ; Fri, 15 Jan 2016 18:05:22 +0000 (UTC) Received: from localhost ([::1]:48477 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aK8kU-0004pD-3A for patchwork-qemu-devel@patchwork.kernel.org; Fri, 15 Jan 2016 13:05:22 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59404) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aK8kK-0004or-0N for qemu-devel@nongnu.org; Fri, 15 Jan 2016 13:05:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aK8kF-00021F-OK for qemu-devel@nongnu.org; Fri, 15 Jan 2016 13:05:11 -0500 Received: from mail-qk0-x243.google.com ([2607:f8b0:400d:c09::243]:34205) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aK8kF-000215-Ho for qemu-devel@nongnu.org; Fri, 15 Jan 2016 13:05:07 -0500 Received: by mail-qk0-x243.google.com with SMTP id y67so4705575qkc.1 for ; Fri, 15 Jan 2016 10:05:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding; bh=Dw4VgiZgbBxNChRMKqOsBzVrVLJcmzn2bH7Sxw8UaHw=; b=i+WD+iQ/yRpR5OpnTH6KQ9ZHPsFzRoNV6E7qClLsxZP2adLvr89yaxj0fEUs1uxinT 7O7T0v17+ChfIrDadIbWQsF1C9ts8nM7Vm6t01RlEx+JQyBTya+Tqmw0B/tFFh9SXt8D t0EpfrzYCPqTgb+RcLiGRh/IEi8hMtPv4NloB40FiXhJZe8j755lgRdMi1HdgsfwtsBl aVEc5aB+blcqu8S4hBPXj+1Kn8wtJFuyip9DTR3JxgQe1sTqYjZxrqnzgdUdjvvAqGHs gSsUqQXJVvlAtJk3uy0bSWWPw8nilwACtc2n0DPC2hYcmX5uAyytmdiPa2z7ZXsf+zHW MTCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type:content-transfer-encoding; bh=Dw4VgiZgbBxNChRMKqOsBzVrVLJcmzn2bH7Sxw8UaHw=; b=k+lUVkI5GAlW2NZF0jPm/mKdKolD3QSlWliKojZI7yVLu3l+1A8qKsrEF3oCdyRNv2 1rSkt7GTtyfUNHL/ftZFgPAlZVt2SsQ6DSTKpyNbfZUyeORaNVYIHaGqPUnpbK5cwbDI wKrcNwofdxw2uwixmGTUkMzJah5BDA1UpQet8O2QTZIOi1j2XQsd0iw0+xebDW7SHxXb Kac8G2TaY11V9hskMVZNBpuKCYDxQoeGPGZTlNtf+fBL4ciLl2AT+qlTRc30KI6hkT/m FPZkYhI6GOGy/ozmWtfrQOuf5QOlQRNGa0MxyoTyYPZd/wVKMijqbP62hcumuAgMwzMV ZemA== X-Gm-Message-State: ALoCoQmheKKYsusyLF+R+0Dum8kQAAagBg8tkJk41SVRKoUqCTBrrFeSRcstLkJtCZG94OJYdJU9/Dn+tSOo1cgivr81O08kbw== X-Received: by 10.55.75.85 with SMTP id y82mr14827800qka.29.1452881107102; Fri, 15 Jan 2016 10:05:07 -0800 (PST) MIME-Version: 1.0 Received: by 10.140.109.66 with HTTP; Fri, 15 Jan 2016 10:04:27 -0800 (PST) In-Reply-To: References: <1450102686-23855-1-git-send-email-kraxel@redhat.com> <1451908596.7377.95.camel@redhat.com> <1451977524.31764.2.camel@redhat.com> <1452066825.6096.18.camel@redhat.com> <1452087192.6096.38.camel@redhat.com> <1452847825.23156.22.camel@redhat.com> From: sL1pKn07 SpinFlo Date: Fri, 15 Jan 2016 19:04:27 +0100 Message-ID: To: kraxel@redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2607:f8b0:400d:c09::243 Cc: qemu-devel@nongnu.org, vfio-users Subject: [Qemu-devel] Fwd: [vfio-users] [PATCH v2 1/3] input: add qemu_input_qcode_to_linux + qemu_input_linux_to_qcode X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org X-Spam-Status: No, score=-6.8 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP ---------- Forwarded message ---------- From: sL1pKn07 SpinFlo Date: 2016-01-15 13:48 GMT+01:00 Subject: Re: [vfio-users] [PATCH v2 1/3] input: add qemu_input_qcode_to_linux + qemu_input_linux_to_qcode To: Gerd Hoffmann 2016-01-15 9:50 GMT+01:00 Gerd Hoffmann : > The mouse emulated by qemu has only three buttons. > > cheers, > Gerd > mmmnnn --------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------- for add more buttons is something like this? how I can get the values of "FIXME" parameters? yes, is a ugly patch (i am not coder) and make only for me... but i not want back to synergy/usb passthrough :( greetings PS: Mailman, oh, please ¬¬ diff --git a/hw/input/hid.c b/hw/input/hid.c index 3221d29..4dc870d 100644 --- a/hw/input/hid.c +++ b/hw/input/hid.c @@ -109,9 +109,13 @@ static void hid_pointer_event(DeviceState *dev, QemuConsole *src, InputEvent *evt) { static const int bmap[INPUT_BUTTON__MAX] = { - [INPUT_BUTTON_LEFT] = 0x01, - [INPUT_BUTTON_RIGHT] = 0x02, - [INPUT_BUTTON_MIDDLE] = 0x04, + [INPUT_BUTTON_LEFT] = 0x01, + [INPUT_BUTTON_RIGHT] = 0x02, + [INPUT_BUTTON_MIDDLE] = 0x04, + [INPUT_BUTTON_WHELLLEFT] = 0x??, /* FIXME! */ + [INPUT_BUTTON_WHELLRIGHT] = 0x??, /* FIXME! */ + [INPUT_BUTTON_FN1] = 0x??, /* FIXME! */ + [INPUT_BUTTON_FN2] = 0x??, /* FIXME! */ }; HIDState *hs = (HIDState *)dev; HIDPointerEvent *e; diff --git a/hw/input/ps2.c b/hw/input/ps2.c index 79754cd..2e5a722 100644 --- a/hw/input/ps2.c +++ b/hw/input/ps2.c @@ -383,9 +383,13 @@ static void ps2_mouse_event(DeviceState *dev, QemuConsole *src, InputEvent *evt) { static const int bmap[INPUT_BUTTON__MAX] = { - [INPUT_BUTTON_LEFT] = MOUSE_EVENT_LBUTTON, - [INPUT_BUTTON_MIDDLE] = MOUSE_EVENT_MBUTTON, - [INPUT_BUTTON_RIGHT] = MOUSE_EVENT_RBUTTON, + [INPUT_BUTTON_LEFT] = MOUSE_EVENT_LBUTTON, + [INPUT_BUTTON_MIDDLE] = MOUSE_EVENT_MBUTTON, + [INPUT_BUTTON_RIGHT] = MOUSE_EVENT_RBUTTON, + [INPUT_BUTTON_WHELLLEFT] = MOUSE_EVENT_WLBUTTON, + [INPUT_BUTTON_WHELLRIGHT] = MOUSE_EVENT_WRRBUTTON, + [INPUT_BUTTON_FN1] = MOUSE_EVENT_FN1BUTTON, + [INPUT_BUTTON_FN2] = MOUSE_EVENT_FN2BUTTON, }; PS2MouseState *s = (PS2MouseState *)dev; diff --git a/hw/input/virtio-input-hid.c b/hw/input/virtio-input-hid.c index a78d11c..9e3b6dd 100644 --- a/hw/input/virtio-input-hid.c +++ b/hw/input/virtio-input-hid.c @@ -144,6 +144,10 @@ static const unsigned int keymap_button[INPUT_BUTTON__MAX] = { [INPUT_BUTTON_MIDDLE] = BTN_MIDDLE, [INPUT_BUTTON_WHEELUP] = BTN_GEAR_UP, [INPUT_BUTTON_WHEELDOWN] = BTN_GEAR_DOWN, + [INPUT_BUTTON_WHELLLEFT] = BTN_GEAR_LEFT, + [INPUT_BUTTON_WHELLRIGHT] = BTN_GEAR_RIGHT, + [INPUT_BUTTON_FN1] = BTN_FUNCTION_1, + [INPUT_BUTTON_FN2] = BTN_FUNCTION_2, }; static const unsigned int axismap_rel[INPUT_AXIS__MAX] = { diff --git a/include/standard-headers/linux/input-event-codes.h b/include/standard-headers/linux/input-event-codes.h index 354f0de..0df11c7 100644 --- a/include/standard-headers/linux/input-event-codes.h +++ b/include/standard-headers/linux/input-event-codes.h @@ -416,6 +416,11 @@ #define BTN_WHEEL 0x150 #define BTN_GEAR_DOWN 0x150 #define BTN_GEAR_UP 0x151 +#define BTN_GEAR_LEFT 0x??? /* FIXME! */ +#define BTN_GEAR_RIGHT 0x??? /* FIXME! */ +#define BTN_FUNCTION_1 0x??? /* FIXME! */ +#define BTN_FUNCTION_2 0x??? /* FIXME! */ + #define KEY_OK 0x160 #define KEY_SELECT 0x161 diff --git a/monitor.c b/monitor.c index e7e7ae2..beda8da 100644 --- a/monitor.c +++ b/monitor.c @@ -1390,6 +1390,10 @@ static void hmp_mouse_button(Monitor *mon, const QDict *qdict) [INPUT_BUTTON_LEFT] = MOUSE_EVENT_LBUTTON, [INPUT_BUTTON_MIDDLE] = MOUSE_EVENT_MBUTTON, [INPUT_BUTTON_RIGHT] = MOUSE_EVENT_RBUTTON, + [INPUT_BUTTON_WHELLLEFT] = MOUSE_EVENT_WLBUTTON, + [INPUT_BUTTON_WHELLRIGHT] = MOUSE_EVENT_WRRBUTTON, + [INPUT_BUTTON_FN1] = MOUSE_EVENT_FN1BUTTON, + [INPUT_BUTTON_FN2] = MOUSE_EVENT_FN2BUTTON, }; int button_state = qdict_get_int(qdict, "button_state"); diff --git a/ui/input-linux.c b/ui/input-linux.c index 2e92c21..cc23c96 100644 --- a/ui/input-linux.c +++ b/ui/input-linux.c @@ -212,6 +212,17 @@ static void input_linux_event_mouse(void *opaque) case BTN_GEAR_DOWN: qemu_input_queue_btn(NULL, INPUT_BUTTON_WHEELDOWN, event.value); + case BTN_GEAR_LEFT: + qemu_input_queue_btn(NULL, INPUT_BUTTON_WHELLLEFT, + event.value); + case BTN_GEAR_RIGHT: + qemu_input_queue_btn(NULL, INPUT_BUTTON_WHELLRIGHT, + event.value); + case BTN_FUNCTION_1: + qemu_input_queue_btn(NULL, INPUT_BUTTON_FN1, event.value); + break; + case BTN_FUNCTION_1: + qemu_input_queue_btn(NULL, INPUT_BUTTON_FN2, event.value); break; }; break;