Skip to content

Commit

Permalink
implement hid_get_input_report for Linux hidraw backend
Browse files Browse the repository at this point in the history
Fixes #259
  • Loading branch information
Be-ing committed Nov 14, 2021
1 parent b66d7c2 commit 6bd5157
Showing 1 changed file with 13 additions and 5 deletions.
18 changes: 13 additions & 5 deletions linux/hid.c
Original file line number Diff line number Diff line change
Expand Up @@ -1065,13 +1065,21 @@ int HID_API_EXPORT hid_get_feature_report(hid_device *dev, unsigned char *data,
return res;
}

// Not supported by Linux HidRaw yet
// HIDIOCGINPUT is not defined in Linux kernel headers < 5.11
// This definition is from hidraw.h in Linux > 5.11.
// https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f43d3870cafa2a0f3854c1819c8385733db8f9ae
#ifndef HIDIOCGINPUT
#define HIDIOCGINPUT(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x0A, len)
#endif
int HID_API_EXPORT HID_API_CALL hid_get_input_report(hid_device *dev, unsigned char *data, size_t length)
{
(void)dev;
(void)data;
(void)length;
return -1;
int res;

res = ioctl(dev->device_handle, HIDIOCGINPUT(length), data);
if (res < 0)
register_device_error_format(dev, "ioctl (GINPUT): %s", strerror(errno));

return res;
}

void HID_API_EXPORT hid_close(hid_device *dev)
Expand Down

0 comments on commit 6bd5157

Please sign in to comment.