Skip to content

Commit b3dfd3b

Browse files
moooorgCalcProgrammer1
authored andcommitted
Move ResourceManagerInterface to its own file. Refactor Plugin interface
1 parent 5e08608 commit b3dfd3b

File tree

6 files changed

+61
-50
lines changed

6 files changed

+61
-50
lines changed

OpenRGB.pro

+1
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ HEADERS +=
179179
PluginManager.h \
180180
ProfileManager.h \
181181
ResourceManager.h \
182+
ResourceManagerInterface.h \
182183
SettingsManager.h \
183184
Detector.h \
184185
DeviceDetector.h \

OpenRGBPluginInterface.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
#include <QtPlugin>
1616
#include <QLabel>
1717
#include <QMenu>
18-
#include "ResourceManager.h"
18+
#include "ResourceManagerInterface.h"
1919

2020
#define OpenRGBPluginInterface_IID "com.OpenRGBPluginInterface"
2121

@@ -77,7 +77,7 @@ class OpenRGBPluginInterface
7777
/*-------------------------------------------------------------------------------------------------*\
7878
| Plugin Functionality |
7979
\*-------------------------------------------------------------------------------------------------*/
80-
virtual void Load(bool dark_theme, ResourceManager* resource_manager_ptr) = 0;
80+
virtual void Load(ResourceManagerInterface* resource_manager_ptr) = 0;
8181
virtual QWidget* GetWidget() = 0;
8282
virtual QMenu* GetTrayMenu() = 0;
8383
virtual void Unload() = 0;

PluginManager.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include "PluginManager.h"
1313
#include "OpenRGBThemeManager.h"
1414
#include "SettingsManager.h"
15+
#include "ResourceManager.h"
1516

1617
#ifdef _WIN32
1718
#include <Windows.h>
@@ -423,8 +424,6 @@ void PluginManager::LoadPlugin(OpenRGBPluginEntry* plugin_entry)
423424

424425
QObject* instance = plugin_entry->loader->instance();
425426

426-
bool dark_theme = OpenRGBThemeManager::IsDarkTheme();
427-
428427
if(instance)
429428
{
430429
OpenRGBPluginInterface* plugin = qobject_cast<OpenRGBPluginInterface*>(instance);
@@ -435,7 +434,7 @@ void PluginManager::LoadPlugin(OpenRGBPluginEntry* plugin_entry)
435434
{
436435
plugin_entry->plugin = plugin;
437436

438-
plugin->Load(dark_theme, ResourceManager::get());
437+
plugin->Load(ResourceManager::get());
439438

440439
/*-------------------------------------------------*\
441440
| Call the Add Plugin callback |

ResourceManager.h

+1-45
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include "SPDWrapper.h"
2323
#include "hidapi_wrapper.h"
2424
#include "i2c_smbus.h"
25+
#include "ResourceManagerInterface.h"
2526
#include "filesystem.h"
2627
#include "json.hpp"
2728

@@ -94,12 +95,6 @@ typedef struct
9495
uint8_t dimm_type;
9596
} I2CDIMMDeviceDetectorBlock;
9697

97-
typedef void (*DeviceListChangeCallback)(void *);
98-
typedef void (*DetectionProgressCallback)(void *);
99-
typedef void (*DetectionStartCallback)(void *);
100-
typedef void (*DetectionEndCallback)(void *);
101-
typedef void (*I2CBusListChangeCallback)(void *);
102-
10398
/*-------------------------------------------------------------------------*\
10499
| Define a macro for QT lupdate to parse |
105100
\*-------------------------------------------------------------------------*/
@@ -110,45 +105,6 @@ extern const char* I2C_ERR_LINUX;
110105
extern const char* UDEV_MISSING;
111106
extern const char* UDEV_MULTI;
112107

113-
class ResourceManagerInterface
114-
{
115-
public:
116-
virtual std::vector<i2c_smbus_interface*> & GetI2CBusses() = 0;
117-
118-
virtual void RegisterRGBController(RGBController *rgb_controller) = 0;
119-
virtual void UnregisterRGBController(RGBController *rgb_controller) = 0;
120-
121-
virtual void RegisterDeviceListChangeCallback(DeviceListChangeCallback new_callback, void * new_callback_arg) = 0;
122-
virtual void RegisterDetectionProgressCallback(DetectionProgressCallback new_callback, void * new_callback_arg) = 0;
123-
virtual void RegisterDetectionStartCallback(DetectionStartCallback new_callback, void * new_callback_arg) = 0;
124-
virtual void RegisterDetectionEndCallback(DetectionEndCallback new_callback, void * new_callback_arg) = 0;
125-
virtual void RegisterI2CBusListChangeCallback(I2CBusListChangeCallback new_callback, void * new_callback_arg) = 0;
126-
127-
virtual void UnregisterDeviceListChangeCallback(DeviceListChangeCallback callback, void * callback_arg) = 0;
128-
virtual void UnregisterDetectionProgressCallback(DetectionProgressCallback callback, void *callback_arg) = 0;
129-
virtual void UnregisterDetectionStartCallback(DetectionStartCallback callback, void *callback_arg) = 0;
130-
virtual void UnregisterDetectionEndCallback(DetectionEndCallback callback, void *callback_arg) = 0;
131-
virtual void UnregisterI2CBusListChangeCallback(I2CBusListChangeCallback callback, void * callback_arg) = 0;
132-
133-
virtual std::vector<RGBController*> & GetRGBControllers() = 0;
134-
135-
virtual unsigned int GetDetectionPercent() = 0;
136-
137-
virtual filesystem::path GetConfigurationDirectory() = 0;
138-
139-
virtual std::vector<NetworkClient*>& GetClients() = 0;
140-
virtual NetworkServer* GetServer() = 0;
141-
142-
virtual ProfileManager* GetProfileManager() = 0;
143-
virtual SettingsManager* GetSettingsManager() = 0;
144-
145-
virtual void UpdateDeviceList() = 0;
146-
virtual void WaitForDeviceDetection() = 0;
147-
148-
protected:
149-
virtual ~ResourceManagerInterface() {};
150-
};
151-
152108
class ResourceManager: public ResourceManagerInterface
153109
{
154110
public:

ResourceManagerInterface.h

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#pragma once
2+
3+
#include <vector>
4+
#include "RGBController.h"
5+
#include "i2c_smbus.h"
6+
#include "filesystem.h"
7+
#include "NetworkClient.h"
8+
#include "NetworkServer.h"
9+
#include "SettingsManager.h"
10+
11+
typedef void (*DeviceListChangeCallback)(void *);
12+
typedef void (*DetectionProgressCallback)(void *);
13+
typedef void (*DetectionStartCallback)(void *);
14+
typedef void (*DetectionEndCallback)(void *);
15+
typedef void (*I2CBusListChangeCallback)(void *);
16+
17+
class ResourceManagerInterface
18+
{
19+
public:
20+
virtual std::vector<i2c_smbus_interface*> & GetI2CBusses() = 0;
21+
22+
virtual void RegisterRGBController(RGBController *rgb_controller) = 0;
23+
virtual void UnregisterRGBController(RGBController *rgb_controller) = 0;
24+
25+
virtual void RegisterDeviceListChangeCallback(DeviceListChangeCallback new_callback, void * new_callback_arg) = 0;
26+
virtual void RegisterDetectionProgressCallback(DetectionProgressCallback new_callback, void * new_callback_arg) = 0;
27+
virtual void RegisterDetectionStartCallback(DetectionStartCallback new_callback, void * new_callback_arg) = 0;
28+
virtual void RegisterDetectionEndCallback(DetectionEndCallback new_callback, void * new_callback_arg) = 0;
29+
virtual void RegisterI2CBusListChangeCallback(I2CBusListChangeCallback new_callback, void * new_callback_arg) = 0;
30+
31+
virtual void UnregisterDeviceListChangeCallback(DeviceListChangeCallback callback, void * callback_arg) = 0;
32+
virtual void UnregisterDetectionProgressCallback(DetectionProgressCallback callback, void *callback_arg) = 0;
33+
virtual void UnregisterDetectionStartCallback(DetectionStartCallback callback, void *callback_arg) = 0;
34+
virtual void UnregisterDetectionEndCallback(DetectionEndCallback callback, void *callback_arg) = 0;
35+
virtual void UnregisterI2CBusListChangeCallback(I2CBusListChangeCallback callback, void * callback_arg) = 0;
36+
37+
virtual std::vector<RGBController*> & GetRGBControllers() = 0;
38+
39+
virtual unsigned int GetDetectionPercent() = 0;
40+
41+
virtual filesystem::path GetConfigurationDirectory() = 0;
42+
43+
virtual std::vector<NetworkClient*>& GetClients() = 0;
44+
virtual NetworkServer* GetServer() = 0;
45+
46+
virtual ProfileManager* GetProfileManager() = 0;
47+
virtual SettingsManager* GetSettingsManager() = 0;
48+
49+
virtual void UpdateDeviceList() = 0;
50+
virtual void WaitForDeviceDetection() = 0;
51+
52+
protected:
53+
virtual ~ResourceManagerInterface() {};
54+
};

qt/OpenRGBPluginsPage/OpenRGBPluginsPage.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include "SettingsManager.h"
1717
#include "OpenRGBPluginsPage.h"
1818
#include "ui_OpenRGBPluginsPage.h"
19+
#include "ResourceManager.h"
1920

2021
void EnableClickCallbackFunction(void* this_ptr, void* entry_ptr)
2122
{

0 commit comments

Comments
 (0)