mirror of
https://github.com/CalcProgrammer1/OpenRGB.git
synced 2026-05-24 14:35:01 -04:00
Add spectrum mode to Seagate controller
This commit is contained in:
@@ -11,10 +11,10 @@
|
||||
/**------------------------------------------------------------------*\
|
||||
@name Seagate
|
||||
@category Storage
|
||||
@type USB
|
||||
@save :x:
|
||||
@direct :x:
|
||||
@effects :x:
|
||||
@type SCSI
|
||||
@save :white_check_mark:
|
||||
@direct :white_check_mark:
|
||||
@effects :white_check_mark:
|
||||
@detectors DetectSeagateControllers
|
||||
@comment
|
||||
\*-------------------------------------------------------------------*/
|
||||
@@ -50,6 +50,13 @@ RGBController_Seagate::RGBController_Seagate(SeagateController* controller_ptr)
|
||||
Breathing.color_mode = MODE_COLORS_PER_LED;
|
||||
modes.push_back(Breathing);
|
||||
|
||||
mode Spectrum;
|
||||
Spectrum.name = "Spectrum Cycle";
|
||||
Spectrum.value = SEAGATE_MODE_SPECTRUM;
|
||||
Spectrum.flags = MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_MANUAL_SAVE;
|
||||
Spectrum.color_mode = MODE_COLORS_RANDOM;
|
||||
modes.push_back(Spectrum);
|
||||
|
||||
SetupZones();
|
||||
}
|
||||
|
||||
@@ -119,11 +126,16 @@ void RGBController_Seagate::UpdateSingleLED(int led)
|
||||
case SEAGATE_MODE_BREATHING:
|
||||
controller->SetLEDBreathing(led, red, grn, blu, false);
|
||||
break;
|
||||
|
||||
case SEAGATE_MODE_SPECTRUM:
|
||||
controller->SetLEDsSpectrum(led, false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void RGBController_Seagate::DeviceUpdateMode()
|
||||
{
|
||||
DeviceUpdateLEDs();
|
||||
}
|
||||
|
||||
void RGBController_Seagate::DeviceSaveMode()
|
||||
@@ -147,6 +159,10 @@ void RGBController_Seagate::DeviceSaveMode()
|
||||
case SEAGATE_MODE_BREATHING:
|
||||
controller->SetLEDBreathing(led_idx, red, grn, blu, true);
|
||||
break;
|
||||
|
||||
case SEAGATE_MODE_SPECTRUM:
|
||||
controller->SetLEDsSpectrum(led_idx, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -118,6 +118,33 @@ void SeagateController::SetLEDBreathing
|
||||
SendPacket(data, 0x14);
|
||||
}
|
||||
|
||||
void SeagateController::SetLEDsSpectrum
|
||||
(
|
||||
unsigned char led_id,
|
||||
bool save
|
||||
)
|
||||
{
|
||||
/*-----------------------------------------------------------------------------*\
|
||||
| Create buffer to hold RGB control data |
|
||||
\*-----------------------------------------------------------------------------*/
|
||||
unsigned char data[0x0A] = {0};
|
||||
data[0] = 0x0A; /* size of data packet */
|
||||
data[1] = 0x00;
|
||||
data[2] = 0x01;
|
||||
data[3] = 0x09;
|
||||
data[4] = 0x01;
|
||||
data[5] = 0x06;
|
||||
data[6] = led_id;
|
||||
data[7] = SEAGATE_MODE_SPECTRUM;
|
||||
data[8] = 0x02;
|
||||
data[9] = 0xB4;
|
||||
|
||||
/*-----------------------------------------------------------------------------*\
|
||||
| Send packet |
|
||||
\*-----------------------------------------------------------------------------*/
|
||||
SendPacket(data, 0x0A);
|
||||
}
|
||||
|
||||
void SeagateController::SetLEDStatic
|
||||
(
|
||||
unsigned char led_id,
|
||||
|
||||
@@ -17,6 +17,7 @@ enum
|
||||
SEAGATE_MODE_STATIC = 0x01, /* Static mode */
|
||||
SEAGATE_MODE_BLINK = 0x02, /* Blink mode */
|
||||
SEAGATE_MODE_BREATHING = 0x03, /* Breathing mode */
|
||||
SEAGATE_MODE_SPECTRUM = 0x05, /* Spectrum mode */
|
||||
};
|
||||
|
||||
class SeagateController
|
||||
@@ -45,6 +46,12 @@ public:
|
||||
bool save
|
||||
);
|
||||
|
||||
void SetLEDsSpectrum
|
||||
(
|
||||
unsigned char led_id,
|
||||
bool save
|
||||
);
|
||||
|
||||
void SetLEDStatic
|
||||
(
|
||||
unsigned char led_id,
|
||||
|
||||
Reference in New Issue
Block a user