VirtualBox

Changeset 47227 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Jul 18, 2013 8:21:00 AM (11 years ago)
Author:
vboxsync
Message:

Devices/input: more adjustments to the USB input device.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Input/UsbMouse.cpp

    r47219 r47227  
    3939#define USBHID_STR_ID_PRODUCT_M     2
    4040#define USBHID_STR_ID_PRODUCT_T     3
     41#define USBHID_STR_ID_PRODUCT_MT    4
    4142/** @} */
    4243
     
    5253#define USBHID_PID_MOUSE            0x0020
    5354#define USBHID_PID_TABLET           0x0021
     55#define USBHID_PID_MULTI_TOUCH      0x0022
    5456/** @} */
    5557
     
    133135        struct
    134136        {
    135             uint32_t    fButtons;
    136137            uint32_t    x;
    137138            uint32_t    y;
    138             int32_t     dz;
     139            uint32_t    fButtons;
    139140        } Absolute;
    140141        struct
     
    231232typedef struct USBHIDT_REPORT
    232233{
    233     uint8_t     rid;
    234     uint8_t     fButtons;
    235     int8_t      dz;
    236     int8_t      dummy;
    237234    uint16_t    x;
    238235    uint16_t    y;
     236    uint8_t     fButtons;
    239237} USBHIDT_REPORT, *PUSBHIDT_REPORT;
    240238
     
    268266static const PDMUSBDESCCACHESTRING g_aUsbHidStrings_en_US[] =
    269267{
    270     { USBHID_STR_ID_MANUFACTURER,   "VirtualBox"    },
    271     { USBHID_STR_ID_PRODUCT_M,      "USB Mouse"     },
    272     { USBHID_STR_ID_PRODUCT_T,      "USB Tablet"    },
     268    { USBHID_STR_ID_MANUFACTURER,   "VirtualBox"      },
     269    { USBHID_STR_ID_PRODUCT_M,      "USB Mouse"       },
     270    { USBHID_STR_ID_PRODUCT_T,      "USB Tablet"      },
     271    { USBHID_STR_ID_PRODUCT_MT,     "USB Multi-Touch" },
    273272};
    274273
     
    359358    /* Usage */                     0x09, 0x02,     /* Mouse */
    360359    /* Collection */                0xA1, 0x01,     /* Application */
    361     /* Report ID */                 0x85, REPORTID_MOUSE,
    362360    /* Usage */                     0x09, 0x01,     /* Pointer */
    363361    /* Collection */                0xA1, 0x00,     /* Physical */
     362    /* Usage */                     0x09, 0x30,     /* X */
     363    /* Usage */                     0x09, 0x31,     /* Y */
     364    /* Logical Minimum */           0x15, 0x00,     /* 0 */
     365    /* Logical Maximum */           0x26, 0xFF,0x7F,/* 0x7fff */
     366    /* Physical Minimum */          0x35, 0x00,     /* 0 */
     367    /* Physical Maximum */          0x46, 0xFF,0x7F,/* 0x7fff */
     368    /* Report Size */               0x75, 0x10,     /* 16 */
     369    /* Report Count */              0x95, 0x02,     /* 2 */
     370    /* Input */                     0x81, 0x02,     /* Data, Value, Absolute, Bit field */
    364371    /* Usage Page */                0x05, 0x09,     /* Button */
    365372    /* Usage Minimum */             0x19, 0x01,     /* Button 1 */
     
    373380    /* Report Size */               0x75, 0x03,     /* 3 (padding bits) */
    374381    /* Input */                     0x81, 0x03,     /* Constant, Value, Absolute, Bit field */
    375     /* Usage Page */                0x05, 0x01,     /* Generic Desktop */
    376     /* Usage */                     0x09, 0x38,     /* Z (wheel) */
    377     /* Logical Minimum */           0x15, 0x81,     /* -127 */
    378     /* Logical Maximum */           0x25, 0x7F,     /* +127 */
    379     /* Report Size */               0x75, 0x08,     /* 8 */
    380     /* Report Count */              0x95, 0x01,     /* 1 */
    381     /* Input */                     0x81, 0x06,     /* Data, Value, Relative, Bit field */
    382     /* Report Count */              0x95, 0x01,     /* 1 (padding byte) */
    383     /* Input */                     0x81, 0x03,     /* Constant, Value, Absolute, Bit field */
    384     /* Usage Page */                0x05, 0x01,     /* Generic Desktop */
    385     /* Usage */                     0x09, 0x30,     /* X */
    386     /* Usage */                     0x09, 0x31,     /* Y */
    387     /* Logical Minimum */           0x15, 0x00,     /* 0 */
    388     /* Logical Maximum */           0x26, 0xFF,0x7F,/* 0x7fff */
    389     /* Physical Minimum */          0x35, 0x00,     /* 0 */
    390     /* Physical Maximum */          0x46, 0xFF,0x7F,/* 0x7fff */
    391     /* Report Size */               0x75, 0x10,     /* 16 */
    392     /* Report Count */              0x95, 0x02,     /* 2 */
    393     /* Input */                     0x81, 0x02,     /* Data, Value, Absolute, Bit field */
    394382    /* End Collection */            0xC0,
    395383    /* End Collection */            0xC0,
     
    648636    /* .bMaxPacketSize0 = */        8,
    649637    /* .idVendor = */               VBOX_USB_VENDOR,
    650     /* .idProduct = */              USBHID_PID_TABLET,
     638    /* .idProduct = */              USBHID_PID_MULTI_TOUCH,
    651639    /* .bcdDevice = */              0x0100, /* 1.0 */
    652640    /* .iManufacturer = */          USBHID_STR_ID_MANUFACTURER,
    653     /* .iProduct = */               USBHID_STR_ID_PRODUCT_T,
     641    /* .iProduct = */               USBHID_STR_ID_PRODUCT_MT,
    654642    /* .iSerialNumber = */          0,
    655643    /* .bNumConfigurations = */     1
     
    911899    case USBHIDMODE_ABSOLUTE:
    912900    {
    913         pReport->t.rid      = REPORTID_MOUSE;
    914901        pReport->t.fButtons = pAccumulated->u.Absolute.fButtons;
    915902        pReport->t.x        = pAccumulated->u.Absolute.x;
    916903        pReport->t.y        = pAccumulated->u.Absolute.y;
    917         pReport->t.dz       = clamp_i8(pAccumulated->u.Absolute.dz);
    918904
    919905        cbCopy = sizeof(pReport->t);
    920         LogRel3(("Abs event, x=%d, y=%d, dz=%d, fButtons=%02x, report size %d\n",
    921                  pReport->t.x, pReport->t.y, pReport->t.dz, pReport->t.fButtons,
     906        LogRel3(("Abs event, x=%d, y=%d, fButtons=%02x, report size %d\n",
     907                 pReport->t.x, pReport->t.y, pReport->t.fButtons,
    922908                 cbCopy));
    923909        break;
     
    10381024    pThis->PtrDelta.u.Absolute.x        = x >> pThis->u8CoordShift;
    10391025    pThis->PtrDelta.u.Absolute.y        = y >> pThis->u8CoordShift;
    1040     pThis->PtrDelta.u.Absolute.dz      -= dz;    /* Inverted! */
    10411026
    10421027    /* Send a report if possible. */
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette