mirror of
https://github.com/CalcProgrammer1/OpenRGB.git
synced 2026-01-02 04:07:48 -05:00
Commits squashed and amended for code style/brightness control by Adam Honse <calcprogrammer1@gmail.com>
75 lines
2.0 KiB
C++
75 lines
2.0 KiB
C++
/*-----------------------------------------*\
|
|
| HPOmen30LController.h |
|
|
| |
|
|
| Driver for HP Omen 30L RGB lighting |
|
|
| controller |
|
|
\*-----------------------------------------*/
|
|
|
|
#include "RGBController.h"
|
|
#include <string>
|
|
#include <hidapi/hidapi.h>
|
|
#include <vector>
|
|
|
|
#pragma once
|
|
|
|
typedef struct
|
|
{
|
|
unsigned char value;
|
|
unsigned char mode;
|
|
unsigned char speed;
|
|
unsigned char brightness;
|
|
} hp_zone;
|
|
|
|
enum
|
|
{
|
|
HP_OMEN_30L_STATIC = 0x01, /* Static effect channel */
|
|
HP_OMEN_30L_DIRECT = 0x04, /* Direct for effects plugin */
|
|
HP_OMEN_30L_BREATHING = 0x06, /* Breathing effect channel */
|
|
HP_OMEN_30L_COLOR_CYCLE = 0x07, /* Color cycle effect channel */
|
|
HP_OMEN_30L_BLINKING = 0x08, /* Led blink */
|
|
|
|
};
|
|
|
|
enum
|
|
{
|
|
HP_OMEN_30L_SPEED_SLOW = 0x01, /* Slow speed */
|
|
HP_OMEN_30L_SPEED_MED = 0x02, /* Normal speed */
|
|
HP_OMEN_30L_SPEED_FAST = 0x03, /* Fast speed */
|
|
};
|
|
|
|
enum
|
|
{
|
|
HP_OMEN_30L_LOGO_ZONE = 0x01,
|
|
HP_OMEN_30L_BAR_ZONE = 0x02,
|
|
HP_OMEN_30L_FAN_ZONE = 0x03,
|
|
HP_OMEN_30L_CPU_ZONE = 0x04,
|
|
};
|
|
|
|
class HPOmen30LController
|
|
{
|
|
public:
|
|
HPOmen30LController(hid_device* dev_handle, const char* path);
|
|
~HPOmen30LController();
|
|
|
|
char* GetDeviceName();
|
|
|
|
std::string GetEffectChannelString(unsigned char channel);
|
|
std::string GetFirmwareVersionString();
|
|
std::string GetLocationString();
|
|
std::string GetSerialString();
|
|
|
|
void SetRingEffectChannel(unsigned char channel);
|
|
void SetZoneMode(int zone,unsigned char mode, unsigned char speed, unsigned char brightness);
|
|
void SetZoneColor(int zone, std::vector<RGBColor> colors);
|
|
|
|
private:
|
|
char device_name[32];
|
|
hid_device* dev;
|
|
std::string location;
|
|
|
|
std::vector<hp_zone> hp_zones;
|
|
|
|
void SendZoneUpdate(int zone, std::vector<RGBColor> colors);
|
|
|
|
};
|