Alternate LED names allow an LED to have a secondary "alternate" name. The led_alt_names vector should either be empty if alternate names are not used or be equal in size to the leds vector. Empty strings in the led_alt_names vector indicate that a particular LED does not have an alternate name.
* Bumped profile version to 3
* Loading a v1/v2 profile onto a device with brightness will work
* Loading a v3 profile onto a device without brightness also works
* Add profile version parameter to Get/SetModeDescription
Commit amended for code style and to update versioning by Adam Honse <calcprogrammer1@gmail.com>
* To avoid filtering in the profile manager and to ensure that color_mode is set to MODE_COLORS_RANDOM correctly
for HW that has the mode flags
MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_PER_LED_COLOR
The values for speed_min, speed_max, colors_min and colors_max NEED to be initialised to allow for a saved
profile to load correctly in `ProfileManager::LoadDeviceFromListWithOptions`
Commit amended for code style by Adam Honse <calcprogrammer1@gmail.com>
Logitech G560 Speaker working with Direct Mode using same bits as the Logitech Ambilight and Audioviz. Other modes are not working (get) as expected.
Note: G560 Direct mode is slow because Logitech hardware implementation but it is working.
Changing volume at the same time colors are changing can reduce FPS because G560 uses the same channel for led and audio modes commands.
Commits squashed and amended for code style by Adam Honse <calcprogrammer1@gmail.com>
When using the SDK Server, it was possible to provide indexes that would
later be used inside the various SetXDescription functions in
RGBController. This would result in possible out of bounds reads /
writes.
This is patched by checking the various indexes remain in bounds.