diff --git a/src/include/razeraccessory_driver.h b/src/include/razeraccessory_driver.h index 2b3913e..eeb1dcd 100644 --- a/src/include/razeraccessory_driver.h +++ b/src/include/razeraccessory_driver.h @@ -24,6 +24,7 @@ #define USB_DEVICE_ID_RAZER_MOUSE_BUNGEE_V3_CHROMA 0x0F1D #define USB_DEVICE_ID_RAZER_BASE_STATION_V2_CHROMA 0x0F20 #define USB_DEVICE_ID_RAZER_THUNDERBOLT_4_DOCK_CHROMA 0x0F21 +#define USB_DEVICE_ID_RAZER_CHARGING_PAD_CHROMA 0x0F26 #define RAZER_ACCESSORY_WAIT_MIN_US 600 #define RAZER_ACCESSORY_WAIT_MAX_US 1000 @@ -37,7 +38,7 @@ ssize_t razer_accessory_attr_write_mode_wave(IOUSBDeviceInterface **usb_dev, con ssize_t razer_accessory_attr_write_mode_static(IOUSBDeviceInterface **usb_dev, const char *buf, size_t count); ssize_t razer_accessory_attr_write_mode_breath(IOUSBDeviceInterface **usb_dev, const char *buf, size_t count); ushort razer_accessory_attr_read_set_brightness(IOUSBDeviceInterface **usb_dev); -ssize_t razer_accessory_attr_write_set_brightness(IOUSBDeviceInterface **usb_dev, ushort brightness, size_t count); +ssize_t razer_accessory_attr_write_set_brightness(IOUSBDeviceInterface **usb_dev, ushort brightness, int count); #endif \ No newline at end of file diff --git a/src/include/razerkbd_driver.h b/src/include/razerkbd_driver.h index 360f3c3..eb2c952 100644 --- a/src/include/razerkbd_driver.h +++ b/src/include/razerkbd_driver.h @@ -42,6 +42,7 @@ #define USB_DEVICE_ID_RAZER_ORNATA_CHROMA 0x021E #define USB_DEVICE_ID_RAZER_ORNATA 0x021F #define USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V2 0x025D +#define USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V3 0x02a1 #define USB_DEVICE_ID_RAZER_BLADE_STEALTH_LATE_2016 0x0220 #define USB_DEVICE_ID_RAZER_BLACKWIDOW_CHROMA_V2 0x0221 #define USB_DEVICE_ID_RAZER_BLACKWIDOW_V3 0x024e @@ -83,6 +84,7 @@ #define USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_75 0x02a5 #define USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_PRO 0x028D #define USB_DEVICE_ID_RAZER_DEATHSTALKER_V2 0x0295 +#define USB_DEVICE_ID_RAZER_DEATHSTALKER_V2_PRO 0x0292 #define USB_DEVICE_ID_RAZER_ORNATA_V3X 0x02a2 /* Each keyboard report has 90 bytes*/ diff --git a/src/include/razermousemat_driver.h b/src/include/razermousemat_driver.h index faed11a..17a7a40 100644 --- a/src/include/razermousemat_driver.h +++ b/src/include/razermousemat_driver.h @@ -17,7 +17,9 @@ #define USB_DEVICE_ID_RAZER_FIREFLY_HYPERFLUX 0x0068 #define USB_DEVICE_ID_RAZER_FIREFLY 0x0C00 #define USB_DEVICE_ID_RAZER_FIREFLY_V2 0x0c04 +#define USB_DEVICE_ID_RAZER_FIREFLY_V2_PRO 0x0c08 #define USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA 0x0C01 +#define USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA_3XL 0x0C06 #define USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA_EXTENDED 0x0C02 #define RAZER_MOUSEMAT_WAIT_MIN_US 900 diff --git a/src/lib/razeraccessory_driver.c b/src/lib/razeraccessory_driver.c index a2b9f1f..fd0bdaf 100644 --- a/src/lib/razeraccessory_driver.c +++ b/src/lib/razeraccessory_driver.c @@ -102,6 +102,7 @@ ssize_t razer_accessory_attr_write_mode_spectrum(IOUSBDeviceInterface **usb_dev, case USB_DEVICE_ID_RAZER_NOMMO_PRO: case USB_DEVICE_ID_RAZER_NOMMO_CHROMA: case USB_DEVICE_ID_RAZER_MOUSE_DOCK: + case USB_DEVICE_ID_RAZER_CHARGING_PAD_CHROMA: report = razer_chroma_extended_matrix_effect_spectrum(VARSTORE, ZERO_LED); report.transaction_id.id = 0x3F; break; @@ -145,6 +146,7 @@ ssize_t razer_accessory_attr_write_mode_none(IOUSBDeviceInterface **usb_dev, con case USB_DEVICE_ID_RAZER_NOMMO_PRO: case USB_DEVICE_ID_RAZER_NOMMO_CHROMA: case USB_DEVICE_ID_RAZER_MOUSE_DOCK: + case USB_DEVICE_ID_RAZER_CHARGING_PAD_CHROMA: report = razer_chroma_extended_matrix_effect_none(VARSTORE, ZERO_LED); report.transaction_id.id = 0x3F; break; @@ -214,6 +216,7 @@ ssize_t razer_accessory_attr_write_mode_custom(IOUSBDeviceInterface **usb_dev, c case USB_DEVICE_ID_RAZER_NOMMO_PRO: case USB_DEVICE_ID_RAZER_NOMMO_CHROMA: case USB_DEVICE_ID_RAZER_MOUSE_DOCK: + case USB_DEVICE_ID_RAZER_CHARGING_PAD_CHROMA: report = razer_chroma_extended_matrix_effect_custom_frame(); break; @@ -261,6 +264,10 @@ ssize_t razer_accessory_attr_write_mode_static(IOUSBDeviceInterface **usb_dev, c report.transaction_id.id = 0x3F; break; + case USB_DEVICE_ID_RAZER_CHARGING_PAD_CHROMA: + report = razer_chroma_extended_matrix_effect_static(NOSTORE, ZERO_LED, (struct razer_rgb *)&buf[0]); + break; + case USB_DEVICE_ID_RAZER_MOUSE_BUNGEE_V3_CHROMA: case USB_DEVICE_ID_RAZER_BASE_STATION_V2_CHROMA: case USB_DEVICE_ID_RAZER_THUNDERBOLT_4_DOCK_CHROMA: @@ -306,6 +313,7 @@ ssize_t razer_accessory_attr_write_mode_wave(IOUSBDeviceInterface **usb_dev, con case USB_DEVICE_ID_RAZER_NOMMO_PRO: case USB_DEVICE_ID_RAZER_NOMMO_CHROMA: case USB_DEVICE_ID_RAZER_MOUSE_DOCK: + case USB_DEVICE_ID_RAZER_CHARGING_PAD_CHROMA: report = razer_chroma_extended_matrix_effect_wave(VARSTORE, ZERO_LED, direction, speed); report.transaction_id.id = 0x3F; break; @@ -350,6 +358,7 @@ ssize_t razer_accessory_attr_write_mode_breath(IOUSBDeviceInterface **usb_dev, c case USB_DEVICE_ID_RAZER_NOMMO_PRO: case USB_DEVICE_ID_RAZER_NOMMO_CHROMA: case USB_DEVICE_ID_RAZER_MOUSE_DOCK: + case USB_DEVICE_ID_RAZER_CHARGING_PAD_CHROMA: switch(count) { case 3: // Single colour mode report = razer_chroma_extended_matrix_effect_breathing_single(VARSTORE, ZERO_LED, (struct razer_rgb *)&buf[0]); @@ -487,11 +496,12 @@ ssize_t razer_accessory_attr_read_device_mode(IOUSBDeviceInterface **usb_dev, ch * * Sets the brightness to the ASCII number written to this file. */ -ssize_t razer_accessory_attr_write_set_brightness(IOUSBDeviceInterface **usb_dev, ushort brightness, size_t count) +ssize_t razer_accessory_attr_write_set_brightness(IOUSBDeviceInterface **usb_dev, ushort brightness, int count) { + + struct razer_report report = {0}; UInt16 product = -1; (*usb_dev)->GetDeviceProduct(usb_dev, &product); - struct razer_report report = {0}; switch (product) { case USB_DEVICE_ID_RAZER_MOUSE_BUNGEE_V3_CHROMA: @@ -510,6 +520,7 @@ ssize_t razer_accessory_attr_write_set_brightness(IOUSBDeviceInterface **usb_dev case USB_DEVICE_ID_RAZER_NOMMO_PRO: case USB_DEVICE_ID_RAZER_NOMMO_CHROMA: case USB_DEVICE_ID_RAZER_MOUSE_DOCK: // In openrazer this is bundled with saving brightness to usb_dev for MOUSE_DOCK + case USB_DEVICE_ID_RAZER_CHARGING_PAD_CHROMA: report = razer_chroma_extended_matrix_brightness(VARSTORE, ZERO_LED, brightness); break; @@ -530,24 +541,36 @@ ssize_t razer_accessory_attr_write_set_brightness(IOUSBDeviceInterface **usb_dev */ ushort razer_accessory_attr_read_set_brightness(IOUSBDeviceInterface **usb_dev) { + bool is_matrix_brightness = false; + unsigned char brightness = 0; + struct razer_report report = {0}; + struct razer_report response = {0}; + UInt16 product = -1; (*usb_dev)->GetDeviceProduct(usb_dev, &product); - struct razer_report report = razer_chroma_standard_get_led_brightness(VARSTORE, BACKLIGHT_LED); - struct razer_report response = {0}; - unsigned char brightness = 0; switch (product) { case USB_DEVICE_ID_RAZER_MOUSE_BUNGEE_V3_CHROMA: case USB_DEVICE_ID_RAZER_BASE_STATION_V2_CHROMA: case USB_DEVICE_ID_RAZER_THUNDERBOLT_4_DOCK_CHROMA: case USB_DEVICE_ID_RAZER_MOUSE_DOCK: - break; + case USB_DEVICE_ID_RAZER_CHARGING_PAD_CHROMA: + report = razer_chroma_extended_matrix_get_brightness(VARSTORE, ZERO_LED); + report.transaction_id.id = 0x1F; + is_matrix_brightness = true; + break; default: - response = razer_send_payload(usb_dev, &report); - brightness = response.arguments[2]; + report = razer_chroma_standard_get_led_brightness(VARSTORE, BACKLIGHT_LED); break; } + response = razer_send_payload(usb_dev, &report); + brightness = response.arguments[2]; + + if(is_matrix_brightness) { + brightness = round(brightness / 2.55); + } + return brightness; } \ No newline at end of file diff --git a/src/lib/razerdevice.c b/src/lib/razerdevice.c index fcc0c10..161e4be 100755 --- a/src/lib/razerdevice.c +++ b/src/lib/razerdevice.c @@ -22,57 +22,58 @@ bool is_keyboard(IOUSBDeviceInterface **usb_dev) switch (product) { - case USB_DEVICE_ID_RAZER_NOSTROMO: - case USB_DEVICE_ID_RAZER_ORBWEAVER: - case USB_DEVICE_ID_RAZER_ORBWEAVER_CHROMA: - case USB_DEVICE_ID_RAZER_BLACKWIDOW_STEALTH: - case USB_DEVICE_ID_RAZER_BLACKWIDOW_STEALTH_EDITION: - case USB_DEVICE_ID_RAZER_BLACKWIDOW_ULTIMATE_2012: - case USB_DEVICE_ID_RAZER_BLACKWIDOW_ULTIMATE_2013: - case USB_DEVICE_ID_RAZER_BLACKWIDOW_ULTIMATE_2016: - case USB_DEVICE_ID_RAZER_BLACKWIDOW_X_ULTIMATE: - case USB_DEVICE_ID_RAZER_TARTARUS: - case USB_DEVICE_ID_RAZER_TARTARUS_CHROMA: - case USB_DEVICE_ID_RAZER_TARTARUS_V2: - case USB_DEVICE_ID_RAZER_BLACKWIDOW_OVERWATCH: - case USB_DEVICE_ID_RAZER_BLACKWIDOW_CHROMA: - case USB_DEVICE_ID_RAZER_DEATHSTALKER_EXPERT: - case USB_DEVICE_ID_RAZER_DEATHSTALKER_CHROMA: - case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2: - case USB_DEVICE_ID_RAZER_BLACKWIDOW_CHROMA_TE: - case USB_DEVICE_ID_RAZER_BLACKWIDOW_X_CHROMA: - case USB_DEVICE_ID_RAZER_BLACKWIDOW_X_CHROMA_TE: - case USB_DEVICE_ID_RAZER_BLACKWIDOW_LITE: - case USB_DEVICE_ID_RAZER_BLACKWIDOW_2019: - case USB_DEVICE_ID_RAZER_BLACKWIDOW_ESSENTIAL: - case USB_DEVICE_ID_RAZER_ORNATA: - case USB_DEVICE_ID_RAZER_ORNATA_CHROMA: - case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V2: - case USB_DEVICE_ID_RAZER_HUNTSMAN_ELITE: - case USB_DEVICE_ID_RAZER_HUNTSMAN_TE: - case USB_DEVICE_ID_RAZER_BLACKWIDOW_ELITE: - case USB_DEVICE_ID_RAZER_HUNTSMAN: - case USB_DEVICE_ID_RAZER_CYNOSA_CHROMA: + case USB_DEVICE_ID_RAZER_NOSTROMO: + case USB_DEVICE_ID_RAZER_ORBWEAVER: + case USB_DEVICE_ID_RAZER_ORBWEAVER_CHROMA: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_STEALTH: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_STEALTH_EDITION: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_ULTIMATE_2012: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_ULTIMATE_2013: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_ULTIMATE_2016: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_X_ULTIMATE: + case USB_DEVICE_ID_RAZER_TARTARUS: + case USB_DEVICE_ID_RAZER_TARTARUS_CHROMA: + case USB_DEVICE_ID_RAZER_TARTARUS_V2: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_OVERWATCH: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_CHROMA: + case USB_DEVICE_ID_RAZER_DEATHSTALKER_EXPERT: + case USB_DEVICE_ID_RAZER_DEATHSTALKER_CHROMA: + case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2: + case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2_PRO: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_CHROMA_TE: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_X_CHROMA: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_X_CHROMA_TE: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_LITE: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_2019: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_ESSENTIAL: + case USB_DEVICE_ID_RAZER_ORNATA: + case USB_DEVICE_ID_RAZER_ORNATA_CHROMA: + case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V2: + case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V3: + case USB_DEVICE_ID_RAZER_HUNTSMAN_ELITE: + case USB_DEVICE_ID_RAZER_HUNTSMAN_TE: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_ELITE: + case USB_DEVICE_ID_RAZER_HUNTSMAN: + case USB_DEVICE_ID_RAZER_CYNOSA_CHROMA: case USB_DEVICE_ID_RAZER_CYNOSA_CHROMA_PRO: - case USB_DEVICE_ID_RAZER_BLACKWIDOW_CHROMA_V2: - case USB_DEVICE_ID_RAZER_ANANSI: - case USB_DEVICE_ID_RAZER_CYNOSA_V2: - case USB_DEVICE_ID_RAZER_CYNOSA_LITE: - case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3: - case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_TK: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_CHROMA_V2: + case USB_DEVICE_ID_RAZER_ANANSI: + case USB_DEVICE_ID_RAZER_CYNOSA_V2: + case USB_DEVICE_ID_RAZER_CYNOSA_LITE: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_TK: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED: - case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI: + case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_ANALOG: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: - case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: - case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRELESS: - case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_75: - case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_PRO: - case USB_DEVICE_ID_RAZER_ORNATA_V3X: - return true; + case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRELESS: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_75: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_PRO: + case USB_DEVICE_ID_RAZER_ORNATA_V3X: + return true; } - return false; } @@ -83,75 +84,74 @@ bool is_mouse(IOUSBDeviceInterface **usb_dev) switch (product) { - case USB_DEVICE_ID_RAZER_OROCHI_2011: - case USB_DEVICE_ID_RAZER_DEATHADDER_3_5G: - case USB_DEVICE_ID_RAZER_ABYSSUS_1800: - case USB_DEVICE_ID_RAZER_MAMBA_2012_WIRED: - case USB_DEVICE_ID_RAZER_MAMBA_2012_WIRELESS: - case USB_DEVICE_ID_RAZER_NAGA_2012: - case USB_DEVICE_ID_RAZER_IMPERATOR: - case USB_DEVICE_ID_RAZER_OUROBOROS: - case USB_DEVICE_ID_RAZER_TAIPAN: - case USB_DEVICE_ID_RAZER_NAGA_HEX_RED: - case USB_DEVICE_ID_RAZER_DEATHADDER_2013: - case USB_DEVICE_ID_RAZER_DEATHADDER_1800: - case USB_DEVICE_ID_RAZER_OROCHI_2013: - case USB_DEVICE_ID_RAZER_NAGA_2014: - case USB_DEVICE_ID_RAZER_NAGA_X: - case USB_DEVICE_ID_RAZER_NAGA_HEX: - case USB_DEVICE_ID_RAZER_ABYSSUS: - case USB_DEVICE_ID_RAZER_DEATHADDER_CHROMA: - case USB_DEVICE_ID_RAZER_MAMBA_WIRED: - case USB_DEVICE_ID_RAZER_MAMBA_WIRELESS: - case USB_DEVICE_ID_RAZER_MAMBA_TE_WIRED: - case USB_DEVICE_ID_RAZER_OROCHI_CHROMA: - case USB_DEVICE_ID_RAZER_DIAMONDBACK_CHROMA: - case USB_DEVICE_ID_RAZER_NAGA_HEX_V2: - case USB_DEVICE_ID_RAZER_NAGA_CHROMA: - case USB_DEVICE_ID_RAZER_DEATHADDER_3500: - case USB_DEVICE_ID_RAZER_LANCEHEAD_WIRED: - case USB_DEVICE_ID_RAZER_LANCEHEAD_WIRELESS: - case USB_DEVICE_ID_RAZER_ABYSSUS_V2: - case USB_DEVICE_ID_RAZER_DEATHADDER_ELITE: - case USB_DEVICE_ID_RAZER_ABYSSUS_2000: - case USB_DEVICE_ID_RAZER_LANCEHEAD_TE_WIRED: - case USB_DEVICE_ID_RAZER_BASILISK: - case USB_DEVICE_ID_RAZER_BASILISK_ULTIMATE: - case USB_DEVICE_ID_RAZER_BASILISK_ULTIMATE_RECEIVER: - case USB_DEVICE_ID_RAZER_NAGA_TRINITY: - case USB_DEVICE_ID_RAZER_NAGA_PRO_WIRELESS: - case USB_DEVICE_ID_RAZER_NAGA_PRO_WIRED: - case USB_DEVICE_ID_RAZER_ABYSSUS_ELITE_DVA_EDITION: - case USB_DEVICE_ID_RAZER_ABYSSUS_ESSENTIAL: - case USB_DEVICE_ID_RAZER_MAMBA_ELITE: - case USB_DEVICE_ID_RAZER_DEATHADDER_ESSENTIAL: - case USB_DEVICE_ID_RAZER_LANCEHEAD_WIRELESS_RECEIVER: - case USB_DEVICE_ID_RAZER_LANCEHEAD_WIRELESS_WIRED: - case USB_DEVICE_ID_RAZER_DEATHADDER_ESSENTIAL_WHITE_EDITION: - case USB_DEVICE_ID_RAZER_MAMBA_WIRELESS_RECEIVER: - case USB_DEVICE_ID_RAZER_MAMBA_WIRELESS_WIRED: - case USB_DEVICE_ID_RAZER_VIPER: - case USB_DEVICE_ID_RAZER_VIPER_8KHZ: - case USB_DEVICE_ID_RAZER_VIPER_MINI: - case USB_DEVICE_ID_RAZER_BASILISK_V2: - case USB_DEVICE_ID_RAZER_VIPER_ULTIMATE_WIRED: - case USB_DEVICE_ID_RAZER_VIPER_ULTIMATE_WIRELESS: - case USB_DEVICE_ID_RAZER_DEATHADDER_V2: - case USB_DEVICE_ID_RAZER_DEATHADDER_V2_PRO_WIRED: + case USB_DEVICE_ID_RAZER_OROCHI_2011: + case USB_DEVICE_ID_RAZER_DEATHADDER_3_5G: + case USB_DEVICE_ID_RAZER_ABYSSUS_1800: + case USB_DEVICE_ID_RAZER_MAMBA_2012_WIRED: + case USB_DEVICE_ID_RAZER_MAMBA_2012_WIRELESS: + case USB_DEVICE_ID_RAZER_NAGA_2012: + case USB_DEVICE_ID_RAZER_IMPERATOR: + case USB_DEVICE_ID_RAZER_OUROBOROS: + case USB_DEVICE_ID_RAZER_TAIPAN: + case USB_DEVICE_ID_RAZER_NAGA_HEX_RED: + case USB_DEVICE_ID_RAZER_DEATHADDER_2013: + case USB_DEVICE_ID_RAZER_DEATHADDER_1800: + case USB_DEVICE_ID_RAZER_OROCHI_2013: + case USB_DEVICE_ID_RAZER_NAGA_2014: + case USB_DEVICE_ID_RAZER_NAGA_X: + case USB_DEVICE_ID_RAZER_NAGA_HEX: + case USB_DEVICE_ID_RAZER_ABYSSUS: + case USB_DEVICE_ID_RAZER_DEATHADDER_CHROMA: + case USB_DEVICE_ID_RAZER_MAMBA_WIRED: + case USB_DEVICE_ID_RAZER_MAMBA_WIRELESS: + case USB_DEVICE_ID_RAZER_MAMBA_TE_WIRED: + case USB_DEVICE_ID_RAZER_OROCHI_CHROMA: + case USB_DEVICE_ID_RAZER_DIAMONDBACK_CHROMA: + case USB_DEVICE_ID_RAZER_NAGA_HEX_V2: + case USB_DEVICE_ID_RAZER_NAGA_CHROMA: + case USB_DEVICE_ID_RAZER_DEATHADDER_3500: + case USB_DEVICE_ID_RAZER_LANCEHEAD_WIRED: + case USB_DEVICE_ID_RAZER_LANCEHEAD_WIRELESS: + case USB_DEVICE_ID_RAZER_ABYSSUS_V2: + case USB_DEVICE_ID_RAZER_DEATHADDER_ELITE: + case USB_DEVICE_ID_RAZER_ABYSSUS_2000: + case USB_DEVICE_ID_RAZER_LANCEHEAD_TE_WIRED: + case USB_DEVICE_ID_RAZER_BASILISK: + case USB_DEVICE_ID_RAZER_BASILISK_ULTIMATE: + case USB_DEVICE_ID_RAZER_BASILISK_ULTIMATE_RECEIVER: + case USB_DEVICE_ID_RAZER_NAGA_TRINITY: + case USB_DEVICE_ID_RAZER_NAGA_PRO_WIRELESS: + case USB_DEVICE_ID_RAZER_NAGA_PRO_WIRED: + case USB_DEVICE_ID_RAZER_ABYSSUS_ELITE_DVA_EDITION: + case USB_DEVICE_ID_RAZER_ABYSSUS_ESSENTIAL: + case USB_DEVICE_ID_RAZER_MAMBA_ELITE: + case USB_DEVICE_ID_RAZER_DEATHADDER_ESSENTIAL: + case USB_DEVICE_ID_RAZER_LANCEHEAD_WIRELESS_RECEIVER: + case USB_DEVICE_ID_RAZER_LANCEHEAD_WIRELESS_WIRED: + case USB_DEVICE_ID_RAZER_DEATHADDER_ESSENTIAL_WHITE_EDITION: + case USB_DEVICE_ID_RAZER_MAMBA_WIRELESS_RECEIVER: + case USB_DEVICE_ID_RAZER_MAMBA_WIRELESS_WIRED: + case USB_DEVICE_ID_RAZER_VIPER: + case USB_DEVICE_ID_RAZER_VIPER_8KHZ: + case USB_DEVICE_ID_RAZER_VIPER_MINI: + case USB_DEVICE_ID_RAZER_BASILISK_V2: + case USB_DEVICE_ID_RAZER_VIPER_ULTIMATE_WIRED: + case USB_DEVICE_ID_RAZER_VIPER_ULTIMATE_WIRELESS: + case USB_DEVICE_ID_RAZER_DEATHADDER_V2: + case USB_DEVICE_ID_RAZER_DEATHADDER_V2_PRO_WIRED: case USB_DEVICE_ID_RAZER_DEATHADDER_V2_PRO_WIRELESS: - case USB_DEVICE_ID_RAZER_DEATHADDER_V2_MINI: - case USB_DEVICE_ID_RAZER_NAGA_LEFT_HANDED_2020: - case USB_DEVICE_ID_RAZER_ATHERIS_RECEIVER: + case USB_DEVICE_ID_RAZER_DEATHADDER_V2_MINI: + case USB_DEVICE_ID_RAZER_NAGA_LEFT_HANDED_2020: + case USB_DEVICE_ID_RAZER_ATHERIS_RECEIVER: case USB_DEVICE_ID_RAZER_DEATHADDER_ESSENTIAL_2021: - case USB_DEVICE_ID_RAZER_BASILISK_V3: - case USB_DEVICE_ID_RAZER_BASILISK_V3_PRO_WIRED: + case USB_DEVICE_ID_RAZER_BASILISK_V3: + case USB_DEVICE_ID_RAZER_BASILISK_V3_PRO_WIRED: case USB_DEVICE_ID_RAZER_BASILISK_V3_PRO_WIRELESS: - case USB_DEVICE_ID_RAZER_BASILISK_ESSENTIAL: + case USB_DEVICE_ID_RAZER_BASILISK_ESSENTIAL: case USB_DEVICE_ID_RAZER_OROCHI_V2_RECEIVER: case USB_DEVICE_ID_RAZER_OROCHI_V2_BLUETOOTH: - return true; + return true; } - return false; } @@ -162,10 +162,9 @@ bool is_mouse_dock(IOUSBDeviceInterface **usb_dev) switch (product) { - case USB_DEVICE_ID_RAZER_MOUSE_CHARGING_DOCK: - return true; + case USB_DEVICE_ID_RAZER_MOUSE_CHARGING_DOCK: + return true; } - return false; } @@ -176,14 +175,15 @@ bool is_mouse_mat(IOUSBDeviceInterface **usb_dev) switch (product) { - case USB_DEVICE_ID_RAZER_FIREFLY_HYPERFLUX: - case USB_DEVICE_ID_RAZER_FIREFLY: - case USB_DEVICE_ID_RAZER_FIREFLY_V2: - case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA: - case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA_EXTENDED: - return true; + case USB_DEVICE_ID_RAZER_FIREFLY_HYPERFLUX: + case USB_DEVICE_ID_RAZER_FIREFLY: + case USB_DEVICE_ID_RAZER_FIREFLY_V2: + case USB_DEVICE_ID_RAZER_FIREFLY_V2_PRO: + case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA: + case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA_EXTENDED: + case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA_3XL: + return true; } - return false; } @@ -194,27 +194,25 @@ bool is_egpu(IOUSBDeviceInterface **usb_dev) switch (product) { - case USB_DEVICE_ID_RAZER_CORE_X_CHROMA: - return true; + case USB_DEVICE_ID_RAZER_CORE_X_CHROMA: + return true; } - return false; } -bool is_headphone(IOUSBDeviceInterface **usb_dev) +bool is_headphone(IOUSBDeviceInterface **usb_dev) { UInt16 product = -1; (*usb_dev)->GetDeviceProduct(usb_dev, &product); - switch (product) + switch (product) { case USB_DEVICE_ID_RAZER_KRAKEN_KITTY_EDITION: case USB_DEVICE_ID_RAZER_KRAKEN_V2: case USB_DEVICE_ID_RAZER_KRAKEN_ULTIMATE: return true; } - return false; } @@ -233,9 +231,9 @@ bool is_accessory(IOUSBDeviceInterface **usb_dev) case USB_DEVICE_ID_RAZER_MOUSE_BUNGEE_V3_CHROMA: case USB_DEVICE_ID_RAZER_BASE_STATION_V2_CHROMA: case USB_DEVICE_ID_RAZER_THUNDERBOLT_4_DOCK_CHROMA: + case USB_DEVICE_ID_RAZER_CHARGING_PAD_CHROMA: return true; } - return false; } diff --git a/src/lib/razerkbd_driver.c b/src/lib/razerkbd_driver.c index c103939..911f120 100644 --- a/src/lib/razerkbd_driver.c +++ b/src/lib/razerkbd_driver.c @@ -110,6 +110,7 @@ ssize_t razer_attr_write_mode_macro_effect(IOUSBDeviceInterface **usb_dev, const case USB_DEVICE_ID_RAZER_ORNATA: case USB_DEVICE_ID_RAZER_ORNATA_CHROMA: case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V2: + case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V3: case USB_DEVICE_ID_RAZER_HUNTSMAN_ELITE: case USB_DEVICE_ID_RAZER_HUNTSMAN_TE: case USB_DEVICE_ID_RAZER_BLACKWIDOW_2019: @@ -347,6 +348,7 @@ ssize_t razer_attr_write_mode_none(IOUSBDeviceInterface **usb_dev, const char *b case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED: case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI: case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2: + case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2_PRO: report = razer_chroma_extended_matrix_effect_none(VARSTORE, BACKLIGHT_LED); break; @@ -355,6 +357,7 @@ ssize_t razer_attr_write_mode_none(IOUSBDeviceInterface **usb_dev, const char *b case USB_DEVICE_ID_RAZER_CYNOSA_V2: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3: case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V2: + case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V3: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_ANALOG: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: @@ -422,6 +425,7 @@ ssize_t razer_attr_write_mode_wave(IOUSBDeviceInterface **usb_dev, const char *b case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED: case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI: case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2: + case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2_PRO: report = razer_chroma_extended_matrix_effect_wave(VARSTORE, BACKLIGHT_LED, direction, speed); break; @@ -434,6 +438,7 @@ ssize_t razer_attr_write_mode_wave(IOUSBDeviceInterface **usb_dev, const char *b case USB_DEVICE_ID_RAZER_BLACKWIDOW_ELITE: case USB_DEVICE_ID_RAZER_CYNOSA_V2: case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V2: + case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V3: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_ANALOG: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: @@ -486,12 +491,14 @@ ssize_t razer_attr_write_mode_spectrum(IOUSBDeviceInterface **usb_dev, const cha case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED: case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI: case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2: + case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2_PRO: report = razer_chroma_extended_matrix_effect_spectrum(VARSTORE, BACKLIGHT_LED); break; case USB_DEVICE_ID_RAZER_BLACKWIDOW_ELITE: case USB_DEVICE_ID_RAZER_CYNOSA_V2: case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V2: + case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V3: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_ANALOG: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: @@ -563,6 +570,7 @@ ssize_t razer_attr_write_mode_reactive(IOUSBDeviceInterface **usb_dev, const cha case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED: case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI: case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2: + case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2_PRO: report = razer_chroma_extended_matrix_effect_reactive(VARSTORE, BACKLIGHT_LED, speed, (struct razer_rgb *)&buf[1]); break; @@ -570,6 +578,7 @@ ssize_t razer_attr_write_mode_reactive(IOUSBDeviceInterface **usb_dev, const cha case USB_DEVICE_ID_RAZER_BLACKWIDOW_ELITE: case USB_DEVICE_ID_RAZER_CYNOSA_V2: case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V2: + case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V3: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_ANALOG: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: @@ -708,6 +717,7 @@ ssize_t razer_attr_write_mode_static(IOUSBDeviceInterface **usb_dev, const char case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED: case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI: case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2: + case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2_PRO: if (count == 3) { report = razer_chroma_extended_matrix_effect_static(VARSTORE, BACKLIGHT_LED, (struct razer_rgb *)&buf[0]); @@ -722,6 +732,7 @@ ssize_t razer_attr_write_mode_static(IOUSBDeviceInterface **usb_dev, const char case USB_DEVICE_ID_RAZER_BLACKWIDOW_ELITE: case USB_DEVICE_ID_RAZER_CYNOSA_V2: case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V2: + case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V3: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_ANALOG: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: @@ -894,6 +905,7 @@ ssize_t razer_attr_write_mode_static_no_store(IOUSBDeviceInterface **usb_dev, co case USB_DEVICE_ID_RAZER_BLACKWIDOW_ELITE: case USB_DEVICE_ID_RAZER_CYNOSA_V2: case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V2: + case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V3: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_ANALOG: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: @@ -992,6 +1004,7 @@ ssize_t razer_attr_write_mode_starlight(IOUSBDeviceInterface **usb_dev, const ch case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED: case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI: case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2: + case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2_PRO: if (count == 7) { report = razer_chroma_extended_matrix_effect_starlight_dual(VARSTORE, BACKLIGHT_LED, buf[0], (struct razer_rgb *)&buf[1], (struct razer_rgb *)&buf[4]); @@ -1016,6 +1029,7 @@ ssize_t razer_attr_write_mode_starlight(IOUSBDeviceInterface **usb_dev, const ch case USB_DEVICE_ID_RAZER_BLACKWIDOW_ELITE: case USB_DEVICE_ID_RAZER_CYNOSA_V2: case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V2: + case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V3: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_ANALOG: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: @@ -1193,6 +1207,7 @@ ssize_t razer_attr_write_mode_breath(IOUSBDeviceInterface **usb_dev, const char case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED: case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI: case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2: + case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2_PRO: switch (count) { case 3: // Single colour mode @@ -1219,6 +1234,7 @@ ssize_t razer_attr_write_mode_breath(IOUSBDeviceInterface **usb_dev, const char case USB_DEVICE_ID_RAZER_BLACKWIDOW_ELITE: case USB_DEVICE_ID_RAZER_CYNOSA_V2: case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V2: + case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V3: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_ANALOG: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: @@ -1421,6 +1437,7 @@ ssize_t razer_attr_write_mode_custom(IOUSBDeviceInterface **usb_dev, const char case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED: case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI: case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2: + case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2_PRO: report = razer_chroma_extended_matrix_effect_custom_frame(); break; @@ -1428,6 +1445,7 @@ ssize_t razer_attr_write_mode_custom(IOUSBDeviceInterface **usb_dev, const char case USB_DEVICE_ID_RAZER_BLACKWIDOW_ELITE: case USB_DEVICE_ID_RAZER_CYNOSA_V2: case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V2: + case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V3: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_ANALOG: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: @@ -1507,12 +1525,14 @@ ssize_t razer_attr_write_set_brightness(IOUSBDeviceInterface **usb_dev, ushort b case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED: case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI: case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2: + case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2_PRO: report = razer_chroma_extended_matrix_brightness(VARSTORE, BACKLIGHT_LED, brightness); break; case USB_DEVICE_ID_RAZER_BLACKWIDOW_ELITE: case USB_DEVICE_ID_RAZER_CYNOSA_V2: case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V2: + case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V3: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_ANALOG: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: @@ -1593,6 +1613,7 @@ ushort razer_attr_read_set_brightness(IOUSBDeviceInterface **usb_dev) case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED: case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI: case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2: + case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2_PRO: report = razer_chroma_extended_matrix_get_brightness(VARSTORE, BACKLIGHT_LED); is_matrix_brightness = true; break; @@ -1600,6 +1621,7 @@ ushort razer_attr_read_set_brightness(IOUSBDeviceInterface **usb_dev) case USB_DEVICE_ID_RAZER_BLACKWIDOW_ELITE: case USB_DEVICE_ID_RAZER_CYNOSA_V2: case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V2: + case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V3: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_ANALOG: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: @@ -1720,6 +1742,7 @@ ssize_t razer_attr_write_matrix_custom_frame(IOUSBDeviceInterface **usb_dev, con case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED: case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI: case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2: + case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2_PRO: report = razer_chroma_extended_matrix_set_custom_frame(row_id, start_col, stop_col, (unsigned char *)&buf[offset]); break; @@ -1727,6 +1750,7 @@ ssize_t razer_attr_write_matrix_custom_frame(IOUSBDeviceInterface **usb_dev, con case USB_DEVICE_ID_RAZER_BLACKWIDOW_ELITE: case USB_DEVICE_ID_RAZER_CYNOSA_V2: case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V2: + case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V3: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_ANALOG: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: @@ -1803,6 +1827,7 @@ static int razer_get_report(IOUSBDeviceInterface **usb_dev, struct razer_report case USB_DEVICE_ID_RAZER_ANANSI: case USB_DEVICE_ID_RAZER_HUNTSMAN_TE: case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V2: + case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V3: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_TK: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED: case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI: diff --git a/src/lib/razermousemat_driver.c b/src/lib/razermousemat_driver.c index 430c822..bb8f8dd 100644 --- a/src/lib/razermousemat_driver.c +++ b/src/lib/razermousemat_driver.c @@ -87,8 +87,10 @@ ssize_t razer_mouse_mat_attr_write_mode_none(IOUSBDeviceInterface **usb_dev, con switch(product) { case USB_DEVICE_ID_RAZER_FIREFLY_HYPERFLUX: case USB_DEVICE_ID_RAZER_FIREFLY_V2: + case USB_DEVICE_ID_RAZER_FIREFLY_V2_PRO: case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA: case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA_EXTENDED: + case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA_3XL: report = razer_chroma_extended_matrix_effect_none(VARSTORE, ZERO_LED); break; @@ -112,12 +114,13 @@ ssize_t razer_mouse_mat_attr_write_mode_wave(IOUSBDeviceInterface **usb_dev, con { unsigned char direction = (unsigned char)strtol(buf, NULL, 10); struct razer_report report = {0}; - + UInt16 product = -1; (*usb_dev)->GetDeviceProduct(usb_dev, &product); switch(product) { case USB_DEVICE_ID_RAZER_FIREFLY_V2: + case USB_DEVICE_ID_RAZER_FIREFLY_V2_PRO: case USB_DEVICE_ID_RAZER_FIREFLY_HYPERFLUX: report = razer_chroma_extended_matrix_effect_wave(VARSTORE, ZERO_LED, direction, 0x28); break; @@ -143,9 +146,11 @@ ssize_t razer_mouse_mat_attr_write_mode_breath(IOUSBDeviceInterface **usb_dev, c switch(product) { case USB_DEVICE_ID_RAZER_FIREFLY_V2: + case USB_DEVICE_ID_RAZER_FIREFLY_V2_PRO: case USB_DEVICE_ID_RAZER_FIREFLY_HYPERFLUX: case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA: case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA_EXTENDED: + case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA_3XL: switch(count) { case 3: // Single colour mode report = razer_chroma_extended_matrix_effect_breathing_single(VARSTORE, ZERO_LED, (struct razer_rgb *)&buf[0]); @@ -191,16 +196,18 @@ ssize_t razer_mouse_mat_attr_write_mode_breath(IOUSBDeviceInterface **usb_dev, c ssize_t razer_mouse_mat_attr_write_mode_static(IOUSBDeviceInterface **usb_dev, const char *buf, size_t count) { struct razer_report report = {0}; - + UInt16 product = -1; (*usb_dev)->GetDeviceProduct(usb_dev, &product); if(count == 3) { switch(product) { case USB_DEVICE_ID_RAZER_FIREFLY_V2: + case USB_DEVICE_ID_RAZER_FIREFLY_V2_PRO: case USB_DEVICE_ID_RAZER_FIREFLY_HYPERFLUX: case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA: case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA_EXTENDED: + case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA_3XL: report = razer_chroma_extended_matrix_effect_static(VARSTORE, ZERO_LED, (struct razer_rgb *)&buf[0]); break; @@ -221,22 +228,24 @@ ssize_t razer_mouse_mat_attr_write_mode_static(IOUSBDeviceInterface **usb_dev, c * Write device file "mode_static" * * ** NOSTORE version for efficiency in custom lighting configurations - * + * * Set the mousemat to static mode when 3 RGB bytes are written */ ssize_t razer_mouse_mat_attr_write_mode_static_no_store(IOUSBDeviceInterface **usb_dev, const char *buf, size_t count) { struct razer_report report = {0}; - + UInt16 product = -1; (*usb_dev)->GetDeviceProduct(usb_dev, &product); if(count == 3) { switch(product) { case USB_DEVICE_ID_RAZER_FIREFLY_V2: + case USB_DEVICE_ID_RAZER_FIREFLY_V2_PRO: case USB_DEVICE_ID_RAZER_FIREFLY_HYPERFLUX: case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA: case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA_EXTENDED: + case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA_3XL: report = razer_chroma_extended_matrix_effect_static(NOSTORE, ZERO_LED, (struct razer_rgb *)&buf[0]); break; @@ -262,8 +271,10 @@ ssize_t razer_mouse_mat_attr_write_set_brightness(IOUSBDeviceInterface **usb_dev switch (product) { case USB_DEVICE_ID_RAZER_FIREFLY_HYPERFLUX: case USB_DEVICE_ID_RAZER_FIREFLY_V2: + case USB_DEVICE_ID_RAZER_FIREFLY_V2_PRO: case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA: case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA_EXTENDED: + case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA_3XL: report = razer_chroma_extended_matrix_brightness(VARSTORE, ZERO_LED, brightness); break; @@ -289,8 +300,10 @@ ushort razer_mouse_mat_attr_read_set_brightness(IOUSBDeviceInterface **usb_dev) switch (product) { case USB_DEVICE_ID_RAZER_FIREFLY_HYPERFLUX: case USB_DEVICE_ID_RAZER_FIREFLY_V2: + case USB_DEVICE_ID_RAZER_FIREFLY_V2_PRO: case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA: case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA_EXTENDED: + case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA_3XL: brightness = 0xff; // Unfortunately, we can't read the brightness from the device directly. return dummy value. break; @@ -311,15 +324,17 @@ ushort razer_mouse_mat_attr_read_set_brightness(IOUSBDeviceInterface **usb_dev) ssize_t razer_mouse_mat_attr_write_mode_spectrum(IOUSBDeviceInterface **usb_dev, const char *buf, size_t count) { struct razer_report report = {0}; - + UInt16 product = -1; (*usb_dev)->GetDeviceProduct(usb_dev, &product); switch(product) { case USB_DEVICE_ID_RAZER_FIREFLY_V2: + case USB_DEVICE_ID_RAZER_FIREFLY_V2_PRO: case USB_DEVICE_ID_RAZER_FIREFLY_HYPERFLUX: case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA: case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA_EXTENDED: + case USB_DEVICE_ID_RAZER_GOLIATHUS_CHROMA_3XL: report = razer_chroma_extended_matrix_effect_spectrum(VARSTORE, ZERO_LED); break;