All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brad Campbell <brad@wasp.net.au>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] USB Tablet Emulation
Date: Tue, 11 Apr 2006 01:27:23 +0400	[thread overview]
Message-ID: <443ACDBB.8070704@wasp.net.au> (raw)
In-Reply-To: <443AB591.3030501@wasp.net.au>

[-- Attachment #1: Type: text/plain, Size: 1828 bytes --]

Brad Campbell wrote:
> Brad Campbell wrote:
>> Brad Campbell wrote:
>>
>>> The wheel works in SDL although there is currently a bug where it 
>>> steps by 2 instead of 1.. so it's ok for scrolling, but scrolling 
>>> through a selection box causes it to skip every second selection.
>>> I've not tested the wheel with the vnc patch yet. I'll get to those 
>>> tonight..
>>
>> Wheel works in VNC unmodified :) (yay)
>>
>> I've been playing some more on the Win98 calibration issue and I'll 
>> keep looking at that, but for now it' still a no-go. And the 2 step 
>> wheel thing still needs fixing.
> 
> Fixed the descriptor.. Now works perfectly in Win98, 2k and XP :)
> 

Spoke too soon.. revised patch that actually has been completely tested in all 3.
For those thinking of going into a career of hid descriptor writing.. DON'T!

Win98 does not parse the descriptor properly.. and win2k/xp appear to adhere strictly to the specs.
We should now be in a pretty compliant position with all bases covered.

Also attached a small patch to sdl.c which solves the double wheel messages.
The wheel is just 2 buttons.. up and down effectively, and we were sending a delta on both press and 
release of each button, where it should only be a press. This makes the double events go away and I 
can scroll line by line through any listbox or list.

For those that just want to play.
This is a rollup of Anthony's patch, Leo's win2k-hack patch and all my latest fixes plus the vnc 
patch. It applies directly over the latest cvs checkout and is enabled with
-usb -usbdevice tablet.

http://fnarfbargle.dyndns.org:81/qemu/qemu-hid-rfb-ide.patch.gz


Brad
-- 
"Human beings, who are almost unique in having the ability
to learn from the experience of others, are also remarkable
for their apparent disinclination to do so." -- Douglas Adams

[-- Attachment #2: qemu-usb-hid-002.patch --]
[-- Type: text/plain, Size: 2443 bytes --]

--- qemu-clean/hw/usb-hid.c	2006-04-10 23:39:14.000000000 +0400
+++ qemu/hw/usb-hid.c	2006-04-11 01:15:49.000000000 +0400
@@ -161,7 +161,7 @@
         0x00,        /*  u8 country_code */
         0x01,        /*  u8 num_descriptors */
         0x22,        /*  u8 type; Report */
-        65, 0,       /*  u16 len */
+        74, 0,       /*  u16 len */
 
 	/* one endpoint (status change endpoint) */
 	0x07,       /*  u8  ep_bLength; */
@@ -188,29 +188,40 @@
         0xA1, 0x01, /* Collection Application */
         0x09, 0x01, /* Usage Pointer */
         0xA1, 0x00, /* Collection Physical */
-        0x05, 0x09, /* Usage Page Button */
+
+	0x05, 0x09, /* Usage Page Button */
         0x19, 0x01, /* Usage Minimum Button 1 */
         0x29, 0x03, /* Usage Maximum Button 3 */
         0x15, 0x00, /* Logical Minimum 0 */
         0x25, 0x01, /* Logical Maximum 1 */
-        0x95, 0x03, /* Report Count 3 */
+
+	0x95, 0x03, /* Report Count 3 */
         0x75, 0x01, /* Report Size 1 */
         0x81, 0x02, /* Input (Data, Var, Abs) */
         0x95, 0x01, /* Report Count 1 */
         0x75, 0x05, /* Report Size 5 */
-        0x81, 0x01, /* Input (Cnst, Var, Abs) */
+
+	0x81, 0x01, /* Input (Cnst, Var, Abs) */
         0x05, 0x01, /* Usage Page Generic Desktop */
-        0x09, 0x30, /* Usage X */
+	0x09, 0x30, /* Usage X */
         0x09, 0x31, /* Usage Y */
         0x15, 0x00, /* Logical Minimum 0 */
-        0x27, 0xFF, 0xFF, 0x00, 0x00, /* Logical Maximum 0xffff */
-        0x75, 0x10, /* Report Size 16 */
-        0x95, 0x02, /* Report Count 2 */
-        0x81, 0x02, /* Input (Data, Var, Abs) */
+
+	0x26, 0xFF, 0x7F, /* Logical Maximum 0x7fff */
+        0x35, 0x00, /* Physical Minimum 0 */
+        0x46, 0xFE, 0x7F, /* Physical Maximum 0x7fff */
+	0x75, 0x10, /* Report Size 16 */
+
+	0x95, 0x02, /* Report Count 2 */
+	0x81, 0x02, /* Input (Data, Var, Abs) */
+        0x05, 0x01, /* Usage Page Generic Desktop */
         0x09, 0x38, /* Usage Wheel */
         0x15, 0x81, /* Logical Minimum -127 */
-        0x25, 0x7F, /* Logical Maximum 127 */
-        0x75, 0x08, /* Report Size 8 */
+
+	0x25, 0x7F, /* Logical Maximum 127 */
+	0x35, 0x00, /* Physical Minimum 0 (same as logical) */
+	0x45, 0x00, /* Physical Maximum 0 (same as logical) */
+	0x75, 0x08, /* Report Size 8 */
         0x95, 0x01, /* Report Count 1 */
         0x81, 0x02, /* Input (Data, Var, Rel) */
         0xC0,       /* End Collection */

[-- Attachment #3: qemu-sdl-wheel.patch --]
[-- Type: text/plain, Size: 662 bytes --]

--- qemu-clean/sdl.c	2006-04-10 23:43:08.000000000 +0400
+++ qemu/sdl.c	2006-04-11 00:56:01.000000000 +0400
@@ -479,9 +479,9 @@
                     int dz;
                     dz = 0;
 #ifdef SDL_BUTTON_WHEELUP
-                    if (bev->button == SDL_BUTTON_WHEELUP) {
+                    if (bev->button == SDL_BUTTON_WHEELUP && ev->type == SDL_MOUSEBUTTONDOWN) {
                         dz = -1;
-                    } else if (bev->button == SDL_BUTTON_WHEELDOWN) {
+                    } else if (bev->button == SDL_BUTTON_WHEELDOWN && ev->type == SDL_MOUSEBUTTONDOWN) {
                         dz = 1;
                     }
 #endif               

  reply	other threads:[~2006-04-10 21:26 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-04-08 16:20 [Qemu-devel] VNC terminal server? Samuel Hunt
2006-04-08 18:12 ` Brad Campbell
2006-04-21 15:31   ` Troy Benjegerdes
2006-04-21 15:58     ` WaxDragon
2006-04-08 18:24 ` Johannes Schindelin
2006-04-08 18:37   ` Leonardo E. Reiter
2006-04-08 19:04     ` Johannes Schindelin
2006-04-08 19:15       ` Leonardo E. Reiter
2006-04-09  2:54       ` Anthony Liguori
2006-04-08 20:19     ` Brad Campbell
2006-04-08 20:29       ` Leonardo E. Reiter
2006-04-08 21:06       ` [Qemu-devel] Absolute USB-HID device musings (was Re: VNC Terminal Server) Leonardo E. Reiter
2006-04-08 21:18         ` Leonardo E. Reiter
2006-04-08 21:22         ` Brad Campbell
2006-04-08 21:36           ` Leonardo E. Reiter
2006-04-09  4:36         ` Anthony Liguori
2006-04-09 15:14           ` Jim C. Brown
2006-04-09 16:03           ` Leonardo E. Reiter
2006-04-09 16:49             ` Brad Campbell
2006-04-09 18:07             ` andrzej zaborowski
2006-04-09 18:35         ` Brad Campbell
2006-04-09 18:41           ` Lonnie Mendez
2006-04-09 19:22             ` Brad Campbell
2006-04-09 20:27               ` [Qemu-devel] Gentlemen we have absolute movement! was:Absolute " Brad Campbell
2006-04-09 20:31                 ` Anthony Liguori
2006-04-09 20:57                 ` Anthony Liguori
2006-04-09 21:02                   ` Brad Campbell
2006-04-09 21:10                   ` Brad Campbell
2006-04-09 21:20                     ` Johannes Schindelin
2006-04-09 21:35                       ` Brad Campbell
2006-04-09 21:39                     ` Anthony Liguori
2006-04-09 22:01                       ` Brad Campbell
2006-04-09 22:08                         ` Anthony Liguori
2006-04-09 22:12                           ` Brad Campbell
2006-04-09 22:18                           ` Brad Campbell
2006-04-09 23:14                           ` Brad Campbell
2006-04-10  3:40                             ` [Qemu-devel] USB Tablet Emulation (was: Gentlemen we have absolute movement! was:Absolute USB-HID device musings (was Re: VNC Terminal Server)) Anthony Liguori
2006-04-10  8:23                               ` [Qemu-devel] USB Tablet Emulation Brad Campbell
2006-04-10  8:32                                 ` Johannes Schindelin
2006-04-10 10:27                                   ` Brad Campbell
2006-04-10 11:27                                     ` Johannes Schindelin
2006-04-19 17:18                                 ` [Qemu-devel] USB Tablet Emulation + VNC patch Troy Benjegerdes
2006-04-21 21:13                                   ` Brad Campbell
2006-04-26  0:55                                     ` Troy Benjegerdes
2006-04-26  7:37                                       ` Brad Campbell
2006-04-10 14:58                               ` [Qemu-devel] USB Tablet Emulation Leonardo E. Reiter
2006-04-10 15:27                                 ` Anthony Liguori
2006-04-10 15:39                                   ` Leonardo E. Reiter
2006-04-10 16:08                                     ` Brad Campbell
2006-04-10 19:28                                       ` Brad Campbell
2006-04-10 19:44                                         ` Brad Campbell
2006-04-10 21:27                                           ` Brad Campbell [this message]
2006-04-10 21:39                                             ` Brad Campbell
2006-04-08 18:38   ` [Qemu-devel] VNC terminal server? Mark Williamson
2006-04-08 18:53     ` Johannes Schindelin
2006-04-08 19:01   ` Jim C. Brown
2006-04-08 19:12     ` Johannes Schindelin
2006-04-08 19:30       ` Jim C. Brown
2006-04-08 19:40         ` Johannes Schindelin
2006-04-09  2:55       ` Anthony Liguori
2006-04-09  2:53     ` Anthony Liguori
2006-04-08 19:21   ` andrzej zaborowski
2006-04-08 19:33     ` Leonardo E. Reiter
2006-04-09  2:59       ` Anthony Liguori
2006-04-09 16:06         ` Leonardo E. Reiter
2006-04-09 16:40           ` Anthony Liguori
2006-04-09  2:57     ` Anthony Liguori
2006-04-09  2:52   ` Anthony Liguori

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=443ACDBB.8070704@wasp.net.au \
    --to=brad@wasp.net.au \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.