diff --git a/Controllers/RazerController/RazerController.cpp b/Controllers/RazerController/RazerController.cpp index 2212c561..5e69d3c3 100644 --- a/Controllers/RazerController/RazerController.cpp +++ b/Controllers/RazerController/RazerController.cpp @@ -55,6 +55,7 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha case RAZER_CYNOSA_V2_PID: case RAZER_ORNATA_CHROMA_V2_PID: case RAZER_TARTARUS_CHROMA_PID: + case RAZER_TARTARUS_PRO_PID: case RAZER_TARTARUS_V2_PID: case RAZER_DEATHADDER_CHROMA_PID: case RAZER_DEATHADDER_ESSENTIAL_V2_PID: @@ -137,6 +138,7 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha case RAZER_NAGA_LEFT_HANDED_PID: case RAZER_O11_DYNAMIC_PID: case RAZER_STRIDER_CHROMA_PID: + case RAZER_TARTARUS_PRO_PID: case RAZER_TARTARUS_V2_PID: dev_led_id = RAZER_LED_ID_ZERO; break; @@ -287,6 +289,7 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha case RAZER_ORNATA_CHROMA_V2_PID: case RAZER_SEIREN_EMOTE_PID: case RAZER_STRIDER_CHROMA_PID: + case RAZER_TARTARUS_PRO_PID: case RAZER_TARTARUS_V2_PID: case RAZER_TIAMAT_71_V2_PID: case RAZER_VIPER_8KHZ_PID: @@ -580,6 +583,7 @@ bool RazerController::SupportsWave() case RAZER_HUNTSMAN_V2_TKL_PID: case RAZER_HUNTSMAN_V2_PID: case RAZER_ORBWEAVER_CHROMA_PID: + case RAZER_TARTARUS_PRO_PID: case RAZER_TARTARUS_V2_PID: /*-----------------------------------------------------*\ diff --git a/Controllers/RazerController/RazerControllerDetect.cpp b/Controllers/RazerController/RazerControllerDetect.cpp index 12b732c1..afcd1fcb 100644 --- a/Controllers/RazerController/RazerControllerDetect.cpp +++ b/Controllers/RazerController/RazerControllerDetect.cpp @@ -359,6 +359,7 @@ REGISTER_HID_DETECTOR_IPU("Razer Viper Ultimate (Wireless)", Det \*-----------------------------------------------------------------------------------------------------*/ REGISTER_HID_DETECTOR_IPU("Razer Orbweaver Chroma", DetectRazerControllers, RAZER_VID, RAZER_ORBWEAVER_CHROMA_PID, 0x02, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Tartarus Chroma", DetectRazerControllers, RAZER_VID, RAZER_TARTARUS_CHROMA_PID, 0x02, 0x01, 0x02); +REGISTER_HID_DETECTOR_IPU("Razer Tartarus Pro", DetectRazerControllers, RAZER_VID, RAZER_TARTARUS_PRO_PID, 0x02, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Tartarus V2", DetectRazerControllers, RAZER_VID, RAZER_TARTARUS_V2_PID, 0x02, 0x01, 0x02); /*-----------------------------------------------------------------------------------------------------*\ diff --git a/Controllers/RazerController/RazerDevices.cpp b/Controllers/RazerController/RazerDevices.cpp index be44fe36..7a22896a 100644 --- a/Controllers/RazerController/RazerDevices.cpp +++ b/Controllers/RazerController/RazerDevices.cpp @@ -2449,6 +2449,36 @@ static const razer_key tartarus_v2_keymap[] = { 0, 3, 5, "Key: 20" }, }; +#define TARTARUS_PRO_KEYMAP_SIZE (sizeof(tartarus_pro_keymap) / sizeof(tartarus_pro_keymap[0])) + +static const razer_key tartarus_pro_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 0, "Keypad 01" }, + { 0, 0, 1, "Keypad 02" }, + { 0, 0, 2, "Keypad 03" }, + { 0, 0, 3, "Keypad 04" }, + { 0, 0, 4, "Keypad 05" }, + { 0, 1, 0, "Keypad 06" }, + { 0, 1, 1, "Keypad 07" }, + { 0, 1, 2, "Keypad 08" }, + { 0, 1, 3, "Keypad 09" }, + { 0, 1, 4, "Keypad 10" }, + { 0, 2, 0, "Keypad 11" }, + { 0, 2, 1, "Keypad 12" }, + { 0, 2, 2, "Keypad 13" }, + { 0, 2, 3, "Keypad 14" }, + { 0, 2, 4, "Keypad 15" }, + { 0, 3, 0, "Keypad 16" }, + { 0, 3, 1, "Keypad 17" }, + { 0, 3, 2, "Keypad 18" }, + { 0, 3, 3, "Keypad 19" }, + { 0, 3, 4, "Key Scroll Wheel" }, + { 1, 0, 0, "Keypad 20" }, +}; + /*-------------------------------------------------------------------------*\ | KEYBOARDS | \*-------------------------------------------------------------------------*/ @@ -6739,7 +6769,7 @@ static const razer_device orbweaver_chroma_device = { "Razer Orbweaver Chroma", RAZER_ORBWEAVER_CHROMA_PID, - DEVICE_TYPE_KEYBOARD, + DEVICE_TYPE_KEYPAD, true, 4, 5, @@ -6774,7 +6804,7 @@ static const razer_device tartarus_chroma_device = { "Razer Tartarus Chroma", RAZER_TARTARUS_CHROMA_PID, - DEVICE_TYPE_KEYBOARD, + DEVICE_TYPE_KEYPAD, true, 1, 1, @@ -6790,6 +6820,54 @@ static const razer_device tartarus_chroma_device = 0 }; +/*-------------------------------------------------------------*\ +| Razer Tartarus Pro 1532:0244 | +| | +| Zone "Keypad" | +| Matrix | +| 4 Rows, 5 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone tartarus_pro_zone = +{ + "Keypad", + ZONE_TYPE_MATRIX, + 4, + 5 +}; + +static const razer_zone tartarus_pro_K20 = +{ + "Keypad LED 20", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device tartarus_pro_device = +{ + "Razer Tartarus Pro", + RAZER_TARTARUS_PRO_PID, + DEVICE_TYPE_KEYPAD, + true, + 1, + 21, + { + &tartarus_pro_zone, + &tartarus_pro_K20, + NULL, + NULL, + NULL, + NULL + }, + /*-------------------------------------------------------------*\ + Need to be Implemented to read upper defined keymap(Not working now) + tartarus_pro_keymap, + TARTARUS_PRO_KEYMAP_SIZE + \*-------------------------------------------------------------*/ + NULL, + 0 +}; + /*-------------------------------------------------------------*\ | Razer Tartarus V2 1532:0208 | | | @@ -6809,7 +6887,7 @@ static const razer_device tartarus_v2_device = { "Razer Tartarus V2", RAZER_TARTARUS_V2_PID, - DEVICE_TYPE_KEYBOARD, + DEVICE_TYPE_KEYPAD, true, 4, 6, @@ -8126,6 +8204,7 @@ const razer_device* razer_device_list[] = \*-----------------------------------------------------------------*/ &orbweaver_chroma_device, &tartarus_chroma_device, + &tartarus_pro_device, &tartarus_v2_device, /*-----------------------------------------------------------------*\ | MOUSEMATS | diff --git a/Controllers/RazerController/RazerDevices.h b/Controllers/RazerController/RazerDevices.h index dcf721b1..c19c7c07 100644 --- a/Controllers/RazerController/RazerDevices.h +++ b/Controllers/RazerController/RazerDevices.h @@ -97,6 +97,7 @@ #define RAZER_ORNATA_CHROMA_PID 0x021E #define RAZER_ORNATA_CHROMA_V2_PID 0x025D #define RAZER_TARTARUS_CHROMA_PID 0x0208 +#define RAZER_TARTARUS_PRO_PID 0x0244 #define RAZER_TARTARUS_V2_PID 0x022B /*-----------------------------------------------------*\ diff --git a/RGBController/RGBController.cpp b/RGBController/RGBController.cpp index 97080b78..90049efb 100644 --- a/RGBController/RGBController.cpp +++ b/RGBController/RGBController.cpp @@ -1644,6 +1644,10 @@ std::string device_type_to_str(device_type type) return "Virtual"; case DEVICE_TYPE_CASE: return "Case"; + case DEVICE_TYPE_ACCESSORY: + return "Accessory"; + case DEVICE_TYPE_KEYPAD: + return "Keypad"; default: return "Unknown"; } diff --git a/RGBController/RGBController.h b/RGBController/RGBController.h index fcddfa44..f4c2f853 100644 --- a/RGBController/RGBController.h +++ b/RGBController/RGBController.h @@ -179,6 +179,7 @@ enum DEVICE_TYPE_CASE, DEVICE_TYPE_MICROPHONE, DEVICE_TYPE_ACCESSORY, + DEVICE_TYPE_KEYPAD, DEVICE_TYPE_UNKNOWN, }; diff --git a/qt/OpenRGBDialog2.cpp b/qt/OpenRGBDialog2.cpp index 835ea9a5..551ab874 100644 --- a/qt/OpenRGBDialog2.cpp +++ b/qt/OpenRGBDialog2.cpp @@ -87,6 +87,9 @@ static QString GetIconString(device_type type, bool dark) case DEVICE_TYPE_CASE: filename = "case"; break; + case DEVICE_TYPE_KEYPAD: + filename = "keypad"; + break; default: filename = "unknown"; break; diff --git a/qt/keypad.png b/qt/keypad.png new file mode 100644 index 00000000..e8048293 Binary files /dev/null and b/qt/keypad.png differ diff --git a/qt/keypad_dark.png b/qt/keypad_dark.png new file mode 100644 index 00000000..0becdd39 Binary files /dev/null and b/qt/keypad_dark.png differ diff --git a/qt/resources.qrc b/qt/resources.qrc index cee5b9bb..5b1ec874 100644 --- a/qt/resources.qrc +++ b/qt/resources.qrc @@ -54,6 +54,8 @@ microphone_dark.png accessory.png accessory_dark.png + keypad.png + keypad_dark.png unknown.png unknown_dark.png