mirror of
https://github.com/CalcProgrammer1/OpenRGB.git
synced 2026-05-04 12:43:39 -04:00
Add Razer Chroma Addressable RGB Controller to RazerController
This commit is contained in:
@@ -13,9 +13,10 @@
|
||||
|
||||
using namespace std::chrono_literals;
|
||||
|
||||
RazerController::RazerController(hid_device* dev_handle, const char* path, unsigned short pid, std::string dev_name)
|
||||
RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_handle, const char* path, unsigned short pid, std::string dev_name)
|
||||
{
|
||||
dev = dev_handle;
|
||||
dev_argb = dev_argb_handle;
|
||||
dev_pid = pid;
|
||||
location = path;
|
||||
name = dev_name;
|
||||
@@ -323,6 +324,42 @@ razer_report RazerController::razer_create_brightness_standard_report(unsigned c
|
||||
return report;
|
||||
}
|
||||
|
||||
razer_argb_report RazerController::razer_create_custom_frame_argb_report(unsigned char row_index, unsigned char stop_col, unsigned char* rgb_data)
|
||||
{
|
||||
razer_argb_report report;
|
||||
|
||||
/*---------------------------------------------------------*\
|
||||
| Zero out the new report |
|
||||
\*---------------------------------------------------------*/
|
||||
memset(&report, 0, sizeof(razer_argb_report));
|
||||
|
||||
/*---------------------------------------------------------*\
|
||||
| Fill in report header |
|
||||
\*---------------------------------------------------------*/
|
||||
report.hid_id = 0;
|
||||
|
||||
if(row_index < 5)
|
||||
{
|
||||
report.report_id = 0x04;
|
||||
}
|
||||
else
|
||||
{
|
||||
report.report_id = 0x84;
|
||||
}
|
||||
|
||||
report.channel_1 = row_index;
|
||||
report.channel_2 = row_index;
|
||||
report.pad = 0;
|
||||
report.last_idx = stop_col;
|
||||
|
||||
/*---------------------------------------------------------*\
|
||||
| Copy in the RGB data |
|
||||
\*---------------------------------------------------------*/
|
||||
memcpy(&report.color_data, rgb_data, (stop_col + 1) * 3);
|
||||
|
||||
return report;
|
||||
}
|
||||
|
||||
razer_report RazerController::razer_create_custom_frame_linear_report(unsigned char start_col, unsigned char stop_col, unsigned char* rgb_data)
|
||||
{
|
||||
razer_report report = razer_create_report(0x03, 0x0C, 0x32);
|
||||
@@ -610,6 +647,29 @@ void RazerController::razer_set_brightness(unsigned char brightness)
|
||||
default:
|
||||
report = razer_create_brightness_standard_report(RAZER_STORAGE_NO_SAVE, dev_led_id, brightness);
|
||||
break;
|
||||
|
||||
/*-------------------------------------------------*\
|
||||
| Razer Chroma ARGB controller needs all channels |
|
||||
| adjusted |
|
||||
\*-------------------------------------------------*/
|
||||
case RAZER_CHROMA_ADDRESSABLE_RGB_CONTROLLER_PID:
|
||||
report = razer_create_brightness_extended_matrix_report(RAZER_STORAGE_NO_SAVE, RAZER_LED_ID_ARGB_CH_1, brightness);
|
||||
razer_usb_send(&report);
|
||||
|
||||
report = razer_create_brightness_extended_matrix_report(RAZER_STORAGE_NO_SAVE, RAZER_LED_ID_ARGB_CH_2, brightness);
|
||||
razer_usb_send(&report);
|
||||
|
||||
report = razer_create_brightness_extended_matrix_report(RAZER_STORAGE_NO_SAVE, RAZER_LED_ID_ARGB_CH_3, brightness);
|
||||
razer_usb_send(&report);
|
||||
|
||||
report = razer_create_brightness_extended_matrix_report(RAZER_STORAGE_NO_SAVE, RAZER_LED_ID_ARGB_CH_4, brightness);
|
||||
razer_usb_send(&report);
|
||||
|
||||
report = razer_create_brightness_extended_matrix_report(RAZER_STORAGE_NO_SAVE, RAZER_LED_ID_ARGB_CH_5, brightness);
|
||||
razer_usb_send(&report);
|
||||
|
||||
report = razer_create_brightness_extended_matrix_report(RAZER_STORAGE_NO_SAVE, RAZER_LED_ID_ARGB_CH_6, brightness);
|
||||
break;
|
||||
}
|
||||
|
||||
razer_usb_send(&report);
|
||||
@@ -764,6 +824,11 @@ void RazerController::razer_set_custom_frame(unsigned char row_index, unsigned c
|
||||
default:
|
||||
report = razer_create_custom_frame_standard_matrix_report(row_index, start_col, stop_col, rgb_data);
|
||||
break;
|
||||
|
||||
case RAZER_CHROMA_ADDRESSABLE_RGB_CONTROLLER_PID:
|
||||
razer_argb_report argb_report = razer_create_custom_frame_argb_report(row_index, stop_col, rgb_data);
|
||||
razer_usb_send_argb(&argb_report);
|
||||
return;
|
||||
}
|
||||
|
||||
razer_usb_send(&report);
|
||||
@@ -829,13 +894,8 @@ void RazerController::razer_set_mode_custom()
|
||||
report = razer_create_mode_custom_extended_matrix_report();
|
||||
break;
|
||||
|
||||
/*-------------------------------------------------*\
|
||||
| These devices use a standard matrix report and |
|
||||
| transaction ID 0x80 |
|
||||
\*-------------------------------------------------*/
|
||||
case RAZER_MAMBA_WIRELESS_PID:
|
||||
report = razer_create_mode_custom_standard_matrix_report(RAZER_STORAGE_NO_SAVE);
|
||||
break;
|
||||
case RAZER_CHROMA_ADDRESSABLE_RGB_CONTROLLER_PID:
|
||||
return;
|
||||
|
||||
/*-------------------------------------------------*\
|
||||
| These devices use individual LED effect reports |
|
||||
@@ -868,6 +928,7 @@ void RazerController::razer_set_mode_custom()
|
||||
case RAZER_CHROMA_MUG_PID:
|
||||
case RAZER_CORE_PID:
|
||||
case RAZER_FIREFLY_PID:
|
||||
case RAZER_MAMBA_WIRELESS_PID:
|
||||
case RAZER_NAGA_CHROMA_PID:
|
||||
case RAZER_NAGA_HEX_V2_PID:
|
||||
case RAZER_ORBWEAVER_CHROMA_PID:
|
||||
@@ -893,6 +954,7 @@ void RazerController::razer_set_mode_none()
|
||||
case RAZER_BLACKWIDOW_ELITE_PID:
|
||||
case RAZER_BLACKWIDOW_ESSENTIAL_PID:
|
||||
case RAZER_BLACKWIDOW_LITE_PID:
|
||||
case RAZER_CHROMA_ADDRESSABLE_RGB_CONTROLLER_PID:
|
||||
case RAZER_CHROMA_BASE_PID:
|
||||
case RAZER_CHROMA_HDK_PID:
|
||||
case RAZER_CYNOSA_CHROMA_PID:
|
||||
@@ -945,6 +1007,7 @@ void RazerController::razer_set_mode_spectrum_cycle()
|
||||
case RAZER_BASE_STATION_V2_CHROMA_PID:
|
||||
case RAZER_BLACKWIDOW_2019_PID:
|
||||
case RAZER_BLACKWIDOW_ELITE_PID:
|
||||
case RAZER_CHROMA_ADDRESSABLE_RGB_CONTROLLER_PID:
|
||||
case RAZER_CHROMA_BASE_PID:
|
||||
case RAZER_CHROMA_HDK_PID:
|
||||
case RAZER_CYNOSA_CHROMA_PID:
|
||||
@@ -996,6 +1059,7 @@ void RazerController::razer_set_mode_static(unsigned char red, unsigned char grn
|
||||
case RAZER_BASE_STATION_V2_CHROMA_PID:
|
||||
case RAZER_BLACKWIDOW_2019_PID:
|
||||
case RAZER_BLACKWIDOW_ELITE_PID:
|
||||
case RAZER_CHROMA_ADDRESSABLE_RGB_CONTROLLER_PID:
|
||||
case RAZER_CHROMA_BASE_PID:
|
||||
case RAZER_CHROMA_HDK_PID:
|
||||
case RAZER_CYNOSA_CHROMA_PID:
|
||||
@@ -1050,6 +1114,7 @@ void RazerController::razer_set_mode_wave()
|
||||
case RAZER_BLACKWIDOW_2019_PID:
|
||||
case RAZER_BLACKWIDOW_ELITE_PID:
|
||||
case RAZER_BLACKWIDOW_ESSENTIAL_PID:
|
||||
case RAZER_CHROMA_ADDRESSABLE_RGB_CONTROLLER_PID:
|
||||
case RAZER_CHROMA_BASE_PID:
|
||||
case RAZER_CHROMA_HDK_PID:
|
||||
case RAZER_CYNOSA_CHROMA_PID:
|
||||
@@ -1099,3 +1164,8 @@ int RazerController::razer_usb_send(razer_report* report)
|
||||
|
||||
return hid_send_feature_report(dev, (unsigned char*)report, sizeof(*report));
|
||||
}
|
||||
|
||||
int RazerController::razer_usb_send_argb(razer_argb_report* report)
|
||||
{
|
||||
return hid_send_feature_report(dev_argb, (unsigned char*)report, sizeof(*report));
|
||||
}
|
||||
|
||||
@@ -79,6 +79,12 @@ enum
|
||||
RAZER_LED_ID_PROFILE_BLUE = 0x0E,
|
||||
RAZER_LED_ID_RIGHT_SIDE = 0x10,
|
||||
RAZER_LED_ID_LEFT_SIDE = 0x11,
|
||||
RAZER_LED_ID_ARGB_CH_1 = 0x1A,
|
||||
RAZER_LED_ID_ARGB_CH_2 = 0x1B,
|
||||
RAZER_LED_ID_ARGB_CH_3 = 0x1C,
|
||||
RAZER_LED_ID_ARGB_CH_4 = 0x1D,
|
||||
RAZER_LED_ID_ARGB_CH_5 = 0x1E,
|
||||
RAZER_LED_ID_ARGB_CH_6 = 0x1F,
|
||||
};
|
||||
|
||||
/*---------------------------------------------------------*\
|
||||
@@ -124,10 +130,24 @@ PACK(typedef struct razer_report
|
||||
unsigned char reserved;
|
||||
});
|
||||
|
||||
/*---------------------------------------------------------*\
|
||||
| Razer ARGB Report Type (taken from OpenRazer) |
|
||||
\*---------------------------------------------------------*/
|
||||
PACK(typedef struct razer_argb_report
|
||||
{
|
||||
unsigned char hid_id;
|
||||
unsigned char report_id;
|
||||
unsigned char channel_1;
|
||||
unsigned char channel_2;
|
||||
unsigned char pad;
|
||||
unsigned char last_idx;
|
||||
unsigned char color_data[315];
|
||||
});
|
||||
|
||||
class RazerController
|
||||
{
|
||||
public:
|
||||
RazerController(hid_device* dev_handle, const char* path, unsigned short pid, std::string dev_name);
|
||||
RazerController(hid_device* dev_handle, hid_device* dev_argb_handle, const char* path, unsigned short pid, std::string dev_name);
|
||||
~RazerController();
|
||||
|
||||
unsigned int GetDeviceIndex();
|
||||
@@ -146,6 +166,7 @@ public:
|
||||
|
||||
private:
|
||||
hid_device* dev;
|
||||
hid_device* dev_argb;
|
||||
unsigned short dev_pid;
|
||||
|
||||
/*---------------------------------------------------------*\
|
||||
@@ -182,6 +203,7 @@ private:
|
||||
|
||||
razer_report razer_create_brightness_extended_matrix_report(unsigned char variable_storage, unsigned char led_id, unsigned char brightness);
|
||||
razer_report razer_create_brightness_standard_report(unsigned char variable_storage, unsigned char led_id, unsigned char brightness);
|
||||
razer_argb_report razer_create_custom_frame_argb_report(unsigned char row_index, unsigned char stop_col, unsigned char* rgb_data);
|
||||
razer_report razer_create_custom_frame_linear_report(unsigned char start_col, unsigned char stop_col, unsigned char* rgb_data);
|
||||
razer_report razer_create_custom_frame_extended_matrix_report(unsigned char row_index, unsigned char start_col, unsigned char stop_col, unsigned char* rgb_data);
|
||||
razer_report razer_create_custom_frame_standard_matrix_report(unsigned char row_index, unsigned char start_col, unsigned char stop_col, unsigned char* rgb_data);
|
||||
@@ -216,6 +238,6 @@ private:
|
||||
|
||||
int razer_usb_receive(razer_report* report);
|
||||
int razer_usb_send(razer_report* report);
|
||||
|
||||
int razer_usb_send_argb(razer_argb_report* report);
|
||||
|
||||
};
|
||||
|
||||
@@ -68,75 +68,123 @@ void DetectRazerControllers(hid_device_info* info, const std::string& name)
|
||||
|
||||
if(dev)
|
||||
{
|
||||
RazerController* controller = new RazerController(dev, info->path, info->product_id, name);
|
||||
RazerController* controller = new RazerController(dev, dev, info->path, info->product_id, name);
|
||||
|
||||
RGBController_Razer* rgb_controller = new RGBController_Razer(controller);
|
||||
ResourceManager::get()->RegisterRGBController(rgb_controller);
|
||||
}
|
||||
} /* DetectRazerControllers() */
|
||||
|
||||
void DetectRazerARGBControllers(hid_device_info* info, const std::string& name)
|
||||
{
|
||||
/*-------------------------------------------------------------------------------------------------*\
|
||||
| Razer's ARGB controller uses two different interfaces, one for 90-byte Razer report packets and |
|
||||
| one for 320-byte ARGB packets. Interface 0 for 90-byte and interface 1 for 320-byte. |
|
||||
\*-------------------------------------------------------------------------------------------------*/
|
||||
#ifdef _WIN32
|
||||
hid_device* dev_interface_0 = nullptr;
|
||||
hid_device* dev_interface_1 = nullptr;
|
||||
hid_device_info* info_temp = info;
|
||||
while(info_temp)
|
||||
{
|
||||
if(info_temp->vendor_id == info->vendor_id // constant LOGITECH_VID
|
||||
&& info_temp->product_id == info->product_id ) // NON-constant
|
||||
{
|
||||
if(info_temp->interface_number == 0)
|
||||
{
|
||||
dev_interface_0 = hid_open_path(info_temp->path);
|
||||
}
|
||||
else if(info_temp->interface_number == 1)
|
||||
{
|
||||
dev_interface_1 = hid_open_path(info_temp->path);
|
||||
}
|
||||
}
|
||||
if(dev_interface_0 && dev_interface_1)
|
||||
{
|
||||
break;
|
||||
}
|
||||
info_temp = info_temp->next;
|
||||
}
|
||||
if(dev_interface_0 && dev_interface_1)
|
||||
{
|
||||
RazerController* controller = new RazerController(dev_interface_0, dev_interface_1, info->path, info->product_id, name);
|
||||
RGBController_Razer* rgb_controller = new RGBController_Razer(controller);
|
||||
ResourceManager::get()->RegisterRGBController(rgb_controller);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Not all of them could be opened, do some cleanup
|
||||
hid_close(dev_interface_0);
|
||||
hid_close(dev_interface_1);
|
||||
}
|
||||
#else
|
||||
DetectRazerControllers(info, name);
|
||||
#endif
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------------------------------------*\
|
||||
| Keyboards |
|
||||
\*-----------------------------------------------------------------------------------------------------*/
|
||||
REGISTER_HID_DETECTOR_PU("Razer Blackwidow Chroma", DetectRazerControllers, RAZER_VID, RAZER_BLACKWIDOW_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Blackwidow Chroma V2", DetectRazerControllers, RAZER_VID, RAZER_BLACKWIDOW_CHROMA_V2_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Blackwidow Chroma Tournament Edition", DetectRazerControllers, RAZER_VID, RAZER_BLACKWIDOW_CHROMA_TE_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Blackwidow 2019", DetectRazerControllers, RAZER_VID, RAZER_BLACKWIDOW_2019_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Blackwidow Overwatch", DetectRazerControllers, RAZER_VID, RAZER_BLACKWIDOW_OVERWATCH_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Blackwidow X Chroma", DetectRazerControllers, RAZER_VID, RAZER_BLACKWIDOW_X_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Blackwidow X Chroma Tournament Edition", DetectRazerControllers, RAZER_VID, RAZER_BLACKWIDOW_X_CHROMA_TE_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Cynosa Chroma", DetectRazerControllers, RAZER_VID, RAZER_CYNOSA_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Cynosa Chroma V2", DetectRazerControllers, RAZER_VID, RAZER_CYNOSA_V2_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Deathstalker Chroma", DetectRazerControllers, RAZER_VID, RAZER_DEATHSTALKER_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Huntsman", DetectRazerControllers, RAZER_VID, RAZER_HUNTSMAN_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Huntsman Elite", DetectRazerControllers, RAZER_VID, RAZER_HUNTSMAN_ELITE_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Huntsman Tournament Edition", DetectRazerControllers, RAZER_VID, RAZER_HUNTSMAN_TE_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Ornata Chroma", DetectRazerControllers, RAZER_VID, RAZER_ORNATA_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Blackwidow Chroma", DetectRazerControllers, RAZER_VID, RAZER_BLACKWIDOW_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Blackwidow Chroma V2", DetectRazerControllers, RAZER_VID, RAZER_BLACKWIDOW_CHROMA_V2_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Blackwidow Chroma Tournament Edition", DetectRazerControllers, RAZER_VID, RAZER_BLACKWIDOW_CHROMA_TE_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Blackwidow 2019", DetectRazerControllers, RAZER_VID, RAZER_BLACKWIDOW_2019_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Blackwidow Overwatch", DetectRazerControllers, RAZER_VID, RAZER_BLACKWIDOW_OVERWATCH_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Blackwidow X Chroma", DetectRazerControllers, RAZER_VID, RAZER_BLACKWIDOW_X_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Blackwidow X Chroma Tournament Edition", DetectRazerControllers, RAZER_VID, RAZER_BLACKWIDOW_X_CHROMA_TE_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Cynosa Chroma", DetectRazerControllers, RAZER_VID, RAZER_CYNOSA_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Cynosa Chroma V2", DetectRazerControllers, RAZER_VID, RAZER_CYNOSA_V2_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Deathstalker Chroma", DetectRazerControllers, RAZER_VID, RAZER_DEATHSTALKER_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Huntsman", DetectRazerControllers, RAZER_VID, RAZER_HUNTSMAN_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Huntsman Elite", DetectRazerControllers, RAZER_VID, RAZER_HUNTSMAN_ELITE_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Huntsman Tournament Edition", DetectRazerControllers, RAZER_VID, RAZER_HUNTSMAN_TE_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Ornata Chroma", DetectRazerControllers, RAZER_VID, RAZER_ORNATA_CHROMA_PID, 1, 2);
|
||||
|
||||
/*-----------------------------------------------------------------------------------------------------*\
|
||||
| Keypads |
|
||||
\*-----------------------------------------------------------------------------------------------------*/
|
||||
REGISTER_HID_DETECTOR_PU("Razer Orbweaver Chroma", DetectRazerControllers, RAZER_VID, RAZER_ORBWEAVER_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Tartarus Chroma", DetectRazerControllers, RAZER_VID, RAZER_TARTARUS_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Tartarus V2", DetectRazerControllers, RAZER_VID, RAZER_TARTARUS_V2_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Orbweaver Chroma", DetectRazerControllers, RAZER_VID, RAZER_ORBWEAVER_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Tartarus Chroma", DetectRazerControllers, RAZER_VID, RAZER_TARTARUS_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Tartarus V2", DetectRazerControllers, RAZER_VID, RAZER_TARTARUS_V2_PID, 1, 2);
|
||||
|
||||
/*-----------------------------------------------------------------------------------------------------*\
|
||||
| Laptops |
|
||||
\*-----------------------------------------------------------------------------------------------------*/
|
||||
REGISTER_HID_DETECTOR_PU("Razer Blade Pro", DetectRazerControllers, RAZER_VID, RAZER_BLADE_PRO_LATE_2016_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Blade Pro (2017)", DetectRazerControllers, RAZER_VID, RAZER_BLADE_PRO_2017_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Blade Stealth", DetectRazerControllers, RAZER_VID, RAZER_BLADE_STEALTH_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Blade Pro", DetectRazerControllers, RAZER_VID, RAZER_BLADE_PRO_LATE_2016_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Blade Pro (2017)", DetectRazerControllers, RAZER_VID, RAZER_BLADE_PRO_2017_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Blade Stealth", DetectRazerControllers, RAZER_VID, RAZER_BLADE_STEALTH_PID, 1, 2);
|
||||
|
||||
/*-----------------------------------------------------------------------------------------------------*\
|
||||
| Mice |
|
||||
\*-----------------------------------------------------------------------------------------------------*/
|
||||
REGISTER_HID_DETECTOR_PU("Razer Basilisk", DetectRazerControllers, RAZER_VID, RAZER_BASILISK_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Basilisk Essential", DetectRazerControllers, RAZER_VID, RAZER_BASILISK_ESSENTIAL_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Deathadder Chroma", DetectRazerControllers, RAZER_VID, RAZER_DEATHADDER_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Deathadder Elite", DetectRazerControllers, RAZER_VID, RAZER_DEATHADDER_ELITE_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Deathadder V2", DetectRazerControllers, RAZER_VID, RAZER_DEATHADDER_V2_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Diamondback", DetectRazerControllers, RAZER_VID, RAZER_DIAMONDBACK_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Mamba Elite", DetectRazerControllers, RAZER_VID, RAZER_MAMBA_ELITE_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Mamba Tournament Edition", DetectRazerControllers, RAZER_VID, RAZER_MAMBA_TE_WIRED_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Naga Chroma", DetectRazerControllers, RAZER_VID, RAZER_NAGA_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Naga Epic Chroma", DetectRazerControllers, RAZER_VID, RAZER_NAGA_EPIC_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Naga Trinity", DetectRazerControllers, RAZER_VID, RAZER_NAGA_TRINITY_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Basilisk", DetectRazerControllers, RAZER_VID, RAZER_BASILISK_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Basilisk Essential", DetectRazerControllers, RAZER_VID, RAZER_BASILISK_ESSENTIAL_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Deathadder Chroma", DetectRazerControllers, RAZER_VID, RAZER_DEATHADDER_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Deathadder Elite", DetectRazerControllers, RAZER_VID, RAZER_DEATHADDER_ELITE_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Deathadder V2", DetectRazerControllers, RAZER_VID, RAZER_DEATHADDER_V2_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Diamondback", DetectRazerControllers, RAZER_VID, RAZER_DIAMONDBACK_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Mamba Elite", DetectRazerControllers, RAZER_VID, RAZER_MAMBA_ELITE_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Mamba Tournament Edition", DetectRazerControllers, RAZER_VID, RAZER_MAMBA_TE_WIRED_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Naga Chroma", DetectRazerControllers, RAZER_VID, RAZER_NAGA_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Naga Epic Chroma", DetectRazerControllers, RAZER_VID, RAZER_NAGA_EPIC_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Naga Trinity", DetectRazerControllers, RAZER_VID, RAZER_NAGA_TRINITY_PID, 1, 2);
|
||||
|
||||
/*-----------------------------------------------------------------------------------------------------*\
|
||||
| Accessories |
|
||||
\*-----------------------------------------------------------------------------------------------------*/
|
||||
REGISTER_HID_DETECTOR_PU("Razer Base Station Chroma", DetectRazerControllers, RAZER_VID, RAZER_CHROMA_BASE_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Base Station V2 Chroma", DetectRazerControllers, RAZER_VID, RAZER_BASE_STATION_V2_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR ("Razer Charging Pad Chroma", DetectRazerControllers, RAZER_VID, RAZER_CHARGING_PAD_CHROMA_PID );
|
||||
REGISTER_HID_DETECTOR_PU("Razer Chroma HDK", DetectRazerControllers, RAZER_VID, RAZER_CHROMA_HDK_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Chroma Mug Holder", DetectRazerControllers, RAZER_VID, RAZER_CHROMA_MUG_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Core", DetectRazerControllers, RAZER_VID, RAZER_CORE_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Firefly", DetectRazerControllers, RAZER_VID, RAZER_FIREFLY_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Firefly V2", DetectRazerControllers, RAZER_VID, RAZER_FIREFLY_V2_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Firefly Hyperflux", DetectRazerControllers, RAZER_VID, RAZER_FIREFLY_HYPERFLUX_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Goliathus", DetectRazerControllers, RAZER_VID, RAZER_GOLIATHUS_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Goliathus Extended", DetectRazerControllers, RAZER_VID, RAZER_GOLIATHUS_CHROMA_EXTENDED_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Kraken Kitty Edition", DetectRazerControllers, RAZER_VID, RAZER_KRAKEN_KITTY_EDITION_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Mouse Bungee V3 Chroma", DetectRazerControllers, RAZER_VID, RAZER_MOUSE_BUNGEE_V3_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Nommo Chroma", DetectRazerControllers, RAZER_VID, RAZER_NOMMO_CHROMA_PID, 1, 3);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Nommo Pro", DetectRazerControllers, RAZER_VID, RAZER_NOMMO_PRO_PID, 1, 3);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Base Station Chroma", DetectRazerControllers, RAZER_VID, RAZER_CHROMA_BASE_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Base Station V2 Chroma", DetectRazerControllers, RAZER_VID, RAZER_BASE_STATION_V2_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR ("Razer Charging Pad Chroma", DetectRazerControllers, RAZER_VID, RAZER_CHARGING_PAD_CHROMA_PID );
|
||||
REGISTER_HID_DETECTOR ("Razer Chroma Addressable RGB Controller", DetectRazerARGBControllers, RAZER_VID, RAZER_CHROMA_ADDRESSABLE_RGB_CONTROLLER_PID );
|
||||
REGISTER_HID_DETECTOR_PU("Razer Chroma HDK", DetectRazerControllers, RAZER_VID, RAZER_CHROMA_HDK_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Chroma Mug Holder", DetectRazerControllers, RAZER_VID, RAZER_CHROMA_MUG_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Core", DetectRazerControllers, RAZER_VID, RAZER_CORE_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Firefly", DetectRazerControllers, RAZER_VID, RAZER_FIREFLY_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Firefly V2", DetectRazerControllers, RAZER_VID, RAZER_FIREFLY_V2_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Firefly Hyperflux", DetectRazerControllers, RAZER_VID, RAZER_FIREFLY_HYPERFLUX_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Goliathus", DetectRazerControllers, RAZER_VID, RAZER_GOLIATHUS_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Goliathus Extended", DetectRazerControllers, RAZER_VID, RAZER_GOLIATHUS_CHROMA_EXTENDED_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Kraken Kitty Edition", DetectRazerControllers, RAZER_VID, RAZER_KRAKEN_KITTY_EDITION_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Mouse Bungee V3 Chroma", DetectRazerControllers, RAZER_VID, RAZER_MOUSE_BUNGEE_V3_CHROMA_PID, 1, 2);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Nommo Chroma", DetectRazerControllers, RAZER_VID, RAZER_NOMMO_CHROMA_PID, 1, 3);
|
||||
REGISTER_HID_DETECTOR_PU("Razer Nommo Pro", DetectRazerControllers, RAZER_VID, RAZER_NOMMO_PRO_PID, 1, 3);
|
||||
|
||||
@@ -6,150 +6,151 @@
|
||||
/*-----------------------------------------------------*\
|
||||
| Razer vendor ID |
|
||||
\*-----------------------------------------------------*/
|
||||
#define RAZER_VID 0x1532
|
||||
#define RAZER_VID 0x1532
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Keyboard product IDs |
|
||||
| List taken from OpenRazer |
|
||||
| Non-RGB keyboards were omitted from this list |
|
||||
\*-----------------------------------------------------*/
|
||||
#define RAZER_BLACKWIDOW_2019_PID 0x0241
|
||||
#define RAZER_BLACKWIDOW_CHROMA_PID 0x0203
|
||||
#define RAZER_BLACKWIDOW_CHROMA_TE_PID 0x0209
|
||||
#define RAZER_BLACKWIDOW_CHROMA_V2_PID 0x0221
|
||||
#define RAZER_BLACKWIDOW_ELITE_PID 0x0228
|
||||
#define RAZER_BLACKWIDOW_ESSENTIAL_PID 0x0237
|
||||
#define RAZER_BLACKWIDOW_LITE_PID 0x0235
|
||||
#define RAZER_BLACKWIDOW_OVERWATCH_PID 0x0211
|
||||
#define RAZER_BLACKWIDOW_X_CHROMA_PID 0x0216
|
||||
#define RAZER_BLACKWIDOW_X_CHROMA_TE_PID 0x021A
|
||||
#define RAZER_BLADE_15_ADV_2020_PID 0x0253
|
||||
#define RAZER_BLADE_2018_BASE_PID 0x023B
|
||||
#define RAZER_BLADE_2018_MERCURY_PID 0x0240
|
||||
#define RAZER_BLADE_2018_PID 0x0233
|
||||
#define RAZER_BLADE_2019_ADV_PID 0x023A
|
||||
#define RAZER_BLADE_2019_BASE_PID 0x0246
|
||||
#define RAZER_BLADE_EARLY_2020_BASE_PID 0x0255
|
||||
#define RAZER_BLADE_LATE_2016_PID 0x0224
|
||||
#define RAZER_BLADE_MID_2019_MERCURY_PID 0x0245
|
||||
#define RAZER_BLADE_PRO_2017_FULLHD_PID 0x022F
|
||||
#define RAZER_BLADE_PRO_2017_PID 0x0225
|
||||
#define RAZER_BLADE_PRO_2019_PID 0x0234
|
||||
#define RAZER_BLADE_PRO_LATE_2016_PID 0x0210
|
||||
#define RAZER_BLADE_PRO_LATE_2019_PID 0x024C
|
||||
#define RAZER_BLADE_QHD_PID 0x020F
|
||||
#define RAZER_BLADE_STEALTH_2019_PID 0x0239
|
||||
#define RAZER_BLADE_STEALTH_EARLY_2020_PID 0x0252
|
||||
#define RAZER_BLADE_STEALTH_LATE_2016_PID 0x0220
|
||||
#define RAZER_BLADE_STEALTH_LATE_2017_PID 0x0232
|
||||
#define RAZER_BLADE_STEALTH_LATE_2019_PID 0x024A
|
||||
#define RAZER_BLADE_STEALTH_LATE_2020_PID 0x0259
|
||||
#define RAZER_BLADE_STEALTH_MID_2017_PID 0x022D
|
||||
#define RAZER_BLADE_STEALTH_PID 0x0205
|
||||
#define RAZER_BLADE_STUDIO_EDITION_2019_PID 0x024D
|
||||
#define RAZER_CYNOSA_CHROMA_PID 0x022A
|
||||
#define RAZER_CYNOSA_LITE_PID 0x023F
|
||||
#define RAZER_CYNOSA_V2_PID 0x025E
|
||||
#define RAZER_DEATHSTALKER_CHROMA_PID 0x0204
|
||||
#define RAZER_HUNTSMAN_ELITE_PID 0x0226
|
||||
#define RAZER_HUNTSMAN_PID 0x0227
|
||||
#define RAZER_HUNTSMAN_TE_PID 0x0243
|
||||
#define RAZER_ORBWEAVER_CHROMA_PID 0x0207
|
||||
#define RAZER_ORNATA_CHROMA_PID 0x021E
|
||||
#define RAZER_ORNATA_CHROMA_V2_PID 0x025D
|
||||
#define RAZER_TARTARUS_CHROMA_PID 0x0208
|
||||
#define RAZER_TARTARUS_V2_PID 0x022B
|
||||
#define RAZER_BLACKWIDOW_2019_PID 0x0241
|
||||
#define RAZER_BLACKWIDOW_CHROMA_PID 0x0203
|
||||
#define RAZER_BLACKWIDOW_CHROMA_TE_PID 0x0209
|
||||
#define RAZER_BLACKWIDOW_CHROMA_V2_PID 0x0221
|
||||
#define RAZER_BLACKWIDOW_ELITE_PID 0x0228
|
||||
#define RAZER_BLACKWIDOW_ESSENTIAL_PID 0x0237
|
||||
#define RAZER_BLACKWIDOW_LITE_PID 0x0235
|
||||
#define RAZER_BLACKWIDOW_OVERWATCH_PID 0x0211
|
||||
#define RAZER_BLACKWIDOW_X_CHROMA_PID 0x0216
|
||||
#define RAZER_BLACKWIDOW_X_CHROMA_TE_PID 0x021A
|
||||
#define RAZER_BLADE_15_ADV_2020_PID 0x0253
|
||||
#define RAZER_BLADE_2018_BASE_PID 0x023B
|
||||
#define RAZER_BLADE_2018_MERCURY_PID 0x0240
|
||||
#define RAZER_BLADE_2018_PID 0x0233
|
||||
#define RAZER_BLADE_2019_ADV_PID 0x023A
|
||||
#define RAZER_BLADE_2019_BASE_PID 0x0246
|
||||
#define RAZER_BLADE_EARLY_2020_BASE_PID 0x0255
|
||||
#define RAZER_BLADE_LATE_2016_PID 0x0224
|
||||
#define RAZER_BLADE_MID_2019_MERCURY_PID 0x0245
|
||||
#define RAZER_BLADE_PRO_2017_FULLHD_PID 0x022F
|
||||
#define RAZER_BLADE_PRO_2017_PID 0x0225
|
||||
#define RAZER_BLADE_PRO_2019_PID 0x0234
|
||||
#define RAZER_BLADE_PRO_LATE_2016_PID 0x0210
|
||||
#define RAZER_BLADE_PRO_LATE_2019_PID 0x024C
|
||||
#define RAZER_BLADE_QHD_PID 0x020F
|
||||
#define RAZER_BLADE_STEALTH_2019_PID 0x0239
|
||||
#define RAZER_BLADE_STEALTH_EARLY_2020_PID 0x0252
|
||||
#define RAZER_BLADE_STEALTH_LATE_2016_PID 0x0220
|
||||
#define RAZER_BLADE_STEALTH_LATE_2017_PID 0x0232
|
||||
#define RAZER_BLADE_STEALTH_LATE_2019_PID 0x024A
|
||||
#define RAZER_BLADE_STEALTH_LATE_2020_PID 0x0259
|
||||
#define RAZER_BLADE_STEALTH_MID_2017_PID 0x022D
|
||||
#define RAZER_BLADE_STEALTH_PID 0x0205
|
||||
#define RAZER_BLADE_STUDIO_EDITION_2019_PID 0x024D
|
||||
#define RAZER_CYNOSA_CHROMA_PID 0x022A
|
||||
#define RAZER_CYNOSA_LITE_PID 0x023F
|
||||
#define RAZER_CYNOSA_V2_PID 0x025E
|
||||
#define RAZER_DEATHSTALKER_CHROMA_PID 0x0204
|
||||
#define RAZER_HUNTSMAN_ELITE_PID 0x0226
|
||||
#define RAZER_HUNTSMAN_PID 0x0227
|
||||
#define RAZER_HUNTSMAN_TE_PID 0x0243
|
||||
#define RAZER_ORBWEAVER_CHROMA_PID 0x0207
|
||||
#define RAZER_ORNATA_CHROMA_PID 0x021E
|
||||
#define RAZER_ORNATA_CHROMA_V2_PID 0x025D
|
||||
#define RAZER_TARTARUS_CHROMA_PID 0x0208
|
||||
#define RAZER_TARTARUS_V2_PID 0x022B
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Mouse product IDs |
|
||||
| List taken from OpenRazer |
|
||||
\*-----------------------------------------------------*/
|
||||
#define RAZER_ABYSSUS_1800_PID 0x0020
|
||||
#define RAZER_ABYSSUS_2000_PID 0x005E
|
||||
#define RAZER_ABYSSUS_ELITE_DVA_EDITION_PID 0x006A
|
||||
#define RAZER_ABYSSUS_ESSENTIAL_PID 0x006B
|
||||
#define RAZER_ABYSSUS_PID 0x0042
|
||||
#define RAZER_ABYSSUS_V2_PID 0x005B
|
||||
#define RAZER_ATHERIS_RECEIVER_PID 0x0062
|
||||
#define RAZER_BASILISK_PID 0x0064
|
||||
#define RAZER_BASILISK_ESSENTIAL_PID 0x0065
|
||||
#define RAZER_BASILISK_X_HYPERSPEED_PID 0x0083
|
||||
#define RAZER_DEATHADDER_1800_PID 0x0038
|
||||
#define RAZER_DEATHADDER_2000_PID 0x004F
|
||||
#define RAZER_DEATHADDER_2013_PID 0x0037
|
||||
#define RAZER_DEATHADDER_3_5G_PID 0x0016
|
||||
#define RAZER_DEATHADDER_3500_PID 0x0054
|
||||
#define RAZER_DEATHADDER_CHROMA_PID 0x0043
|
||||
#define RAZER_DEATHADDER_ELITE_PID 0x005C
|
||||
#define RAZER_DEATHADDER_ESSENTIAL_PID 0x006E
|
||||
#define RAZER_ABYSSUS_1800_PID 0x0020
|
||||
#define RAZER_ABYSSUS_2000_PID 0x005E
|
||||
#define RAZER_ABYSSUS_ELITE_DVA_EDITION_PID 0x006A
|
||||
#define RAZER_ABYSSUS_ESSENTIAL_PID 0x006B
|
||||
#define RAZER_ABYSSUS_PID 0x0042
|
||||
#define RAZER_ABYSSUS_V2_PID 0x005B
|
||||
#define RAZER_ATHERIS_RECEIVER_PID 0x0062
|
||||
#define RAZER_BASILISK_PID 0x0064
|
||||
#define RAZER_BASILISK_ESSENTIAL_PID 0x0065
|
||||
#define RAZER_BASILISK_X_HYPERSPEED_PID 0x0083
|
||||
#define RAZER_DEATHADDER_1800_PID 0x0038
|
||||
#define RAZER_DEATHADDER_2000_PID 0x004F
|
||||
#define RAZER_DEATHADDER_2013_PID 0x0037
|
||||
#define RAZER_DEATHADDER_3_5G_PID 0x0016
|
||||
#define RAZER_DEATHADDER_3500_PID 0x0054
|
||||
#define RAZER_DEATHADDER_CHROMA_PID 0x0043
|
||||
#define RAZER_DEATHADDER_ELITE_PID 0x005C
|
||||
#define RAZER_DEATHADDER_ESSENTIAL_PID 0x006E
|
||||
#define RAZER_DEATHADDER_ESSENTIAL_WHITE_EDITION_PID 0x0071
|
||||
#define RAZER_DEATHADDER_V2_MINI_PID 0x008C
|
||||
#define RAZER_DEATHADDER_V2_PID 0x0084
|
||||
#define RAZER_DEATHADDER_V2_PRO_WIRED_PID 0x007C
|
||||
#define RAZER_DEATHADDER_V2_PRO_WIRELESS_PID 0x007D
|
||||
#define RAZER_DIAMONDBACK_CHROMA_PID 0x004C
|
||||
#define RAZER_IMPERATOR_PID 0x002F
|
||||
#define RAZER_LANCEHEAD_TE_WIRED_PID 0x0060
|
||||
#define RAZER_LANCEHEAD_WIRED_PID 0x0059
|
||||
#define RAZER_LANCEHEAD_WIRELESS_PID 0x005A
|
||||
#define RAZER_LANCEHEAD_WIRELESS_RECEIVER_PID 0x006F
|
||||
#define RAZER_LANCEHEAD_WIRELESS_WIRED_PID 0x0070
|
||||
#define RAZER_MAMBA_2012_WIRED_PID 0x0024
|
||||
#define RAZER_MAMBA_2012_WIRELESS_PID 0x0025
|
||||
#define RAZER_MAMBA_ELITE_PID 0x006C
|
||||
#define RAZER_MAMBA_TE_WIRED_PID 0x0046
|
||||
#define RAZER_MAMBA_WIRED_PID 0x0044
|
||||
#define RAZER_MAMBA_WIRELESS_PID 0x0045
|
||||
#define RAZER_MAMBA_WIRELESS_RECEIVER_PID 0x0072
|
||||
#define RAZER_MAMBA_WIRELESS_WIRED_PID 0x0073
|
||||
#define RAZER_NAGA_2012_PID 0x002E
|
||||
#define RAZER_NAGA_2014_PID 0x0040
|
||||
#define RAZER_NAGA_CHROMA_PID 0x0053
|
||||
#define RAZER_NAGA_EPIC_CHROMA_DOCK_PID 0x003F
|
||||
#define RAZER_NAGA_EPIC_CHROMA_PID 0x003E
|
||||
#define RAZER_NAGA_HEX_PID 0x0041
|
||||
#define RAZER_NAGA_HEX_RED_PID 0x0036
|
||||
#define RAZER_NAGA_HEX_V2_PID 0x0050
|
||||
#define RAZER_NAGA_TRINITY_PID 0x0067
|
||||
#define RAZER_OROCHI_2011_PID 0x0013
|
||||
#define RAZER_OROCHI_2013_PID 0x0039
|
||||
#define RAZER_OROCHI_CHROMA_PID 0x0048
|
||||
#define RAZER_OUROBOROS_PID 0x0032
|
||||
#define RAZER_TAIPAN_PID 0x0034
|
||||
#define RAZER_VIPER_MINI_PID 0x008A
|
||||
#define RAZER_VIPER_PID 0x0078
|
||||
#define RAZER_VIPER_ULTIMATE_WIRED_PID 0x007A
|
||||
#define RAZER_VIPER_ULTIMATE_WIRELESS_PID 0x007B
|
||||
#define RAZER_DEATHADDER_V2_MINI_PID 0x008C
|
||||
#define RAZER_DEATHADDER_V2_PID 0x0084
|
||||
#define RAZER_DEATHADDER_V2_PRO_WIRED_PID 0x007C
|
||||
#define RAZER_DEATHADDER_V2_PRO_WIRELESS_PID 0x007D
|
||||
#define RAZER_DIAMONDBACK_CHROMA_PID 0x004C
|
||||
#define RAZER_IMPERATOR_PID 0x002F
|
||||
#define RAZER_LANCEHEAD_TE_WIRED_PID 0x0060
|
||||
#define RAZER_LANCEHEAD_WIRED_PID 0x0059
|
||||
#define RAZER_LANCEHEAD_WIRELESS_PID 0x005A
|
||||
#define RAZER_LANCEHEAD_WIRELESS_RECEIVER_PID 0x006F
|
||||
#define RAZER_LANCEHEAD_WIRELESS_WIRED_PID 0x0070
|
||||
#define RAZER_MAMBA_2012_WIRED_PID 0x0024
|
||||
#define RAZER_MAMBA_2012_WIRELESS_PID 0x0025
|
||||
#define RAZER_MAMBA_ELITE_PID 0x006C
|
||||
#define RAZER_MAMBA_TE_WIRED_PID 0x0046
|
||||
#define RAZER_MAMBA_WIRED_PID 0x0044
|
||||
#define RAZER_MAMBA_WIRELESS_PID 0x0045
|
||||
#define RAZER_MAMBA_WIRELESS_RECEIVER_PID 0x0072
|
||||
#define RAZER_MAMBA_WIRELESS_WIRED_PID 0x0073
|
||||
#define RAZER_NAGA_2012_PID 0x002E
|
||||
#define RAZER_NAGA_2014_PID 0x0040
|
||||
#define RAZER_NAGA_CHROMA_PID 0x0053
|
||||
#define RAZER_NAGA_EPIC_CHROMA_DOCK_PID 0x003F
|
||||
#define RAZER_NAGA_EPIC_CHROMA_PID 0x003E
|
||||
#define RAZER_NAGA_HEX_PID 0x0041
|
||||
#define RAZER_NAGA_HEX_RED_PID 0x0036
|
||||
#define RAZER_NAGA_HEX_V2_PID 0x0050
|
||||
#define RAZER_NAGA_TRINITY_PID 0x0067
|
||||
#define RAZER_OROCHI_2011_PID 0x0013
|
||||
#define RAZER_OROCHI_2013_PID 0x0039
|
||||
#define RAZER_OROCHI_CHROMA_PID 0x0048
|
||||
#define RAZER_OUROBOROS_PID 0x0032
|
||||
#define RAZER_TAIPAN_PID 0x0034
|
||||
#define RAZER_VIPER_MINI_PID 0x008A
|
||||
#define RAZER_VIPER_PID 0x0078
|
||||
#define RAZER_VIPER_ULTIMATE_WIRED_PID 0x007A
|
||||
#define RAZER_VIPER_ULTIMATE_WIRELESS_PID 0x007B
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Headset product IDs |
|
||||
\*-----------------------------------------------------*/
|
||||
#define RAZER_KRAKEN_CLASSIC_ALT_PID 0x0506
|
||||
#define RAZER_KRAKEN_CLASSIC_PID 0x0501
|
||||
#define RAZER_KRAKEN_KITTY_EDITION_PID 0x0F19
|
||||
#define RAZER_KRAKEN_PID 0x0504
|
||||
#define RAZER_KRAKEN_ULTIMATE_PID 0x0527
|
||||
#define RAZER_KRAKEN_V2_PID 0x0510
|
||||
#define RAZER_TIAMAT_71_V2_PID 0x0F03
|
||||
#define RAZER_KRAKEN_CLASSIC_ALT_PID 0x0506
|
||||
#define RAZER_KRAKEN_CLASSIC_PID 0x0501
|
||||
#define RAZER_KRAKEN_KITTY_EDITION_PID 0x0F19
|
||||
#define RAZER_KRAKEN_PID 0x0504
|
||||
#define RAZER_KRAKEN_ULTIMATE_PID 0x0527
|
||||
#define RAZER_KRAKEN_V2_PID 0x0510
|
||||
#define RAZER_TIAMAT_71_V2_PID 0x0F03
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Accessory product IDs |
|
||||
| List taken from OpenRazer |
|
||||
\*-----------------------------------------------------*/
|
||||
#define RAZER_BASE_STATION_V2_CHROMA_PID 0x0F20
|
||||
#define RAZER_CHARGING_PAD_CHROMA_PID 0x0F26
|
||||
#define RAZER_CHROMA_BASE_PID 0x0F08
|
||||
#define RAZER_CHROMA_HDK_PID 0x0F09
|
||||
#define RAZER_CHROMA_MUG_PID 0x0F07
|
||||
#define RAZER_CORE_PID 0x0215
|
||||
#define RAZER_FIREFLY_HYPERFLUX_PID 0x0068
|
||||
#define RAZER_FIREFLY_PID 0x0C00
|
||||
#define RAZER_FIREFLY_V2_PID 0x0C04
|
||||
#define RAZER_GOLIATHUS_CHROMA_EXTENDED_PID 0x0C02
|
||||
#define RAZER_GOLIATHUS_CHROMA_PID 0x0C01
|
||||
#define RAZER_MOUSE_BUNGEE_V3_CHROMA_PID 0x0F1D
|
||||
#define RAZER_NOMMO_CHROMA_PID 0x0517
|
||||
#define RAZER_NOMMO_PRO_PID 0x0518
|
||||
#define RAZER_BASE_STATION_V2_CHROMA_PID 0x0F20
|
||||
#define RAZER_CHARGING_PAD_CHROMA_PID 0x0F26
|
||||
#define RAZER_CHROMA_ADDRESSABLE_RGB_CONTROLLER_PID 0x0F1F
|
||||
#define RAZER_CHROMA_BASE_PID 0x0F08
|
||||
#define RAZER_CHROMA_HDK_PID 0x0F09
|
||||
#define RAZER_CHROMA_MUG_PID 0x0F07
|
||||
#define RAZER_CORE_PID 0x0215
|
||||
#define RAZER_FIREFLY_HYPERFLUX_PID 0x0068
|
||||
#define RAZER_FIREFLY_PID 0x0C00
|
||||
#define RAZER_FIREFLY_V2_PID 0x0C04
|
||||
#define RAZER_GOLIATHUS_CHROMA_EXTENDED_PID 0x0C02
|
||||
#define RAZER_GOLIATHUS_CHROMA_PID 0x0C01
|
||||
#define RAZER_MOUSE_BUNGEE_V3_CHROMA_PID 0x0F1D
|
||||
#define RAZER_NOMMO_CHROMA_PID 0x0517
|
||||
#define RAZER_NOMMO_PRO_PID 0x0518
|
||||
|
||||
typedef struct
|
||||
{
|
||||
@@ -4659,6 +4660,101 @@ static const razer_device mug_holder_device =
|
||||
0
|
||||
};
|
||||
|
||||
/*-------------------------------------------------------------*\
|
||||
| Razer Chroma Addressable RGB Controller |
|
||||
| |
|
||||
| Zone "LED Strip" |
|
||||
| Linear |
|
||||
| 80 LEDs |
|
||||
| |
|
||||
| Zone "LED Strip" |
|
||||
| Linear |
|
||||
| 80 LEDs |
|
||||
| |
|
||||
| Zone "LED Strip" |
|
||||
| Linear |
|
||||
| 80 LEDs |
|
||||
| |
|
||||
| Zone "LED Strip" |
|
||||
| Linear |
|
||||
| 80 LEDs |
|
||||
| |
|
||||
| Zone "LED Strip" |
|
||||
| Linear |
|
||||
| 80 LEDs |
|
||||
| |
|
||||
| Zone "LED Strip" |
|
||||
| Linear |
|
||||
| 80 LEDs |
|
||||
\*-------------------------------------------------------------*/
|
||||
static const razer_zone chromaargb_zone_1 =
|
||||
{
|
||||
"Channel 1",
|
||||
ZONE_TYPE_LINEAR,
|
||||
1,
|
||||
80
|
||||
};
|
||||
|
||||
static const razer_zone chromaargb_zone_2 =
|
||||
{
|
||||
"Channel 2",
|
||||
ZONE_TYPE_LINEAR,
|
||||
1,
|
||||
80
|
||||
};
|
||||
|
||||
static const razer_zone chromaargb_zone_3 =
|
||||
{
|
||||
"Channel 3",
|
||||
ZONE_TYPE_LINEAR,
|
||||
1,
|
||||
80
|
||||
};
|
||||
|
||||
static const razer_zone chromaargb_zone_4 =
|
||||
{
|
||||
"Channel 4",
|
||||
ZONE_TYPE_LINEAR,
|
||||
1,
|
||||
80
|
||||
};
|
||||
|
||||
static const razer_zone chromaargb_zone_5 =
|
||||
{
|
||||
"Channel 5",
|
||||
ZONE_TYPE_LINEAR,
|
||||
1,
|
||||
80
|
||||
};
|
||||
|
||||
static const razer_zone chromaargb_zone_6 =
|
||||
{
|
||||
"Channel 6",
|
||||
ZONE_TYPE_LINEAR,
|
||||
1,
|
||||
80
|
||||
};
|
||||
|
||||
static const razer_device chromaargb_device =
|
||||
{
|
||||
"Razer Chroma Addressable RGB Controller",
|
||||
RAZER_CHROMA_ADDRESSABLE_RGB_CONTROLLER_PID,
|
||||
DEVICE_TYPE_LEDSTRIP,
|
||||
true,
|
||||
6,
|
||||
80,
|
||||
{
|
||||
&chromaargb_zone_1,
|
||||
&chromaargb_zone_2,
|
||||
&chromaargb_zone_3,
|
||||
&chromaargb_zone_4,
|
||||
&chromaargb_zone_5,
|
||||
&chromaargb_zone_6
|
||||
},
|
||||
NULL,
|
||||
0
|
||||
};
|
||||
|
||||
/*-------------------------------------------------------------*\
|
||||
| Razer Chroma HDK |
|
||||
| |
|
||||
@@ -5006,6 +5102,7 @@ static const razer_device* device_list[] =
|
||||
\*-----------------------------------------------------------------*/
|
||||
&base_station_device,
|
||||
&charging_pad_chroma_device,
|
||||
&chromaargb_device,
|
||||
&chromahdk_device,
|
||||
&core_device,
|
||||
&mug_holder_device,
|
||||
|
||||
Reference in New Issue
Block a user