Commit graph

12 commits

Author SHA1 Message Date
Takanori Watanabe
8d6f425ddd Check l2cap socket initialisation and define L2CAP_SOCKET_CHECKED
This will fix build.
2015-04-07 16:48:23 +00:00
Raphael Kubo da Costa
fe4313f887 bthidd: Remove unused macros from hid.c.
ASIZE() was never used, and min() stopped being used in r207812.

Differential Revision:	https://reviews.freebsd.org/D2230
Reviewed by:	emax
Approved by:	emax
MFC after:	1 week
2015-04-06 12:36:24 +00:00
Raphael Kubo da Costa
822a51b396 bthidd: Consider usage ranges when dealing with array inputs.
So far, we were always using HID_USAGE() to determine the Usage ID of a
certain HID report input item. This does not work as intended if a field
is an array and the allowed usages are specified with a usage range, as
HID_USAGE() will return 0. We need to use the field value as an index in
the usage range list in this case instead.

This makes the volume keys in a Microsoft Bluetooth Mobile Keyboard
5000 be properly recognized. The relevant part of the HID report looks
like this:

  0xA1, 0x01,        // Collection (Application)
  0x85, 0x07,        //   Report ID (7)
  0x05, 0x0C,        //   Usage Page (Consumer)
  0x19, 0x00,        //   Usage Minimum (Unassigned)
  0x2A, 0xFF, 0x03,  //   Usage Maximum (0x03FF)
  0x95, 0x01,        //   Report Count (1)
  0x75, 0x10,        //   Report Size (16)
  0x15, 0x00,        //   Logical Minimum (0)
  0x27, 0xFF, 0x03, 0x00, 0x00,  //   Logical Maximum (1023)
  0x81, 0x00,        //   Input (Data,Array,Abs,No Wrap,Linear,Preferred
                     //   State,No Null Position)

When a key such as "volume down" is pressed, the following data is
transferred through Interrupt In:

  0x07 0xEA 0x00

Differential Revision:	https://reviews.freebsd.org/D2229
Reviewed by:	emax
Approved by:	emax
MFC after:	1 week
2015-04-05 18:53:48 +00:00
Maksim Yevmenkin
a28cc643b1 Encode horizontal scroll events (AC Pan) as button presses (bit 5 and 6)
Submitted by:	David Demelier demelier dot david at gmail dot com
MFC after:	1 week
2011-05-04 17:58:15 +00:00
Maksim Yevmenkin
fc780ca17e Make sure to only pickup hid_input items when parsing input reports.
As it turns out, libusbhid(3) also picks up hic_collection items even
though we explicitly requested hid_input items only.

Tested by:	Buganini < buganini at gmail dot com >
MFC after:	1 week
2010-09-08 20:00:27 +00:00
Kai Wang
ef6de0e1d8 Catch up with libusbhid merge (rev 205728).
hid_get_data() now expects that the hid data passed in always contains
the report ID byte. Thus we should not skip the the report ID byte in
hid_interrupt().  Also, if HUP_KEYBOARD usage is an array, do not try
to modify the 'data' pointer, instead, increase the hid_item_t field
'pos' by 'report_size' before calling hid_get_data() during each
iteration.

PR:			usb/146367
Reported and tested by:	Alex Deiter
Pointy hat to:	    	kaiw
Reviewed by:	    	emax
2010-05-09 09:20:25 +00:00
Markus Brueffer
13d38e1a13 Fix a typo introduced in the last commit: WWW Refresh is 0x227, not 0227
Approved by:	emax (mentor)
MFC after:	1 day
2006-10-09 22:27:23 +00:00
Maksim Yevmenkin
7aebfa93ac Update bthidd(8) code and hook it up to the build.
bthidd(8) now was integrated with vkbd(4) and supports
multiple keyboards via vkbd(4)/kbdmux(4).

The code was tested with Apple Bluetooth keyboard and
SE k700i cell phone (remote control feature).

MFC after:	1 month
2006-09-07 21:47:49 +00:00
Maksim Yevmenkin
5338f5dd69 Properly map mouse buttons
PR:		bin/94577
Submitted by:	Krzysztof Jedruczyk < beaker at hot dot pl >
MFC after:	3 days
2006-03-21 18:42:52 +00:00
Maksim Yevmenkin
41603b1c8a Fix typo
Submitted by:	Iain Hibbert < plunky at rya-online dot net >
MFC after:	3 days
2006-03-13 23:59:43 +00:00
Maksim Yevmenkin
3adfd74adb Check in updated bthidd(8). This is still work in progress. 2004-11-18 18:05:15 +00:00
Maksim Yevmenkin
6490c2ffab Start committing Bluetooth HID (Human Interface Device) support.
Note: bthidd(8) is still not complete. Need to commit kernel
support (a-la Linux /dev/input) to feed HID events into kernel.
Also need to write bthidd(8) and bthidd.conf(5) man pages.
2004-04-10 00:18:00 +00:00