diff --git a/Controllers/RazerController/RazerController/RazerController.cpp b/Controllers/RazerController/RazerController/RazerController.cpp index e534ca913..09b1242c3 100644 --- a/Controllers/RazerController/RazerController/RazerController.cpp +++ b/Controllers/RazerController/RazerController/RazerController.cpp @@ -127,6 +127,8 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha case RAZER_NAGA_LEFT_HANDED_PID: case RAZER_NAGA_PRO_V2_WIRED_PID: case RAZER_NAGA_PRO_V2_WIRELESS_PID: + case RAZER_NAGA_PRO_V3_WIRED_PID: + case RAZER_NAGA_PRO_V3_WIRELESS_PID: case RAZER_O11_DYNAMIC_PID: case RAZER_STRIDER_CHROMA_PID: case RAZER_TARTARUS_PRO_PID: diff --git a/Controllers/RazerController/RazerControllerDetect.cpp b/Controllers/RazerController/RazerControllerDetect.cpp index ba8ab4bc3..f64e6ac72 100644 --- a/Controllers/RazerController/RazerControllerDetect.cpp +++ b/Controllers/RazerController/RazerControllerDetect.cpp @@ -12,6 +12,7 @@ #include #include #include "DetectionManager.h" +#include "LogManager.h" #include "RazerController.h" #include "RazerDevices.h" #include "RazerKrakenController.h" @@ -33,6 +34,10 @@ DetectedControllers DetectRazerControllers(hid_device_info* info, const std::str dev = hid_open_path(info->path); + LOG_INFO("[Razer] %s if=%d up=%04x u=%04x %s", name.c_str(), + info->interface_number, info->usage_page, info->usage, info->path); + if(!dev) LOG_WARNING("[Razer] hid_open_path failed"); + if(dev) { RazerController* controller = new RazerController(dev, dev, info->path, info->product_id, name); @@ -366,6 +371,8 @@ REGISTER_HID_DETECTOR_IPU("Razer Naga Pro (Wired)", Det REGISTER_HID_DETECTOR_IPU("Razer Naga Pro (Wireless)", DetectRazerControllers, RAZER_VID, RAZER_NAGA_PRO_WIRELESS_PID, 0x00, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Naga Pro V2 (Wired)", DetectRazerControllers, RAZER_VID, RAZER_NAGA_PRO_V2_WIRED_PID, 0x00, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Naga Pro V2 (Wireless)", DetectRazerControllers, RAZER_VID, RAZER_NAGA_PRO_V2_WIRELESS_PID, 0x00, 0x01, 0x02); +REGISTER_HID_DETECTOR_PU("Razer Naga Pro V3 (Wired)", DetectRazerControllers, RAZER_VID, RAZER_NAGA_PRO_V3_WIRED_PID, 0x01, 0x03); +REGISTER_HID_DETECTOR_PU("Razer Naga Pro V3 (Wireless)", DetectRazerControllers, RAZER_VID, RAZER_NAGA_PRO_V3_WIRELESS_PID, 0x01, 0x03); REGISTER_HID_DETECTOR_IPU("Razer Viper", DetectRazerControllers, RAZER_VID, RAZER_VIPER_PID, 0x00, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Viper 8kHz", DetectRazerControllers, RAZER_VID, RAZER_VIPER_8KHZ_PID, 0x00, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Viper Mini", DetectRazerControllers, RAZER_VID, RAZER_VIPER_MINI_PID, 0x00, 0x01, 0x02); diff --git a/Controllers/RazerController/RazerDevices.cpp b/Controllers/RazerController/RazerDevices.cpp index e2003d7e3..34129d95a 100644 --- a/Controllers/RazerController/RazerDevices.cpp +++ b/Controllers/RazerController/RazerDevices.cpp @@ -7222,6 +7222,82 @@ static const razer_device naga_pro_v2_wireless_device = NULL }; + +/*-------------------------------------------------------------*\ +| Razer Naga Pro V3 1532:00E7 (wired) 1532:00E8 (wireless) | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Numpad" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone naga_pro_v3_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone naga_pro_v3_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone naga_pro_v3_numpad_zone = +{ + "Numpad", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device naga_pro_v3_wired_device = +{ + "Razer Naga Pro V3 (Wired)", + RAZER_NAGA_PRO_V3_WIRED_PID, + DEVICE_TYPE_MOUSE, + RAZER_MATRIX_TYPE_EXTENDED, + 0x1F, + 1, + 3, + { + &naga_pro_v3_logo_zone, + &naga_pro_v3_scroll_wheel_zone, + &naga_pro_v3_numpad_zone, + NULL, + NULL, + NULL + }, + NULL +}; + +static const razer_device naga_pro_v3_wireless_device = +{ + "Razer Naga Pro V3 (Wireless)", + RAZER_NAGA_PRO_V3_WIRELESS_PID, + DEVICE_TYPE_MOUSE, + RAZER_MATRIX_TYPE_EXTENDED, + 0x1F, + 1, + 3, + { + &naga_pro_v3_logo_zone, + &naga_pro_v3_scroll_wheel_zone, + &naga_pro_v3_numpad_zone, + NULL, + NULL, + NULL + }, + NULL +}; + /*-------------------------------------------------------------*\ | Razer Viper 8kHz 1532:0091 | | | @@ -9590,6 +9666,8 @@ const razer_device* razer_device_list[] = &naga_pro_wireless_device, &naga_pro_v2_wired_device, &naga_pro_v2_wireless_device, + &naga_pro_v3_wired_device, + &naga_pro_v3_wireless_device, &viper_8khz_device, &viper_mini_device, &viper_ultimate_wired_device, diff --git a/Controllers/RazerController/RazerDevices.h b/Controllers/RazerController/RazerDevices.h index 40e62f51f..847c2bb71 100644 --- a/Controllers/RazerController/RazerDevices.h +++ b/Controllers/RazerController/RazerDevices.h @@ -213,6 +213,8 @@ #define RAZER_NAGA_PRO_WIRELESS_PID 0x0090 #define RAZER_NAGA_PRO_V2_WIRED_PID 0x00A7 #define RAZER_NAGA_PRO_V2_WIRELESS_PID 0x00A8 +#define RAZER_NAGA_PRO_V3_WIRED_PID 0x00E7 +#define RAZER_NAGA_PRO_V3_WIRELESS_PID 0x00E8 #define RAZER_OROCHI_2011_PID 0x0013 #define RAZER_OROCHI_2013_PID 0x0039 #define RAZER_OROCHI_CHROMA_PID 0x0048