CorsairOfficial / cue-sdk

Corsair iCUE SDK
https://corsairofficial.github.io/cue-sdk/
220 stars 24 forks source link

CorsairGetDevices() lacks documentation and provides a useless error. #38

Open jrlanglois opened 1 month ago

jrlanglois commented 1 month ago

This API is particularly confusing, suffice to say. Apparently if you provide a very large number of devices to request, you get a vague error: CE_InvalidArguments.

This is not ideal for a few reasons:

  1. I have no idea if there's an upper limit as there aren't any outlined.
    • A manual test shows the upper boundary to be 64.
  2. There's no API to call to simply give me all of the devices with the given filter.
    • It could simply provide an "out" parameter with the number.
  3. The error doesn't tell me which argument is invalid, nor does it tell me why.

Can you please provide better in-code docs at the very least.

jrlanglois commented 2 weeks ago

FWIW, I found this code at the top of the file:

const unsigned int CORSAIR_DEVICE_COUNT_MAX = 64;     // maximum number of devices to be discovered
const unsigned int CORSAIR_DEVICE_LEDCOUNT_MAX = 512; // maximum number of LEDs controlled by device

It seems reasonable, to me, to add references to them to the related APIs.