From 34b20a78ea67a474168fd90df5a5923b219b6f11 Mon Sep 17 00:00:00 2001 From: Chris Date: Mon, 17 Jan 2022 02:46:42 +1100 Subject: [PATCH] LED ID correction and zone fix for Basilisk V3 * Change LED ID to 0 * Swap Logo and Scroll Wheel Zone order * Created `SupportsBreathing()` function to allow removal of hardware mode for the Basilisk V3 --- .../RazerController/RGBController_Razer.cpp | 27 ++++++++++--------- .../RazerController/RazerController.cpp | 25 +++++++++++++++++ Controllers/RazerController/RazerController.h | 1 + Controllers/RazerController/RazerDevices.h | 2 +- 4 files changed, 42 insertions(+), 13 deletions(-) diff --git a/Controllers/RazerController/RGBController_Razer.cpp b/Controllers/RazerController/RGBController_Razer.cpp index 497b0ba05..7207b7a23 100644 --- a/Controllers/RazerController/RGBController_Razer.cpp +++ b/Controllers/RazerController/RGBController_Razer.cpp @@ -43,18 +43,21 @@ RGBController_Razer::RGBController_Razer(RazerController* controller_ptr) Static.brightness = 255; modes.push_back(Static); - mode Breathing; - Breathing.name = "Breathing"; - Breathing.value = RAZER_MODE_BREATHING; - Breathing.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_BRIGHTNESS; - Breathing.color_mode = MODE_COLORS_MODE_SPECIFIC; - Breathing.colors_min = 1; - Breathing.colors_max = 2; - Breathing.colors.resize(1); - Breathing.brightness_min = 0; - Breathing.brightness_max = 255; - Breathing.brightness = 255; - modes.push_back(Breathing); + if(controller->SupportsBreathing()) + { + mode Breathing; + Breathing.name = "Breathing"; + Breathing.value = RAZER_MODE_BREATHING; + Breathing.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_BRIGHTNESS; + Breathing.color_mode = MODE_COLORS_MODE_SPECIFIC; + Breathing.colors_min = 1; + Breathing.colors_max = 2; + Breathing.colors.resize(1); + Breathing.brightness_min = 0; + Breathing.brightness_max = 255; + Breathing.brightness = 255; + modes.push_back(Breathing); + } mode SpectrumCycle; SpectrumCycle.name = "Spectrum Cycle"; diff --git a/Controllers/RazerController/RazerController.cpp b/Controllers/RazerController/RazerController.cpp index 21f1840a4..7dc1faf68 100644 --- a/Controllers/RazerController/RazerController.cpp +++ b/Controllers/RazerController/RazerController.cpp @@ -110,6 +110,7 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha \*-----------------------------------------------------------------*/ switch(dev_pid) { + case RAZER_BASILISK_V3_PID: case RAZER_BASE_STATION_CHROMA_PID: case RAZER_BASE_STATION_V2_CHROMA_PID: case RAZER_CHARGING_PAD_CHROMA_PID: @@ -446,6 +447,30 @@ void RazerController::SetModeWave(unsigned char direction) razer_set_mode_wave(direction); } +bool RazerController::SupportsBreathing() +{ + /*-----------------------------------------------------*\ + | Breathing Mode is assumed as supported in hardware | + | Add PIDs only for devices that DO NOT support the | + | hardware breathing mode i.e. Packet captures show | + | software driving the basic `Breathing` mode | + \*-----------------------------------------------------*/ + bool supports_breathing = true; + + switch(dev_pid) + { + /*-----------------------------------------------------*\ + | Mice | + \*-----------------------------------------------------*/ + case RAZER_BASILISK_V3_PID: + + supports_breathing = false; + break; + } + + return(supports_breathing); +} + bool RazerController::SupportsReactive() { return(false); diff --git a/Controllers/RazerController/RazerController.h b/Controllers/RazerController/RazerController.h index 695978c88..16e2f6b48 100644 --- a/Controllers/RazerController/RazerController.h +++ b/Controllers/RazerController/RazerController.h @@ -182,6 +182,7 @@ public: void SetModeStatic(unsigned char red, unsigned char grn, unsigned char blu); void SetModeWave(unsigned char direction); + bool SupportsBreathing(); bool SupportsReactive(); bool SupportsWave(); diff --git a/Controllers/RazerController/RazerDevices.h b/Controllers/RazerController/RazerDevices.h index 76bb7f6cf..3c0e31c83 100644 --- a/Controllers/RazerController/RazerDevices.h +++ b/Controllers/RazerController/RazerDevices.h @@ -5102,8 +5102,8 @@ static const razer_device basilisk_v3_device = 1, 11, { - &basilisk_v3_scroll_wheel_zone, &basilisk_v3_logo_zone, + &basilisk_v3_scroll_wheel_zone, &basilisk_v3_ledstrip_zone, NULL, NULL,