Add SendPacket function and mode enums to AOC Mousemat controller
This commit is contained in:
parent
b7575bfe0b
commit
ce8c4c9b81
2 changed files with 66 additions and 2 deletions
|
|
@ -51,6 +51,22 @@ void AOCMousematController::SendDirect
|
|||
(
|
||||
RGBColor* color_data
|
||||
)
|
||||
{
|
||||
SendPacket(AOC_MOUSEMAT_MODE_STATIC_SINGLE_COLOR,
|
||||
AOC_MOUSEMAT_BRIGHTNESS_HIGH,
|
||||
AOC_MOUSEMAT_SPEED_MEDIUM,
|
||||
AOC_MOUSEMAT_DIRECTION_CLOCKWISE,
|
||||
color_data);
|
||||
}
|
||||
|
||||
void AOCMousematController::SendPacket
|
||||
(
|
||||
unsigned char mode,
|
||||
unsigned char brightness,
|
||||
unsigned char speed,
|
||||
unsigned char direction,
|
||||
RGBColor* color_data
|
||||
)
|
||||
{
|
||||
unsigned char buf[32];
|
||||
|
||||
|
|
@ -63,9 +79,11 @@ void AOCMousematController::SendDirect
|
|||
| Set up packet |
|
||||
\*-----------------------------------------------------*/
|
||||
buf[0x00] = 0x20;
|
||||
buf[0x01] = 0x03;
|
||||
buf[0x02] = 0x01;
|
||||
buf[0x01] = brightness;
|
||||
buf[0x02] = speed;
|
||||
buf[0x03] = direction;
|
||||
buf[0x04] = 0x01;
|
||||
buf[0x05] = mode;
|
||||
buf[0x09] = 0xFF;
|
||||
buf[0x0C] = 0xFF;
|
||||
buf[0x0D] = 0x3F;
|
||||
|
|
|
|||
|
|
@ -13,6 +13,43 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
/*-----------------------------------------*\
|
||||
| AOC Mousemat Modes |
|
||||
| Note: The 0x80 bit is the random flag |
|
||||
\*-----------------------------------------*/
|
||||
enum
|
||||
{
|
||||
AOC_MOUSEMAT_MODE_STATIC_SINGLE_COLOR = 0x00, /* Static single color mode */
|
||||
AOC_MOUSEMAT_MODE_STATIC_RANDOM = 0x80, /* Static random color mode */
|
||||
AOC_MOUSEMAT_MODE_BREATHING_SINGLE_COLOR = 0x01, /* Breathing single color mode */
|
||||
AOC_MOUSEMAT_MODE_BREATHING_RANDOM = 0x81, /* Breathing random color mode */
|
||||
AOC_MOUSEMAT_MODE_BLINK_SINGLE_COLOR = 0x02, /* Blink single color mode */
|
||||
AOC_MOUSEMAT_MODE_BLINK_RANDOM = 0x82, /* Blink random color mode */
|
||||
AOC_MOUSEMAT_MODE_WAVE_SINGLE_COLOR = 0x03, /* Wave single color mode */
|
||||
AOC_MOUSEMAT_MODE_WAVE_RANDOM = 0x83, /* Wave random color mode */
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
AOC_MOUSEMAT_SPEED_SLOW = 0x01, /* Slowest speed */
|
||||
AOC_MOUSEMAT_SPEED_MEDIUM = 0x02, /* Medium speed */
|
||||
AOC_MOUSEMAT_SPEED_FAST = 0x03, /* Fastest speed */
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
AOC_MOUSEMAT_BRIGHTNESS_OFF = 0x00, /* Lowest brightness (off) */
|
||||
AOC_MOUSEMAT_BRIGHTNESS_LOW = 0x01, /* Low brightness */
|
||||
AOC_MOUSEMAT_BRIGHTNESS_MEDIUM = 0x02, /* Medium brightness */
|
||||
AOC_MOUSEMAT_BRIGHTNESS_HIGH = 0x03, /* Highest brightness */
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
AOC_MOUSEMAT_DIRECTION_CLOCKWISE = 0x00, /* Clockwise direction */
|
||||
AOC_MOUSEMAT_DIRECTION_COUNTERCLOCKWISE = 0x01, /* Counter-clockwise direction */
|
||||
};
|
||||
|
||||
class AOCMousematController
|
||||
{
|
||||
public:
|
||||
|
|
@ -27,6 +64,15 @@ public:
|
|||
RGBColor* color_data
|
||||
);
|
||||
|
||||
void SendPacket
|
||||
(
|
||||
unsigned char mode,
|
||||
unsigned char brightness,
|
||||
unsigned char speed,
|
||||
unsigned char direction,
|
||||
RGBColor* color_data
|
||||
);
|
||||
|
||||
private:
|
||||
hid_device* dev;
|
||||
std::string location;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue