mirror of
https://github.com/CalcProgrammer1/OpenRGB.git
synced 2026-01-02 04:07:48 -05:00
90 lines
3.1 KiB
C++
90 lines
3.1 KiB
C++
/*---------------------------------------------------------*\
|
|
| Definitions for NZXT Kraken |
|
|
| |
|
|
| Martin Hartl (inlart), 04/04/2020 |
|
|
\*---------------------------------------------------------*/
|
|
|
|
#pragma once
|
|
|
|
#include "RGBController.h"
|
|
#include <vector>
|
|
#include <string>
|
|
#include <hidapi/hidapi.h>
|
|
|
|
enum NZXTKrakenChannel_t
|
|
{
|
|
NZXT_KRAKEN_CHANNEL_SYNC = 0x00, /* Sync Channel */
|
|
NZXT_KRAKEN_CHANNEL_LOGO = 0x01, /* Logo Channel */
|
|
NZXT_KRAKEN_CHANNEL_RING = 0x02, /* Ring Channel */
|
|
};
|
|
|
|
enum
|
|
{
|
|
NZXT_KRAKEN_MODE_FIXED = 0x00, /* Fixed colors mode */
|
|
NZXT_KRAKEN_MODE_FADING = 0x01, /* Fading mode */
|
|
NZXT_KRAKEN_MODE_SPECTRUM = 0x02, /* Spectrum cycle mode */
|
|
NZXT_KRAKEN_MODE_MARQUEE = 0x03, /* Marquee mode */
|
|
NZXT_KRAKEN_MODE_COVER_MARQUEE = 0x04, /* Cover marquee mode */
|
|
NZXT_KRAKEN_MODE_ALTERNATING = 0x05, /* Alternating mode */
|
|
NZXT_KRAKEN_MODE_BREATHING = 0x06, /* Breathing mode */
|
|
NZXT_KRAKEN_MODE_PULSE = 0x07, /* Pulse mode */
|
|
NZXT_KRAKEN_MODE_TAI_CHI = 0x08, /* Tai Chi mode */
|
|
NZXT_KRAKEN_MODE_WATER_COOLER = 0x09, /* Water color mode */
|
|
NZXT_KRAKEN_MODE_LOADING = 0x0a, /* Loading mode */
|
|
NZXT_KRAKEN_MODE_WINGS = 0x0c, /* Wings mode */
|
|
};
|
|
|
|
enum
|
|
{
|
|
NZXT_KRAKEN_SPEED_SLOWEST = 0x00, /* Slowest speed */
|
|
NZXT_KRAKEN_SPEED_SLOW = 0x01, /* Slow speed */
|
|
NZXT_KRAKEN_SPEED_NORMAL = 0x02, /* Normal speed */
|
|
NZXT_KRAKEN_SPEED_FAST = 0x03, /* Fast speed */
|
|
NZXT_KRAKEN_SPEED_FASTEST = 0x04, /* Fastest speed */
|
|
};
|
|
|
|
class NZXTKrakenController
|
|
{
|
|
public:
|
|
NZXTKrakenController(hid_device* dev_handle, const char* path);
|
|
~NZXTKrakenController();
|
|
|
|
std::string GetFirmwareVersion();
|
|
std::string GetLocation();
|
|
std::string GetSerialString();
|
|
|
|
void UpdateEffect
|
|
(
|
|
NZXTKrakenChannel_t channel,
|
|
unsigned char mode,
|
|
bool direction,
|
|
unsigned char speed,
|
|
int seq,
|
|
std::vector<RGBColor> colors
|
|
);
|
|
|
|
private:
|
|
void UpdateStatus();
|
|
|
|
void SendEffect
|
|
(
|
|
unsigned char channel,
|
|
unsigned char mode,
|
|
bool direction,
|
|
unsigned char* color_data,
|
|
unsigned char speed = 0x02,
|
|
bool movement = false,
|
|
int cis = 0 ,
|
|
int size = 0
|
|
);
|
|
|
|
hid_device* dev;
|
|
|
|
// -- status
|
|
std::string firmware_version;
|
|
double liquid_temperature;
|
|
std::string location;
|
|
unsigned int fan_speed;
|
|
unsigned int pump_speed;
|
|
};
|