diff --git a/Controllers/AsusAuraUSBController/AsusAuraMouseDevices.h b/Controllers/AsusAuraUSBController/AsusAuraMouseDevices.h index fd57878a..b11b75f2 100644 --- a/Controllers/AsusAuraUSBController/AsusAuraMouseDevices.h +++ b/Controllers/AsusAuraUSBController/AsusAuraMouseDevices.h @@ -46,12 +46,15 @@ #define AURA_TUF_M3_PID 0x1910 #define AURA_TUF_M5_PID 0x1898 +#define AURA_ROG_SPATHA_X_DOCK_FAKE_PID 0xFFFF + enum { AURA_MOUSE_ZONE_LOGO = 0, AURA_MOUSE_ZONE_SCROLL = 1, AURA_MOUSE_ZONE_UNDERGLOW = 2, AURA_MOUSE_ZONE_ALL = 3, + AURA_MOUSE_ZONE_DOCK = 4, }; enum @@ -530,4 +533,17 @@ static std::map aura_mouse_devices = { AURA_MOUSE_MODE_STATIC, AURA_MOUSE_MODE_BREATHING, AURA_MOUSE_MODE_SPECTRUM, AURA_MOUSE_MODE_REACTIVE } } }, + { + AURA_ROG_SPATHA_X_DOCK_FAKE_PID, // Asus ROG Spatha X Dock (only in wireless mode) + { + 0, + 0, + 0, + 100, + false, + 1, + { AURA_MOUSE_ZONE_DOCK }, + { AURA_MOUSE_MODE_STATIC, AURA_MOUSE_MODE_BREATHING, AURA_MOUSE_MODE_SPECTRUM, AURA_MOUSE_MODE_NONE, AURA_MOUSE_MODE_REACTIVE, AURA_MOUSE_MODE_NONE, AURA_MOUSE_MODE_BATTERY } + } + }, }; diff --git a/Controllers/AsusAuraUSBController/AsusAuraUSBControllerDetect.cpp b/Controllers/AsusAuraUSBController/AsusAuraUSBControllerDetect.cpp index f43454e6..e7d952ff 100644 --- a/Controllers/AsusAuraUSBController/AsusAuraUSBControllerDetect.cpp +++ b/Controllers/AsusAuraUSBController/AsusAuraUSBControllerDetect.cpp @@ -187,6 +187,15 @@ void DetectAsusAuraUSBMice(hid_device_info* info, const std::string& name) RGBController_AuraMouse* rgb_controller = new RGBController_AuraMouse(controller); rgb_controller->name = name; ResourceManager::get()->RegisterRGBController(rgb_controller); + + // adding the mouse dock for the ASUS ROG Spatha X + if(info->product_id == AURA_ROG_SPATHA_X_2_4_PID) + { + AuraMouseController* dock_controller = new AuraMouseController(dev, info->path, AURA_ROG_SPATHA_X_DOCK_FAKE_PID); + RGBController_AuraMouse* rgb_controller_dock = new RGBController_AuraMouse(dock_controller); + rgb_controller_dock->name = "Asus ROG Spatha X Dock"; + ResourceManager::get()->RegisterRGBController(rgb_controller_dock); + } } } diff --git a/Controllers/AsusAuraUSBController/RGBController_AsusAuraMouse.cpp b/Controllers/AsusAuraUSBController/RGBController_AsusAuraMouse.cpp index 91ace170..457703c2 100644 --- a/Controllers/AsusAuraUSBController/RGBController_AsusAuraMouse.cpp +++ b/Controllers/AsusAuraUSBController/RGBController_AsusAuraMouse.cpp @@ -9,11 +9,12 @@ #include "RGBController_AsusAuraMouse.h" -static std::string aura_mouse_zone_names[3] +static std::string aura_mouse_zone_names[4] { "Logo", "Scroll Wheel", - "Underglow" + "Underglow", + "Dock" }; /**------------------------------------------------------------------*\ @@ -238,7 +239,15 @@ void RGBController_AuraMouse::DeviceUpdateMode() blu = RGBGetBValue(modes[active_mode].colors[0]); } - controller->SendUpdate(AURA_MOUSE_ZONE_ALL, modes[active_mode].value, red, grn, blu, modes[active_mode].direction, modes[active_mode].color_mode == MODE_COLORS_RANDOM, modes[active_mode].speed, modes[active_mode].brightness); + + if(pid == AURA_ROG_SPATHA_X_DOCK_FAKE_PID) + { + controller->SendUpdate(AURA_MOUSE_ZONE_DOCK, modes[active_mode].value, red, grn, blu, modes[active_mode].direction, modes[active_mode].color_mode == MODE_COLORS_RANDOM, modes[active_mode].speed, modes[active_mode].brightness); + } + else + { + controller->SendUpdate(AURA_MOUSE_ZONE_ALL, modes[active_mode].value, red, grn, blu, modes[active_mode].direction, modes[active_mode].color_mode == MODE_COLORS_RANDOM, modes[active_mode].speed, modes[active_mode].brightness); + } } }