Files
OpenRGB/RGBController/RGBController_Virtual.h
2026-05-23 15:17:05 -05:00

63 lines
2.5 KiB
C++

/*---------------------------------------------------------*\
| RGBController_Virtual.h |
| |
| Virtual RGBController that can be filled out by a |
| plugin, including function pointers for implementing |
| functionality plugin-side. |
| |
| Adam Honse (CalcProgrammer1) 18 May 2026 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include "RGBController.h"
class RGBController_Virtual : public RGBController
{
public:
RGBController_Virtual(RGBController_Setup* setup);
~RGBController_Virtual();
void UpdateVirtualController(RGBController_Setup* setup);
void DeviceConfigureZone(int zone_idx);
void DeviceUpdateLEDs();
void DeviceUpdateZoneLEDs(int zone);
void DeviceUpdateSingleLED(int led);
void DeviceUpdateMode();
void DeviceUpdateZoneMode(int zone);
void DeviceSaveMode();
void DeviceUpdateDeviceSpecificConfiguration();
void DeviceUpdateDeviceSpecificZoneConfiguration(int zone);
private:
/*-----------------------------------------------------*\
| Pointer to user object |
\*-----------------------------------------------------*/
void* object_ptr;
/*-----------------------------------------------------*\
| Function pointers |
\*-----------------------------------------------------*/
void (*DeviceConfigureZone_ptr)(void*, int);
void (*DeviceUpdateLEDs_ptr)(void*);
void (*DeviceUpdateZoneLEDs_ptr)(void*, int);
void (*DeviceUpdateSingleLED_ptr)(void*, int);
void (*DeviceUpdateMode_ptr)(void*);
void (*DeviceSaveMode_ptr)(void*);
void (*DeviceUpdateZoneMode_ptr)(void*, int);
void (*DeviceUpdateDeviceSpecificConfiguration_ptr)(void*);
void (*DeviceUpdateDeviceSpecificZoneConfiguration_ptr)(void*, int);
void SetupLEDs();
};