OpenRGB/Controllers/SinowealthController/RGBController_GenesisXenon200.h
2023-08-29 00:54:56 +00:00

45 lines
1.5 KiB
C++

/*-------------------------------------------*\
| RGBController_GenesisXenon200.h |
| |
| Definitions and types for Genesis Xenon |
| 200 Mouse |
| |
| chrabonszcz 07/2023 |
\*-------------------------------------------*/
#pragma once
#include "GenesisXenon200Controller.h"
#include "RGBController.h"
#define GENESIS_XENON_200_MODE_STATIC 0x18
#define GENESIS_XENON_200_MODE_BREATHING 0x12
#define GENESIS_XENON_200_MODE_SPECTRUM_CYCLE 0x14
#define GENESIS_XENON_200_MODE_OFF 0x11
const unsigned char GENESIS_XENON_200_STATIC_BRIGHTESS_VALUES[] {0x11, 0x51, 0xA1};
const unsigned char GENESIS_XENON_200_BREATHING_SPEED_VALUES[] {0x51, 0x31, 0x11};
const unsigned char GENESIS_XENON_200_SPECTRUM_CYCLE_SPEED_VALUES[] {0xC1, 0x81, 0x41};
class RGBController_GenesisXenon200 : public RGBController
{
public:
RGBController_GenesisXenon200(GenesisXenon200Controller* controller_ptr);
~RGBController_GenesisXenon200();
void SetupZones();
void ResizeZone(int zone, int new_size);
void DeviceUpdateLEDs();
void UpdateZoneLEDs(int zone);
void UpdateSingleLED(int led);
void DeviceUpdateMode();
void DeviceSaveMode();
void SetCustomMode();
private:
GenesisXenon200Controller* controller;
};