Add ASUS ROG PG32UQ Monitor Support
This commit is contained in:
parent
89cc3f4961
commit
bcc89af4e9
4 changed files with 44 additions and 6 deletions
|
|
@ -12,10 +12,11 @@
|
|||
#include <cstring>
|
||||
#include "LogManager.h"
|
||||
|
||||
AuraMonitorController::AuraMonitorController(hid_device* dev_handle, const char* path)
|
||||
AuraMonitorController::AuraMonitorController(hid_device* dev_handle, const char* path, uint16_t pid)
|
||||
{
|
||||
dev = dev_handle;
|
||||
location = path;
|
||||
device_pid = pid;
|
||||
}
|
||||
|
||||
AuraMonitorController::~AuraMonitorController()
|
||||
|
|
@ -44,6 +45,27 @@ std::string AuraMonitorController::GetSerialString()
|
|||
return(return_string);
|
||||
}
|
||||
|
||||
void AuraMonitorController::BeginUpdate()
|
||||
{
|
||||
unsigned char usb_buf[8];
|
||||
|
||||
if (device_pid == AURA_ROG_PG32UQ_PID)
|
||||
{
|
||||
memset(usb_buf, 0x00, sizeof(usb_buf));
|
||||
|
||||
usb_buf[0x00] = 0x03;
|
||||
usb_buf[0x01] = 0x02;
|
||||
usb_buf[0x02] = 0xA1;
|
||||
usb_buf[0x03] = 0x80;
|
||||
|
||||
usb_buf[0x04] = 0x20;
|
||||
hid_send_feature_report(dev, usb_buf, 8);
|
||||
|
||||
usb_buf[0x04] = 0x30;
|
||||
hid_send_feature_report(dev, usb_buf, 8);
|
||||
}
|
||||
}
|
||||
|
||||
void AuraMonitorController::UpdateLed
|
||||
(
|
||||
int led,
|
||||
|
|
@ -58,7 +80,7 @@ void AuraMonitorController::UpdateLed
|
|||
|
||||
usb_buf[0x00] = 0x03;
|
||||
usb_buf[0x01] = 0x02;
|
||||
usb_buf[0x02] = 0xa1;
|
||||
usb_buf[0x02] = 0xA1;
|
||||
usb_buf[0x03] = 0x80;
|
||||
|
||||
usb_buf[0x04] = 16 + led * 3;
|
||||
|
|
@ -85,9 +107,9 @@ void AuraMonitorController::ApplyChanges()
|
|||
|
||||
usb_buf[0x00] = 0x03;
|
||||
usb_buf[0x01] = 0x02;
|
||||
usb_buf[0x02] = 0xa1;
|
||||
usb_buf[0x02] = 0xA1;
|
||||
usb_buf[0x03] = 0x80;
|
||||
usb_buf[0x04] = 0xa0;
|
||||
usb_buf[0x04] = 0xA0;
|
||||
usb_buf[0x05] = 0x01;
|
||||
|
||||
hid_send_feature_report(dev, usb_buf, 8);
|
||||
|
|
|
|||
|
|
@ -13,18 +13,28 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
enum
|
||||
{
|
||||
AURA_ROG_STRIX_XG27AQ_PID = 0x198C,
|
||||
AURA_ROG_PG32UQ_PID = 0x19B9,
|
||||
};
|
||||
|
||||
|
||||
class AuraMonitorController
|
||||
{
|
||||
public:
|
||||
AuraMonitorController(hid_device* dev_handle, const char* path);
|
||||
AuraMonitorController(hid_device* dev_handle, const char* path, uint16_t pid);
|
||||
virtual ~AuraMonitorController();
|
||||
|
||||
std::string GetDeviceLocation();
|
||||
std::string GetSerialString();
|
||||
|
||||
void BeginUpdate();
|
||||
void UpdateLed(int led, unsigned char red, unsigned char green, unsigned char blue);
|
||||
void ApplyChanges();
|
||||
|
||||
uint16_t device_pid;
|
||||
|
||||
private:
|
||||
hid_device* dev;
|
||||
std::string location;
|
||||
|
|
|
|||
|
|
@ -65,6 +65,7 @@
|
|||
\*-----------------------------------------------------------------*/
|
||||
|
||||
#define AURA_ROG_STRIX_XG27AQ_PID 0x198C
|
||||
#define AURA_ROG_PG32UQ_PID 0x19B9
|
||||
|
||||
/*-----------------------------------------------------------------*\
|
||||
| HEADSETSTANDS |
|
||||
|
|
@ -253,7 +254,7 @@ void DetectAsusAuraUSBMonitor(hid_device_info* info, const std::string& name)
|
|||
|
||||
if(dev)
|
||||
{
|
||||
AuraMonitorController* controller = new AuraMonitorController(dev, info->path);
|
||||
AuraMonitorController* controller = new AuraMonitorController(dev, info->path, info->product_id);
|
||||
RGBController_AuraMonitor* rgb_controller = new RGBController_AuraMonitor(controller);
|
||||
rgb_controller->name = name;
|
||||
ResourceManager::get()->RegisterRGBController(rgb_controller);
|
||||
|
|
@ -326,6 +327,7 @@ REGISTER_HID_DETECTOR_PU("ASUS ROG Balteus Qi", DetectAs
|
|||
| MONITORS |
|
||||
\*-----------------------------------------------------------------*/
|
||||
REGISTER_HID_DETECTOR_PU("ASUS ROG Strix XG27AQ", DetectAsusAuraUSBMonitor, AURA_USB_VID, AURA_ROG_STRIX_XG27AQ_PID, 0xFFA0, 1);
|
||||
REGISTER_HID_DETECTOR_PU("ASUS ROG PG32UQ", DetectAsusAuraUSBMonitor, AURA_USB_VID, AURA_ROG_PG32UQ_PID, 0xFFA0, 1);
|
||||
|
||||
/*-----------------------------------------------------------------*\
|
||||
| OTHER |
|
||||
|
|
|
|||
|
|
@ -79,6 +79,8 @@ void RGBController_AuraMonitor::ResizeZone(int /*zone*/, int /*new_size*/)
|
|||
|
||||
void RGBController_AuraMonitor::DeviceUpdateLEDs()
|
||||
{
|
||||
controller->BeginUpdate();
|
||||
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
unsigned char red = RGBGetRValue(colors[i]);
|
||||
|
|
@ -98,6 +100,8 @@ void RGBController_AuraMonitor::UpdateZoneLEDs(int /*zone*/)
|
|||
|
||||
void RGBController_AuraMonitor::UpdateSingleLED(int led)
|
||||
{
|
||||
controller->BeginUpdate();
|
||||
|
||||
unsigned char red = RGBGetRValue(colors[led]);
|
||||
unsigned char green = RGBGetGValue(colors[led]);
|
||||
unsigned char blue = RGBGetBValue(colors[led]);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue