diff --git a/Controllers/AOCMousematController/AOCMousematController.cpp b/Controllers/AOCMousematController/AOCMousematController.cpp index 6bb274f0..df085604 100644 --- a/Controllers/AOCMousematController/AOCMousematController.cpp +++ b/Controllers/AOCMousematController/AOCMousematController.cpp @@ -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; diff --git a/Controllers/AOCMousematController/AOCMousematController.h b/Controllers/AOCMousematController/AOCMousematController.h index 72008c34..7e4ffa0e 100644 --- a/Controllers/AOCMousematController/AOCMousematController.h +++ b/Controllers/AOCMousematController/AOCMousematController.h @@ -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;