Enable support for mouse panning wheels.
Submitted by: Henry Hu
This commit is contained in:
parent
f61fd930ea
commit
6903fb5ec3
@ -286,6 +286,12 @@ ums_intr_callback(struct usb_xfer *xfer, usb_error_t error)
|
||||
DPRINTFN(6, "x:%d y:%d z:%d t:%d w:%d buttons:0x%08x\n",
|
||||
dx, dy, dz, dt, dw, buttons);
|
||||
|
||||
/* translate T-axis into button presses until further */
|
||||
if (dt > 0)
|
||||
buttons |= 1UL << 3;
|
||||
else if (dt < 0)
|
||||
buttons |= 1UL << 4;
|
||||
|
||||
sc->sc_status.button = buttons;
|
||||
sc->sc_status.dx += dx;
|
||||
sc->sc_status.dy += dy;
|
||||
@ -454,6 +460,12 @@ ums_hid_parse(struct ums_softc *sc, device_t dev, const uint8_t *buf,
|
||||
if ((flags & MOUSE_FLAGS_MASK) == MOUSE_FLAGS) {
|
||||
info->sc_flags |= UMS_FLAG_T_AXIS;
|
||||
}
|
||||
} else if (hid_locate(buf, len, HID_USAGE2(HUP_CONSUMER,
|
||||
HUC_AC_PAN), hid_input, index, &info->sc_loc_t,
|
||||
&flags, &info->sc_iid_t)) {
|
||||
|
||||
if ((flags & MOUSE_FLAGS_MASK) == MOUSE_FLAGS)
|
||||
info->sc_flags |= UMS_FLAG_T_AXIS;
|
||||
}
|
||||
/* figure out the number of buttons */
|
||||
|
||||
|
@ -156,6 +156,9 @@ struct usb_hid_descriptor {
|
||||
#define HUD_ERASER 0x0045
|
||||
#define HUD_TABLET_PICK 0x0046
|
||||
|
||||
/* Usages, Consumer */
|
||||
#define HUC_AC_PAN 0x0238
|
||||
|
||||
#define HID_USAGE2(p,u) (((p) << 16) | (u))
|
||||
|
||||
#define UHID_INPUT_REPORT 0x01
|
||||
|
Loading…
Reference in New Issue
Block a user