[next] Changes for Plugin API 5, hide hidden controllers, refresh controller list when device updates, integrate with OpenRGB profiles
Initial changes for prototyping Plugin API 5. I updated the device list updating to hide hidden controllers (which, at the moment, means they are hidden by VisualMap because they're part of a VMap virtual controller). I also tried to add a callback to update the device list if the device updates, though it seems this callback fires continuously when the color changes so we probably need to add another callback or make the callback provide a reason argument, we only want to rescan the device list if the hidden status has changed.
Additionally, I'm reworking the profile system so that OpenRGB's profile manager can hold plugin-specific data for each profile. This way the effects plugin can be properly integrated into OpenRGB profiles rather than having to maintain its own profile system. I intend to remove the plugin-specific profile load/save system as part of this change.
For the API 5 changes, see CalcProgrammer1/OpenRGB!2935 (merged)
- Updated to API 5
- Integrated effects into OpenRGB profiles
- Removed plugin's own profile system
- Removed special handling for Lights Off as this is taken care of by the profile updates
- Restructured controller zones handling so that controller zones list is owned by the top level class and locked by a mutex, which protects against crashes when device list is updated
- Converted printfs to use LogManager