mirror of
https://github.com/CalcProgrammer1/OpenRGB.git
synced 2026-03-31 20:31:18 -04:00
Add random breathing mode to RazerController
This commit is contained in:
@@ -37,16 +37,15 @@ RGBController_Razer::RGBController_Razer(RazerController* controller_ptr)
|
||||
Static.colors.resize(1);
|
||||
modes.push_back(Static);
|
||||
|
||||
// Breathing disabled, not yet implemented
|
||||
//mode Breathing;
|
||||
//Breathing.name = "Breathing";
|
||||
//Breathing.value = RAZER_MODE_BREATHING;
|
||||
//Breathing.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
||||
//Breathing.color_mode = MODE_COLORS_MODE_SPECIFIC;
|
||||
//Breathing.colors_min = 1;
|
||||
//Breathing.colors_max = 2;
|
||||
//Breathing.colors.resize(1);
|
||||
//modes.push_back(Breathing);
|
||||
mode Breathing;
|
||||
Breathing.name = "Breathing";
|
||||
Breathing.value = RAZER_MODE_BREATHING;
|
||||
Breathing.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
||||
Breathing.color_mode = MODE_COLORS_MODE_SPECIFIC;
|
||||
Breathing.colors_min = 1;
|
||||
Breathing.colors_max = 2;
|
||||
Breathing.colors.resize(1);
|
||||
modes.push_back(Breathing);
|
||||
|
||||
mode SpectrumCycle;
|
||||
SpectrumCycle.name = "Spectrum Cycle";
|
||||
@@ -213,6 +212,10 @@ void RGBController_Razer::DeviceUpdateMode()
|
||||
break;
|
||||
|
||||
case RAZER_MODE_BREATHING:
|
||||
if(modes[active_mode].color_mode == MODE_COLORS_RANDOM)
|
||||
{
|
||||
controller->SetModeBreathingRandom();
|
||||
}
|
||||
break;
|
||||
|
||||
case RAZER_MODE_SPECTRUM_CYCLE:
|
||||
|
||||
@@ -206,6 +206,11 @@ void RazerController::SetLEDs(RGBColor* colors)
|
||||
delete[] output_array;
|
||||
}
|
||||
|
||||
void RazerController::SetModeBreathingRandom()
|
||||
{
|
||||
razer_set_mode_breathing_random();
|
||||
}
|
||||
|
||||
void RazerController::SetModeOff()
|
||||
{
|
||||
razer_set_mode_none();
|
||||
@@ -432,6 +437,27 @@ razer_report RazerController::razer_create_device_mode_report(unsigned char mode
|
||||
return report;
|
||||
}
|
||||
|
||||
razer_report RazerController::razer_create_mode_breathing_random_extended_matrix_report(unsigned char variable_storage, unsigned char led_id)
|
||||
{
|
||||
razer_report report = razer_create_report(0x0F, 0x02, 0x06);
|
||||
|
||||
report.arguments[0] = variable_storage;
|
||||
report.arguments[1] = led_id;
|
||||
report.arguments[2] = 0x02;
|
||||
|
||||
return report;
|
||||
}
|
||||
|
||||
razer_report RazerController::razer_create_mode_breathing_random_standard_matrix_report(unsigned char variable_storage, unsigned char led_id)
|
||||
{
|
||||
razer_report report = razer_create_report(0x03, 0x0A, 0x08);
|
||||
|
||||
report.arguments[0] = 0x03;
|
||||
report.arguments[1] = 0x03;
|
||||
|
||||
return report;
|
||||
}
|
||||
|
||||
razer_report RazerController::razer_create_mode_custom_extended_matrix_report()
|
||||
{
|
||||
struct razer_report report = razer_create_report(0x0F, 0x02, 0x0C);
|
||||
@@ -850,6 +876,82 @@ void RazerController::razer_set_device_mode(unsigned char device_mode)
|
||||
razer_usb_send(&report);
|
||||
}
|
||||
|
||||
void RazerController::razer_set_mode_breathing_random()
|
||||
{
|
||||
razer_report report;
|
||||
|
||||
switch(dev_pid)
|
||||
{
|
||||
/*-----------------------------------------------------*\
|
||||
| These devices use an extended matrix report |
|
||||
\*-----------------------------------------------------*/
|
||||
/*-----------------*\
|
||||
| Keyboards |
|
||||
\*-----------------*/
|
||||
case RAZER_BLACKWIDOW_2019_PID:
|
||||
case RAZER_BLACKWIDOW_ELITE_PID:
|
||||
case RAZER_BLACKWIDOW_ESSENTIAL_PID:
|
||||
case RAZER_CYNOSA_CHROMA_PID:
|
||||
//case RAZER_CYNOSA_CHROMA_PRO_PID:
|
||||
case RAZER_CYNOSA_LITE_PID:
|
||||
case RAZER_CYNOSA_V2_PID:
|
||||
case RAZER_HUNTSMAN_PID:
|
||||
case RAZER_HUNTSMAN_ELITE_PID:
|
||||
//case RAZER_HUNTSMAN_MINI_PID:
|
||||
case RAZER_HUNTSMAN_TE_PID:
|
||||
case RAZER_ORNATA_CHROMA_PID:
|
||||
case RAZER_ORNATA_CHROMA_V2_PID:
|
||||
case RAZER_TARTARUS_V2_PID:
|
||||
|
||||
/*-----------------*\
|
||||
| Mice |
|
||||
\*-----------------*/
|
||||
case RAZER_NAGA_CHROMA_PID:
|
||||
case RAZER_NAGA_HEX_V2_PID:
|
||||
|
||||
/*-----------------*\
|
||||
| Accessories |
|
||||
\*-----------------*/
|
||||
case RAZER_BASE_STATION_V2_CHROMA_PID:
|
||||
case RAZER_CHARGING_PAD_CHROMA_PID:
|
||||
case RAZER_CHROMA_BASE_PID:
|
||||
case RAZER_CHROMA_HDK_PID:
|
||||
case RAZER_FIREFLY_HYPERFLUX_PID:
|
||||
case RAZER_FIREFLY_V2_PID:
|
||||
case RAZER_GOLIATHUS_CHROMA_PID:
|
||||
case RAZER_GOLIATHUS_CHROMA_EXTENDED_PID:
|
||||
case RAZER_KRAKEN_KITTY_EDITION_PID:
|
||||
case RAZER_MOUSE_BUNGEE_V3_CHROMA_PID:
|
||||
//case RAZER_MOUSE_DOCK_PID:
|
||||
case RAZER_NOMMO_CHROMA_PID:
|
||||
case RAZER_NOMMO_PRO_PID:
|
||||
report = razer_create_mode_breathing_random_extended_matrix_report(RAZER_STORAGE_NO_SAVE, dev_led_id);
|
||||
break;
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| These devices use a standard matrix report |
|
||||
\*-----------------------------------------------------*/
|
||||
/*-----------------*\
|
||||
| Keyboards |
|
||||
\*-----------------*/
|
||||
default:
|
||||
case RAZER_BLACKWIDOW_CHROMA_PID:
|
||||
case RAZER_BLACKWIDOW_CHROMA_TE_PID:
|
||||
case RAZER_BLACKWIDOW_CHROMA_V2_PID:
|
||||
|
||||
/*-----------------*\
|
||||
| Accessories |
|
||||
\*-----------------*/
|
||||
case RAZER_CHROMA_MUG_PID:
|
||||
case RAZER_CORE_PID:
|
||||
case RAZER_FIREFLY_PID:
|
||||
report = razer_create_mode_breathing_random_standard_matrix_report(RAZER_STORAGE_NO_SAVE, dev_led_id);
|
||||
break;
|
||||
}
|
||||
|
||||
razer_usb_send(&report);
|
||||
}
|
||||
|
||||
void RazerController::razer_set_mode_custom()
|
||||
{
|
||||
razer_report report;
|
||||
|
||||
@@ -159,6 +159,9 @@ public:
|
||||
|
||||
void SetLEDs(RGBColor* colors);
|
||||
|
||||
void SetModeBreathingRandom();
|
||||
void SetModeBreathingOneColor(unsigned char red, unsigned char grn, unsigned char blu);
|
||||
void SetModeBreathingTwoColors(unsigned char r1, unsigned char g1, unsigned char b1, unsigned char r2, unsigned char g2, unsigned char b2);
|
||||
void SetModeOff();
|
||||
void SetModeSpectrumCycle();
|
||||
void SetModeStatic(unsigned char red, unsigned char grn, unsigned char blu);
|
||||
@@ -208,6 +211,8 @@ private:
|
||||
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);
|
||||
razer_report razer_create_device_mode_report(unsigned char mode, unsigned char param);
|
||||
razer_report razer_create_mode_breathing_random_extended_matrix_report(unsigned char variable_storage, unsigned char led_id);
|
||||
razer_report razer_create_mode_breathing_random_standard_matrix_report(unsigned char variable_storage, unsigned char led_id);
|
||||
razer_report razer_create_mode_custom_extended_matrix_report();
|
||||
razer_report razer_create_mode_custom_standard_matrix_report(unsigned char variable_storage);
|
||||
razer_report razer_create_mode_none_extended_matrix_report(unsigned char variable_storage, unsigned char led_id);
|
||||
@@ -229,7 +234,9 @@ private:
|
||||
|
||||
void razer_set_device_mode(unsigned char device_mode);
|
||||
|
||||
void razer_set_mode_breathing();
|
||||
void razer_set_mode_breathing_random();
|
||||
void razer_set_mode_breathing_one_color(unsigned char red, unsigned char grn, unsigned char blu);
|
||||
void razer_set_mode_breathing_two_colors(unsigned char r1, unsigned char g1, unsigned char b1, unsigned char r2, unsigned char g2, unsigned char b2);
|
||||
void razer_set_mode_custom();
|
||||
void razer_set_mode_none();
|
||||
void razer_set_mode_spectrum_cycle();
|
||||
|
||||
Reference in New Issue
Block a user