| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
Fix following with GCC version 4.8.2 (Debian 4.8.2-21):
CC profiles/input/bluetoothd-hog.o
profiles/input/hog.c: In function ‘report_value_cb’:
profiles/input/hog.c:149:8: error: format ‘%lu’ expects argument of
type ‘long unsigned int’, but argument 3 has type ‘unsigned int’
[-Werror=format=]
status, sizeof(ev));
^
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix following with GCC version 4.8.2 (Debian 4.8.2-21):
CC profiles/input/bluetoothd-device.o
profiles/input/device.c: In function ‘uhid_send_feature_answer’:
profiles/input/device.c:232:8: error: format ‘%lu’ expects argument
of type ‘long unsigned int’, but argument 3 has type ‘unsigned int’
[-Werror=format=]
len, sizeof(ev));
^
profiles/input/device.c: In function ‘uhid_send_input_report’:
profiles/input/device.c:274:8: error: format ‘%lu’ expects argument of
type ‘long unsigned int’, but argument 3 has type ‘unsigned int’
[-Werror=format=]
len, sizeof(ev));
^
|
|
|
|
|
| |
Fix buffer overflow that would happen in the case:
hogdev->has_report_id == TRUE && report_size == UHID_DATA_MAX
|
|
|
|
|
| |
Use similar uHID error handling and debug messages as uhid_send_input_report()
in profiles/input/device.c.
|
|
|
|
| |
Fix report_value_cb() signature to match GAttribNotifyFunc.
|
|
|
|
|
|
| |
When navigating on VFS ChangeFolder should only accept folders that are
one level away for the current one as it does use ChangePath which can
only navigate one level up/down in the virtual filesystem.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enable HID protocol handling in userspace when UserspaceHID=true in input.conf.
Benefits of userspace HID:
1. Persistent HID/input pipeline
For a Bluetooth HID device, the corresponding kernel HID/input devices are
created only once when the Bluetooth HID device is used the first time.
The HID/input pipeline is not destroyed and recreated every time when
the Bluetooth HID device disconnects and reconnects.
2. HID vs HoG parity
Enables HID and HoG devices to operate the same way in BlueZ stack, using
uHID kernel module (/dev/uhid) to pass HID report data between bluetoothd
and kernel HID subsystem.
3. Debugging
It is easier to debug HID protocol in userspace than in HIDP kernel module.
|
|
|
|
|
|
| |
Since complete descriptor discovery is now performed inside gatt code,
there's no need to store end handle for characteristics and thus we can
remove disc_desc_cb_data.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that we can split report map into items it's convenient to have it
printed with items structure preserved which makes it more useful for
debugging.
Up to 5 bytes are printed for each item which is enough for short items
and for long items continuation mark ('...') is printed if necessary.
This is because as for now there are no long item tags defined except
for some vendor defined thus we can safely "ignore" them and avoid
overly complicated code.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Report ID item in Report Descriptor is now detected by simply looking
for applicable item prefixes anywhere in data and does not take items
structure into consideration. This could lead to false-positive
detections in case value we look for is just part of item data, not an
actual item prefix.
As defined in Device Class Definition for HID (6.2.2.7), Report ID is
a short item with prefix 100001nn (binary) thus we do not need to do
complete parsing of Report Descriptor but only need to check items
prefixes in order to find Report ID items reliably.
This patch checks Report Descriptor item by item looking for item
prefix which matches Report ID, as defined in spec above.
|
|
|
|
|
|
|
| |
Those properties are set before the initial scope has been set so
checking for scope will always cause them to be invalidated, instead
check if any folder exists which indicates that MediaFolder interface
will be created shortly.
|
| |
|
|
|
|
| |
Refactor HIDP kernel module interaction to ioctl_xxx routines.
|
|
|
|
|
|
| |
IdleTimeout is an optional config item in input.conf. Don't complain
if it is not defined. Instead, do the opposite and show its value in
debug logs only when it is defined.
|
| |
|
| |
|
|
|
|
|
|
| |
Properties are defined by GATT specification. This patch moves and
renames the defines related to Characteristic properties bits from
attrib/att.h to attrib/gatt.h
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This is necessary to do accurate matching for LE devices.
|
| |
|
|
|
|
|
|
|
|
|
| |
caddr_t is legacy BSD and should be avoided.
This fixes the following compile error on Alpine Linux with musl libc:
profiles/network/bnep.c: In function 'bnep_if_up':
profiles/network/bnep.c:205:33: error: 'caddr_t' undeclared (first use in this function)
err = ioctl(sk, SIOCSIFFLAGS, (caddr_t) &ifr);
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fill ev.u.create.{phys,uniq} fields when uHID device is created.
These values are copied to kernel hid_device structure.
linux/include/linux/hid.h:
struct hid_device {
...
char name[128]; /* Device name */
char phys[64]; /* Device physical location */
char uniq[64]; /* Device unique identifier (serial #) */
|
|
|
|
| |
Remove hog_device.name and use hog_device.device to get the device name.
|
|
|
|
| |
Remove input_device.name and use input_device.device to get the device name.
|
|
|
|
|
|
|
|
| |
If there is a single registered attio callback, any pending ATT requests
will be dropped as soon as it is removed. This commit makes sure that
the request is sent before removing the callback.
Other places using attio callbacks may need fixing as well.
|
|
|
|
|
|
| |
Reject and Not Implemented responses of PASS THROUGH commands shall
contain the data of the previous frame accourding to AVC Panel Subunit
specification page 87.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
For dual mode devices there are several state variables that are
independent for each bearer. This patch splits these states up into two
separate variable groups in btd_device and tracks the values based on
what kind of connection is in question.
The information is also used to select which bearer to use with
Device1.Connect and Device1.Pair. The basic rule is that the bearer
that's not connected/paired is selected, or then the bearer over which
the device was last seen is selected.
|
| |
|
|
|
|
|
| |
Fix device_get_name() to null-terminate the name string it returns.
Modify all callers as needed.
|
|
|
|
| |
For some reason, HealthDevice property table wasn't been registered.
|
|
|
|
|
| |
If the response to ListPlayerAttributes contains invalid attributes they
should not be send in GetCurrentPlayerValue.
|
|
|
|
| |
The command requires one parameter.
|