Enable effects modes for Cryorig H7 Quad Lumi

This commit is contained in:
Adam Honse 2023-04-19 20:24:51 -07:00
parent d4ce474016
commit d4c158cc9c
3 changed files with 101 additions and 185 deletions

View file

@ -82,7 +82,7 @@ void CryorigH7QuadLumiController::SetChannelEffect
for(std::size_t color_idx = 0; color_idx < num_colors; color_idx++)
{
/*-----------------------------------------------------*\
| Fill in color data (40 entries per color) |
| Fill in color data (5 entries per color) |
\*-----------------------------------------------------*/
for (std::size_t idx = 0; idx < 40; idx++)
{
@ -96,7 +96,7 @@ void CryorigH7QuadLumiController::SetChannelEffect
/*-----------------------------------------------------*\
| Send mode and color data |
\*-----------------------------------------------------*/
SendPacket(channel, mode, direction, color_idx, speed, 40, &color_data[0]);
SendPacket(channel, mode, direction, color_idx, speed, 5, &color_data[0]);
}
}
/*-----------------------------------------------------*\
@ -173,26 +173,25 @@ void CryorigH7QuadLumiController::SendPacket
memset(usb_buf, 0x00, sizeof(usb_buf));
/*-----------------------------------------------------*\
| Set up packet |
| Set up RGB packet |
\*-----------------------------------------------------*/
usb_buf[0x00] = 0x02;
usb_buf[0x01] = 0x4C;
/*-----------------------------------------------------*\
| Set channel in serial packet |
| Set channel and direction in RGB packet |
\*-----------------------------------------------------*/
usb_buf[0x02] = channel + 1;
usb_buf[0x02] = (channel + 1) | (direction ? (1 << 4) : 0);
/*-----------------------------------------------------*\
| Set mode in serial packet |
| Set mode in RGB packet |
\*-----------------------------------------------------*/
usb_buf[0x03] = mode;
/*-----------------------------------------------------*\
| Set options bitfield in serial packet |
| Set color index and speed in RGB packet |
\*-----------------------------------------------------*/
usb_buf[0x04] = 0;
usb_buf[0x04] |= direction ? ( 1 << 4 ) : 0;
usb_buf[0x04] = ( color_idx << 5 ) | speed;
/*-----------------------------------------------------*\
| Copy in color data bytes |

View file

@ -30,14 +30,14 @@ enum
enum
{
CRYORIG_H7_QUAD_LUMI_MODE_FIXED = 0x00, /* Fixed colors mode */
CRYORIG_H7_QUAD_LUMI_MODE_FADING = 0x01, /* Fading mode */
CRYORIG_H7_QUAD_LUMI_MODE_SPECTRUM = 0x02, /* Spectrum cycle mode */
CRYORIG_H7_QUAD_LUMI_MODE_MARQUEE = 0x03, /* Marquee mode */
CRYORIG_H7_QUAD_LUMI_MODE_COVER_MARQUE = 0x04, /* Cover marquee mode */
CRYORIG_H7_QUAD_LUMI_MODE_ALTERNATING = 0x05, /* Alternating mode */
CRYORIG_H7_QUAD_LUMI_MODE_BREATHING = 0x06, /* Breathing mode */
CRYORIG_H7_QUAD_LUMI_MODE_PULSING = 0x07, /* Pulsing mode */
CRYORIG_H7_QUAD_LUMI_MODE_FIXED = 0x00, /* Fixed colors mode */
CRYORIG_H7_QUAD_LUMI_MODE_FADING = 0x01, /* Fading mode */
CRYORIG_H7_QUAD_LUMI_MODE_SPECTRUM = 0x02, /* Spectrum cycle mode */
CRYORIG_H7_QUAD_LUMI_MODE_MARQUEE = 0x03, /* Marquee mode */
CRYORIG_H7_QUAD_LUMI_MODE_COVER_MARQUEE = 0x04, /* Cover marquee mode */
CRYORIG_H7_QUAD_LUMI_MODE_ALTERNATING = 0x05, /* Alternating mode */
CRYORIG_H7_QUAD_LUMI_MODE_BREATHING = 0x06, /* Breathing mode */
CRYORIG_H7_QUAD_LUMI_MODE_PULSING = 0x07, /* Pulsing mode */
};
class CryorigH7QuadLumiController

View file

@ -29,180 +29,97 @@ RGBController_CryorigH7QuadLumi::RGBController_CryorigH7QuadLumi(CryorigH7QuadLu
Direct.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Direct);
// mode Fading;
// Fading.name = "Fading";
// Fading.value = CRYORIG_H7_QUAD_LUMI_MODE_FADING;
// Fading.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
// Fading.speed_min = CRYORIG_H7_QUAD_LUMI_SPEED_SLOWEST;
// Fading.speed_max = CRYORIG_H7_QUAD_LUMI_SPEED_FASTEST;
// Fading.colors_min = 1;
// Fading.colors_max = 8;
// Fading.speed = CRYORIG_H7_QUAD_LUMI_SPEED_NORMAL;
// Fading.color_mode = MODE_COLORS_MODE_SPECIFIC;
// Fading.colors.resize(2);
// modes.push_back(Fading);
mode Fading;
Fading.name = "Fading";
Fading.value = CRYORIG_H7_QUAD_LUMI_MODE_FADING;
Fading.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
Fading.speed_min = CRYORIG_H7_QUAD_LUMI_SPEED_SLOWEST;
Fading.speed_max = CRYORIG_H7_QUAD_LUMI_SPEED_FASTEST;
Fading.colors_min = 1;
Fading.colors_max = 8;
Fading.speed = CRYORIG_H7_QUAD_LUMI_SPEED_NORMAL;
Fading.color_mode = MODE_COLORS_MODE_SPECIFIC;
Fading.colors.resize(2);
modes.push_back(Fading);
// mode SpectrumCycle;
// SpectrumCycle.name = "Spectrum Cycle";
// SpectrumCycle.value = CRYORIG_H7_QUAD_LUMI_MODE_SPECTRUM;
// SpectrumCycle.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR;
// SpectrumCycle.speed_min = CRYORIG_H7_QUAD_LUMI_SPEED_SLOWEST;
// SpectrumCycle.speed_max = CRYORIG_H7_QUAD_LUMI_SPEED_FASTEST;
// SpectrumCycle.speed = CRYORIG_H7_QUAD_LUMI_SPEED_NORMAL;
// SpectrumCycle.direction = MODE_DIRECTION_RIGHT;
// SpectrumCycle.color_mode = MODE_COLORS_NONE;
// modes.push_back(SpectrumCycle);
mode SpectrumCycle;
SpectrumCycle.name = "Rainbow Wave";
SpectrumCycle.value = CRYORIG_H7_QUAD_LUMI_MODE_SPECTRUM;
SpectrumCycle.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR;
SpectrumCycle.speed_min = CRYORIG_H7_QUAD_LUMI_SPEED_SLOWEST;
SpectrumCycle.speed_max = CRYORIG_H7_QUAD_LUMI_SPEED_FASTEST;
SpectrumCycle.speed = CRYORIG_H7_QUAD_LUMI_SPEED_NORMAL;
SpectrumCycle.direction = MODE_DIRECTION_RIGHT;
SpectrumCycle.color_mode = MODE_COLORS_NONE;
modes.push_back(SpectrumCycle);
// mode Fading;
// Fading.name = "Fading";
// Fading.value = HUE_1_MODE_FADING;
// Fading.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
// Fading.speed_min = HUE_1_SPEED_SLOWEST;
// Fading.speed_max = HUE_1_SPEED_FASTEST;
// Fading.colors_min = 1;
// Fading.colors_max = 8;
// Fading.speed = HUE_1_SPEED_NORMAL;
// Fading.color_mode = MODE_COLORS_MODE_SPECIFIC;
// Fading.colors.resize(1);
// modes.push_back(Fading);
mode Marquee;
Marquee.name = "Marquee";
Marquee.value = CRYORIG_H7_QUAD_LUMI_MODE_MARQUEE;
Marquee.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
Marquee.speed_min = CRYORIG_H7_QUAD_LUMI_SPEED_SLOWEST;
Marquee.speed_max = CRYORIG_H7_QUAD_LUMI_SPEED_FASTEST;
Marquee.colors_min = 1;
Marquee.colors_max = 1;
Marquee.speed = CRYORIG_H7_QUAD_LUMI_SPEED_NORMAL;
Marquee.direction = MODE_DIRECTION_RIGHT;
Marquee.color_mode = MODE_COLORS_MODE_SPECIFIC;
Marquee.colors.resize(1);
modes.push_back(Marquee);
// mode SpectrumCycle;
// SpectrumCycle.name = "Spectrum Cycle";
// SpectrumCycle.value = HUE_1_MODE_SPECTRUM;
// SpectrumCycle.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR;
// SpectrumCycle.speed_min = HUE_1_SPEED_SLOWEST;
// SpectrumCycle.speed_max = HUE_1_SPEED_FASTEST;
// SpectrumCycle.speed = HUE_1_SPEED_NORMAL;
// SpectrumCycle.direction = MODE_DIRECTION_RIGHT;
// SpectrumCycle.color_mode = MODE_COLORS_NONE;
// modes.push_back(SpectrumCycle);
mode CoverMarquee;
CoverMarquee.name = "Cover Marquee";
CoverMarquee.value = CRYORIG_H7_QUAD_LUMI_MODE_COVER_MARQUEE;
CoverMarquee.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
CoverMarquee.speed_min = CRYORIG_H7_QUAD_LUMI_SPEED_SLOWEST;
CoverMarquee.speed_max = CRYORIG_H7_QUAD_LUMI_SPEED_FASTEST;
CoverMarquee.colors_min = 1;
CoverMarquee.colors_max = 8;
CoverMarquee.speed = CRYORIG_H7_QUAD_LUMI_SPEED_NORMAL;
CoverMarquee.direction = MODE_DIRECTION_RIGHT;
CoverMarquee.color_mode = MODE_COLORS_MODE_SPECIFIC;
CoverMarquee.colors.resize(2);
modes.push_back(CoverMarquee);
// mode Marquee;
// Marquee.name = "Marquee";
// Marquee.value = HUE_1_MODE_MARQUEE;
// Marquee.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
// Marquee.speed_min = HUE_1_SPEED_SLOWEST;
// Marquee.speed_max = HUE_1_SPEED_FASTEST;
// Marquee.colors_min = 1;
// Marquee.colors_max = 1;
// Marquee.speed = HUE_2_SPEED_NORMAL;
// Marquee.direction = MODE_DIRECTION_RIGHT;
// Marquee.color_mode = MODE_COLORS_MODE_SPECIFIC;
// Marquee.colors.resize(1);
// modes.push_back(Marquee);
mode Alternating;
Alternating.name = "Alternating";
Alternating.value = CRYORIG_H7_QUAD_LUMI_MODE_ALTERNATING;
Alternating.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
Alternating.speed_min = CRYORIG_H7_QUAD_LUMI_SPEED_SLOWEST;
Alternating.speed_max = CRYORIG_H7_QUAD_LUMI_SPEED_FASTEST;
Alternating.colors_min = 1;
Alternating.colors_max = 2;
Alternating.speed = CRYORIG_H7_QUAD_LUMI_SPEED_NORMAL;
Alternating.direction = MODE_DIRECTION_RIGHT;
Alternating.color_mode = MODE_COLORS_MODE_SPECIFIC;
Alternating.colors.resize(2);
modes.push_back(Alternating);
// mode CoverMarquee;
// CoverMarquee.name = "Cover Marquee";
// CoverMarquee.value = HUE_1_MODE_COVER_MARQUEE;
// CoverMarquee.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
// CoverMarquee.speed_min = HUE_1_SPEED_SLOWEST;
// CoverMarquee.speed_max = HUE_1_SPEED_FASTEST;
// CoverMarquee.colors_min = 1;
// CoverMarquee.colors_max = 8;
// CoverMarquee.speed = HUE_2_SPEED_NORMAL;
// CoverMarquee.direction = MODE_DIRECTION_RIGHT;
// CoverMarquee.color_mode = MODE_COLORS_MODE_SPECIFIC;
// CoverMarquee.colors.resize(1);
// modes.push_back(CoverMarquee);
mode Pulsing;
Pulsing.name = "Pulsing";
Pulsing.value = CRYORIG_H7_QUAD_LUMI_MODE_PULSING;
Pulsing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
Pulsing.speed_min = CRYORIG_H7_QUAD_LUMI_SPEED_SLOWEST;
Pulsing.speed_max = CRYORIG_H7_QUAD_LUMI_SPEED_FASTEST;
Pulsing.colors_min = 1;
Pulsing.colors_max = 8;
Pulsing.speed = CRYORIG_H7_QUAD_LUMI_SPEED_NORMAL;
Pulsing.color_mode = MODE_COLORS_MODE_SPECIFIC;
Pulsing.colors.resize(2) ;
modes.push_back(Pulsing);
// mode Alternating;
// Alternating.name = "Alternating";
// Alternating.value = HUE_1_MODE_ALTERNATING;
// Alternating.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
// Alternating.speed_min = HUE_1_SPEED_SLOWEST;
// Alternating.speed_max = HUE_1_SPEED_FASTEST;
// Alternating.colors_min = 1;
// Alternating.colors_max = 2;
// Alternating.speed = HUE_1_SPEED_NORMAL;
// Alternating.direction = MODE_DIRECTION_RIGHT;
// Alternating.color_mode = MODE_COLORS_MODE_SPECIFIC;
// Alternating.colors.resize(1);
// modes.push_back(Alternating);
// mode Pulsing;
// Pulsing.name = "Pulsing";
// Pulsing.value = HUE_1_MODE_PULSING;
// Pulsing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
// Pulsing.speed_min = HUE_1_SPEED_SLOWEST;
// Pulsing.speed_max = HUE_1_SPEED_FASTEST;
// Pulsing.colors_min = 1;
// Pulsing.colors_max = 8;
// Pulsing.speed = HUE_1_SPEED_NORMAL;
// Pulsing.color_mode = MODE_COLORS_MODE_SPECIFIC;
// Pulsing.colors.resize(1) ;
// modes.push_back(Pulsing);
// mode Breathing;
// Breathing.name = "Breathing";
// Breathing.value = HUE_1_MODE_BREATHING;
// Breathing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_PER_LED_COLOR;
// Breathing.speed_min = HUE_1_SPEED_SLOWEST;
// Breathing.speed_max = HUE_1_SPEED_FASTEST;
// Breathing.colors_min = 1;
// Breathing.colors_max = 8;
// Breathing.speed = HUE_2_SPEED_NORMAL;
// Breathing.color_mode = MODE_COLORS_MODE_SPECIFIC;
// Breathing.colors.resize( 1);
// modes.push_back(Breathing);
// mode Candle;
// Candle.name = "Candle";
// Candle.value = HUE_1_MODE_CANDLE;
// Candle.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
// Candle.speed_min = HUE_1_SPEED_SLOWEST;
// Candle.speed_max = HUE_1_SPEED_FASTEST;
// Candle.colors_min = 1;
// Candle.colors_max = 8;
// Candle.speed = HUE_1_SPEED_NORMAL;
// Candle.color_mode = MODE_COLORS_MODE_SPECIFIC;
// Candle.colors.resize(1) ;
// modes.push_back(Candle);
// mode StarryNight;
// StarryNight.name = "Starry Night";
// StarryNight.value = HUE_1_MODE_STARRY_NIGHT;
// StarryNight.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
// StarryNight.speed_min = HUE_1_SPEED_SLOWEST;
// StarryNight.speed_max = HUE_1_SPEED_FASTEST;
// StarryNight.colors_min = 1;
// StarryNight.colors_max = 1;
// StarryNight.speed = HUE_2_SPEED_NORMAL;
// StarryNight.color_mode = MODE_COLORS_MODE_SPECIFIC;
// StarryNight.colors.resize(1);
// modes.push_back(StarryNight);
// mode SuperRainbow;
// SuperRainbow.name = "Super Rainbow";
// SuperRainbow.value = HUE_1_MODE_SUPER_RAINBOW;
// SuperRainbow.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR;
// SuperRainbow.speed_min = HUE_1_SPEED_SLOWEST;
// SuperRainbow.speed_max = HUE_1_SPEED_FASTEST;
// SuperRainbow.speed = HUE_1_SPEED_NORMAL;
// SuperRainbow.direction = MODE_DIRECTION_RIGHT;
// SuperRainbow.color_mode = MODE_COLORS_NONE;
// modes.push_back(SuperRainbow);
// mode RainbowPulse;
// RainbowPulse.name = "Rainbow Pulse";
// RainbowPulse.value = HUE_1_MODE_RAINBOW_PULSE;
// RainbowPulse.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR;
// RainbowPulse.speed_min = HUE_1_SPEED_SLOWEST;
// RainbowPulse.speed_max = HUE_1_SPEED_FASTEST;
// RainbowPulse.speed = HUE_1_SPEED_NORMAL;
// RainbowPulse.direction = MODE_DIRECTION_RIGHT;
// RainbowPulse.color_mode = MODE_COLORS_NONE;
// modes.push_back(RainbowPulse);
// mode RainbowFlow;
// RainbowFlow.name = "Rainbow Flow";
// RainbowFlow.value = HUE_1_MODE_RAINBOW_FLOW;
// RainbowFlow.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR;
// RainbowFlow.speed_min = HUE_1_SPEED_SLOWEST;
// RainbowFlow.speed_max = HUE_1_SPEED_FASTEST;
// RainbowFlow.speed = HUE_1_SPEED_NORMAL;
// RainbowFlow.direction = MODE_DIRECTION_RIGHT;
// RainbowFlow.color_mode = MODE_COLORS_NONE;
// modes.push_back(RainbowFlow);
mode Breathing;
Breathing.name = "Breathing";
Breathing.value = CRYORIG_H7_QUAD_LUMI_MODE_BREATHING;
Breathing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_PER_LED_COLOR;
Breathing.speed_min = CRYORIG_H7_QUAD_LUMI_SPEED_SLOWEST;
Breathing.speed_max = CRYORIG_H7_QUAD_LUMI_SPEED_FASTEST;
Breathing.colors_min = 1;
Breathing.colors_max = 8;
Breathing.speed = CRYORIG_H7_QUAD_LUMI_SPEED_NORMAL;
Breathing.color_mode = MODE_COLORS_MODE_SPECIFIC;
Breathing.colors.resize(2);
modes.push_back(Breathing);
SetupZones();
}