Files
OpenRGB/Controllers/HyperXMouseController/HyperXPulsefireDartController/HyperXPulsefireDartController.h

65 lines
2.2 KiB
C++

/*---------------------------------------------------------*\
| HyperXPulsefireDartController.h |
| |
| Driver for HyperX Pulsefire Dart |
| |
| Santeri Pikarinen (santeri3700) 26 Dec 2020 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#pragma once
#include <string>
#include <hidapi/hidapi.h>
#include "RGBController.h"
enum
{
HYPERX_PULSEFIRE_DART_PACKET_ID_DIRECT = 0xd2, /* Direct control packet */
HYPERX_PULSEFIRE_DART_PACKET_SIZE = 65, /* Report ID padding + 64 byte payload */
HYPERX_PULSEFIRE_DART_MODE_STATIC = 0x00, /* Static color mode */
HYPERX_PULSEFIRE_DART_MODE_CYCLE = 0x12, /* Spectrum cycle mode */
HYPERX_PULSEFIRE_DART_MODE_BREATHING = 0x20, /* Single color breathing mode */
HYPERX_PULSEFIRE_DART_MODE_REACTIVE = 0x30, /* Reactive/Trigger fade mode */
HYPERX_PULSEFIRE_DART_SPEED_MIN = 0x64,
HYPERX_PULSEFIRE_DART_SPEED_MAX = 0x00,
HYPERX_PULSEFIRE_DART_SPEED_MED = 0x32,
HYPERX_PULSEFIRE_DART_SPEED_NONE = 0x00, /* For static color mode */
HYPERX_PULSEFIRE_DART_BRIGHTNESS_MIN = 0x00,
HYPERX_PULSEFIRE_DART_BRIGHTNESS_MAX = 0x64,
HYPERX_PULSEFIRE_DART_LED_LOGO = 0x00,
HYPERX_PULSEFIRE_DART_LED_SCROLL = 0x10,
HYPERX_PULSEFIRE_DART_LED_ALL = 0x20
};
class HyperXPulsefireDartController
{
public:
HyperXPulsefireDartController(hid_device* dev_handle, const char* path);
~HyperXPulsefireDartController();
std::string GetDeviceLocation();
std::string GetSerialString();
void SendDirect
(
RGBColor color_data,
int led,
int mode,
int brightness,
int speed
);
void Save();
private:
hid_device* dev;
std::string location;
};