supercollider / hidapi

A Simple library for communicating with USB and Bluetooth HID devices on Linux, Mac, and Windows.
http://www.signal11.us/oss/hidapi/
Other
13 stars 14 forks source link

Use upstream hidapi 0.14.0 with hid_get_report_descriptor on all platforms #18

Open JoergAtGithub opened 1 year ago

JoergAtGithub commented 1 year ago

This hidapi version was forked by @tonyrog from a very old version of signal11/hidapi. It adds support for reading and parsing HID Report Descriptors for Linux/BSD (and adds hidapi2osc). Since version 0.14.0 upstream libusb/hidapi has a function hid_get_report_descriptor which returns the HID Report Descriptor on all operating systems including Windows and macOS. This means that you could use the code https://github.com/supercollider/hidapi/blob/7affd87c9c0426deec8a9bc7a33f5aee9eba1047/hidapi_parser/hidapi_parser.c#L1150-L1163 on all operating systems, with upstream libusb/hidapi 0.14.0 https://github.com/libusb/hidapi/releases/tag/hidapi-0.14.0

And you get of cause all the other features, which were added to hidapi since the time of the fork, like support for Feature Reports, HID over Bluetooth LE, I2C and SPI, and a standard CMake build setup.

mcuee commented 1 year ago

@JoergAtGithub

Maybe another way is to port the HID report parser to upstream HIDAPI. It will probably not accepted to the master branch due to license issues (the parser library is licensed under GPL). But maybe it is okay to live as a branch or a seperate repo.

pier3100 commented 6 months ago

Hi guys,

I wanted to use HID on windows 11, but ran into this issue. This issue has long been fixed in HIDAPI, but has not reached Supercollider due to the usage of the older fork. I implemented the mentioned specific fix for myself, but the proper way would be to use hidapi 0.14.0. I'm quite new to supercollider and even more new to application development. But I think this might be a nice first project to contribute. It's mainly testing I guess. @JoergAtGithub, @mcuee, if you are considering working on this, I would be more than happy to help and learn.

mcuee commented 6 months ago

@pier3100

Just wondering why you need to use this fork and not upstream hidapi.

If you really need an HID report parser, you can use other tools or code base.

You can also fork HIDAPI if you really think the report parser is important for your use case.

beatboxchad commented 2 months ago

19 is ready for review. It builds and runs on my Linux machine, and I'm developing against it. Kindly remind me if I've missed something basic.

beatboxchad commented 2 months ago

For example, I didn't update any of the code in hidapi_parser.c to use hid_get_report_descriptor on all platforms. I basically only got it to build.