* Setting object name allows SIGNAL / SLOT connection for plugins
Amended action name to PascalCase (ActionLightsOff) for plugin API consistency. Commit amended by Adam Honse <calcprogrammer1@gmail.com>
* Rework Plugin Manager so that plugins can be loaded after initialization
* Use a callback function to add plugin tabs to the dialog
* Install button lets you choose plugin file, copies it to plugins directory, and immediately loads it
* Remove button deletes selected plugin file from plugins directory - need to add a means to unload it first
* Added DeviceHasBrightness() = false; to RGBController as overridable
* Added Brightness to Mode struct
* Added BrightnessSlider to the OpenRGBDevicePage ui and the supporting
code to pass to the RGBController
Commit amended for code style and to split API changes and controller changes out by Adam Honse
<calcprogrammer1@gmail.com>
+ Code to initialise config values.
+ Added "load_geometry" variable so that you can load set values but not have to "save_on_exit"
Commit amended for code style by Adam Honse <calcprogrammer1@gmail.com>
+ Load window geometry from config added to constructor
+ Save window geometry to config added to destructor
+ Added an opt out boolean to allow for saving / not saving geometry
+ Consolidated the Minimize settings into the "UI_Settings" in config
+ Code to initialise config values.
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>