mirror of
https://github.com/CalcProgrammer1/OpenRGB.git
synced 2026-04-04 22:24:12 -04:00
Make device list change warning callback
This will be helpful for keeping plugins from crashing Commit amended to change callback function name for consistency by Adam Honse <calcprogrammer1@gmail.com>
This commit is contained in:
@@ -172,6 +172,12 @@ void ResourceManager::RegisterDeviceListChangeCallback(DeviceListChangeCallback
|
||||
DeviceListChangeCallbackArgs.push_back(new_callback_arg);
|
||||
}
|
||||
|
||||
void ResourceManager::RegisterDeviceListWarningCallback(DeviceListWarningCallback new_callback, void *new_callback_arg)
|
||||
{
|
||||
DeviceListWarningCallbacks.push_back(new_callback);
|
||||
DeviceListWarningCallbackArgs.push_back(new_callback_arg);
|
||||
}
|
||||
|
||||
void ResourceManager::RegisterI2CBusListChangeCallback(I2CBusListChangeCallback new_callback, void * new_callback_arg)
|
||||
{
|
||||
I2CBusListChangeCallbacks.push_back(new_callback);
|
||||
@@ -188,6 +194,11 @@ void ResourceManager::DeviceListChanged()
|
||||
{
|
||||
DeviceListChangeMutex.lock();
|
||||
|
||||
for(unsigned int callback_idx = 0; callback_idx < (int)DeviceListWarningCallbacks.size(); callback_idx++)
|
||||
{
|
||||
DeviceListWarningCallbacks[callback_idx](DeviceListWarningCallbackArgs[callback_idx]);
|
||||
}
|
||||
|
||||
/*-------------------------------------------------*\
|
||||
| Insert hardware controllers into controller list |
|
||||
\*-------------------------------------------------*/
|
||||
|
||||
@@ -47,6 +47,7 @@ typedef struct
|
||||
} HIDDeviceDetectorBlock;
|
||||
|
||||
typedef void (*DeviceListChangeCallback)(void *);
|
||||
typedef void (*DeviceListWarningCallback)(void *);
|
||||
typedef void (*DetectionProgressCallback)(void *);
|
||||
typedef void (*I2CBusListChangeCallback)(void *);
|
||||
|
||||
@@ -59,6 +60,7 @@ public:
|
||||
virtual void UnregisterRGBController(RGBController *rgb_controller) = 0;
|
||||
|
||||
virtual void RegisterDeviceListChangeCallback(DeviceListChangeCallback new_callback, void * new_callback_arg) = 0;
|
||||
virtual void RegisterDeviceListWarningCallback(DeviceListWarningCallback new_callback, void * new_callback_arg) = 0;
|
||||
virtual void RegisterDetectionProgressCallback(DetectionProgressCallback new_callback, void * new_callback_arg) = 0;
|
||||
virtual void RegisterI2CBusListChangeCallback(I2CBusListChangeCallback new_callback, void * new_callback_arg) = 0;
|
||||
|
||||
@@ -109,6 +111,7 @@ public:
|
||||
int usage = HID_USAGE_ANY);
|
||||
|
||||
void RegisterDeviceListChangeCallback(DeviceListChangeCallback new_callback, void * new_callback_arg);
|
||||
void RegisterDeviceListWarningCallback(DeviceListWarningCallback new_callback, void * new_callback_arg);
|
||||
void RegisterDetectionProgressCallback(DetectionProgressCallback new_callback, void * new_callback_arg);
|
||||
void RegisterI2CBusListChangeCallback(I2CBusListChangeCallback new_callback, void * new_callback_arg);
|
||||
|
||||
@@ -207,12 +210,15 @@ private:
|
||||
const char* detection_string;
|
||||
|
||||
/*-------------------------------------------------------------------------------------*\
|
||||
| Device List Changed Callback |
|
||||
| Device List Changed and Warning Callbacks |
|
||||
\*-------------------------------------------------------------------------------------*/
|
||||
std::mutex DeviceListChangeMutex;
|
||||
std::vector<DeviceListChangeCallback> DeviceListChangeCallbacks;
|
||||
std::vector<void *> DeviceListChangeCallbackArgs;
|
||||
|
||||
std::vector<DeviceListWarningCallback> DeviceListWarningCallbacks;
|
||||
std::vector<void *> DeviceListWarningCallbackArgs;
|
||||
|
||||
/*-------------------------------------------------------------------------------------*\
|
||||
| Detection Progress Callback |
|
||||
\*-------------------------------------------------------------------------------------*/
|
||||
|
||||
Reference in New Issue
Block a user