Files
OpenRGB/Controllers/SteelSeriesController/SteelSeriesApex3Controller.h
Chris 085e1fca41 Initial commit for the Steelseries Apex 3 TKL to resolve #1902
* Combining the Apex3 Full size and TKL controllers
* Cleanup of controllers for readability and optimisation
2022-11-25 23:55:49 +00:00

43 lines
1.8 KiB
C++

/*-------------------------------------------------------------------*\
| SteelSeriesApex3Controller.h |
| |
| Driver for Steelseries Apex3 Controllers |
| This is the base class for the Ten Zone and 8 Zone keyboards |
| |
| Chris M (Dr_No) 23rd Feb 2022 |
\*-------------------------------------------------------------------*/
#include <string>
#include <hidapi/hidapi.h>
#include "RGBController.h"
#include "SteelSeriesGeneric.h"
#pragma once
#define STEELSERIES_APEX3_BRIGHTNESS_MIN 0x00
#define STEELSERIES_APEX3_HID_TIMEOUT 100
class SteelSeriesApex3Controller
{
public:
SteelSeriesApex3Controller(hid_device* dev_handle, const char* path);
virtual ~SteelSeriesApex3Controller();
std::string GetDeviceLocation();
std::string GetSerialString();
steelseries_type GetKeyboardType();
virtual void SetColor(std::vector<RGBColor> colors, uint8_t mode, uint8_t brightness) = 0;
virtual void Save() = 0;
virtual uint8_t GetLedCount() = 0;
virtual uint8_t GetMaxBrightness() = 0;
virtual bool SupportsRainbowWave() = 0;
virtual bool SupportsSave() = 0;
hid_device* dev;
private:
std::string location;
};