From 87b253502b5fca94a1b63717c745735110f0bedb Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Tue, 10 Oct 2023 20:11:54 -0500 Subject: [PATCH] Fix various issues with Razer Firefly Hyperflux * Fixed LED ID * Fixed layout, separating out zones for scroll wheel, logo, and mousemat * Fixed initialization, set it to software mode to properly control mousemat * Tested all modes Thanks to Yama and Codename-Antares on Discord for helping diagnose and experiment! --- .../RazerController/RazerController.cpp | 3 ++ Controllers/RazerController/RazerDevices.cpp | 41 +++++++++++++++---- 2 files changed, 36 insertions(+), 8 deletions(-) diff --git a/Controllers/RazerController/RazerController.cpp b/Controllers/RazerController/RazerController.cpp index fc317c570..5c417a69d 100644 --- a/Controllers/RazerController/RazerController.cpp +++ b/Controllers/RazerController/RazerController.cpp @@ -61,6 +61,7 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha { case RAZER_CHARGING_PAD_CHROMA_PID: case RAZER_CHROMA_MUG_PID: + case RAZER_FIREFLY_HYPERFLUX_PID: { razer_set_device_mode(RAZER_DEVICE_MODE_SOFTWARE); } @@ -89,6 +90,7 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha case RAZER_DEATHSTALKER_V2_PRO_WIRED_PID: case RAZER_DEATHSTALKER_V2_PRO_WIRELESS_PID: case RAZER_FIREFLY_V2_PID: + case RAZER_FIREFLY_HYPERFLUX_PID: case RAZER_GOLIATHUS_CHROMA_EXTENDED_PID: case RAZER_GOLIATHUS_CHROMA_PID: case RAZER_LAPTOP_STAND_CHROMA_PID: @@ -446,6 +448,7 @@ bool RazerController::SupportsWave() case RAZER_CORE_X_PID: case RAZER_FIREFLY_PID: case RAZER_FIREFLY_V2_PID: + case RAZER_FIREFLY_HYPERFLUX_PID: case RAZER_LAPTOP_STAND_CHROMA_PID: case RAZER_LAPTOP_STAND_CHROMA_V2_PID: case RAZER_LEVIATHAN_V2X_PID: diff --git a/Controllers/RazerController/RazerDevices.cpp b/Controllers/RazerController/RazerDevices.cpp index b7f6702c2..2c24d8b1d 100644 --- a/Controllers/RazerController/RazerDevices.cpp +++ b/Controllers/RazerController/RazerDevices.cpp @@ -6078,18 +6078,43 @@ static const razer_device firefly_device = /*-------------------------------------------------------------*\ | Razer Firefly Hyperflux | | | -| Zone "LED Strip" | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Mousemat" | | Linear | -| 1 LEDs | +| 12 LEDs | \*-------------------------------------------------------------*/ -static const razer_zone firefly_hyperflux_zone = + +static const razer_zone firefly_hyperflux_scroll_wheel_zone = { - "LED Strip", + "Scroll Wheel", ZONE_TYPE_SINGLE, 1, 1 }; +static const razer_zone firefly_hyperflux_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone firefly_hyperflux_mousemat_zone = +{ + "Mousemat", + ZONE_TYPE_LINEAR, + 1, + 12 +}; + static const razer_device firefly_hyperflux_device = { "Razer Firefly Hyperflux", @@ -6098,11 +6123,11 @@ static const razer_device firefly_hyperflux_device = RAZER_MATRIX_TYPE_EXTENDED, 0x3F, 1, - 1, + 14, { - &firefly_hyperflux_zone, - NULL, - NULL, + &firefly_hyperflux_scroll_wheel_zone, + &firefly_hyperflux_logo_zone, + &firefly_hyperflux_mousemat_zone, NULL, NULL, NULL