Add controller flag that indicates the controller supports passing arbitrary color data into the device update functions

This commit is contained in:
Adam Honse committed 2026-10-30 11:04:24 -05:00
1 parent 6af53bc913
commit 30a98d9a29
2 files changed
+17 -5

No files matched your search

+15 -5
View File
@@ -2132,12 +2132,18 @@ void RGBController::DeviceCallThreadFunction()
{
if(flags & CONTROLLER_FLAG_RESET_BEFORE_UPDATE)
{
AccessMutex.lock_shared();
CallFlag_UpdateLEDs = false;
DeviceMutex.lock();
DeviceUpdateLEDs(colors);
DeviceMutex.unlock();
}
if(flags & CONTROLLER_FLAG_SUPPORTS_PASSING_COLORS_REFERENCE)
{
AccessMutex.lock_shared();
std::vector<RGBController> update_colors = colors;
AccessMutex.unlock_shared();
DeviceMutex.lock();
DeviceUpdateLEDs(update_colors);
DeviceMutex.unlock();
}
else
{
@@ -2145,9 +2151,13 @@ void RGBController::DeviceCallThreadFunction()
DeviceMutex.lock();
DeviceUpdateLEDs(colors);
DeviceMutex.unlock();
CallFlag_UpdateLEDs = false;
AccessMutex.unlock_shared();
}
if(!(flags & CONTROLLER_FLAG_RESET_BEFORE_UPDATE)))
{
CallFlag_UpdateLEDs = false;
}
}
else
{
+2
View File
@@ -225,6 +225,8 @@ enum
CONTROLLER_FLAG_RESET_BEFORE_UPDATE = (1 << 8), /* Device resets update flag before */
/* calling update function */
CONTROLLER_FLAG_SUPPORTS_PASSING_COLORS_REFERENCE = (1 << 9), /* Device supports passing arbitrary colors data to */
/* DeviceUpdateLEDs() */
CONTROLLER_FLAG_MANUALLY_CONFIGURABLE_NAME = (1 << 16),/* Device name is manually configurable */
CONTROLLER_FLAG_MANUALLY_CONFIGURABLE_DEVICE_SPECIFIC = (1 << 17),/* Device dev-specific cfg manually configurable */