diff --git a/Controllers/CryorigH7QuadLumiController/CryorigH7QuadLumiController.cpp b/Controllers/CryorigH7QuadLumiController/CryorigH7QuadLumiController.cpp index a3c20449..5eca8925 100644 --- a/Controllers/CryorigH7QuadLumiController/CryorigH7QuadLumiController.cpp +++ b/Controllers/CryorigH7QuadLumiController/CryorigH7QuadLumiController.cpp @@ -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 | diff --git a/Controllers/CryorigH7QuadLumiController/CryorigH7QuadLumiController.h b/Controllers/CryorigH7QuadLumiController/CryorigH7QuadLumiController.h index 22cfd8e3..931ddc79 100644 --- a/Controllers/CryorigH7QuadLumiController/CryorigH7QuadLumiController.h +++ b/Controllers/CryorigH7QuadLumiController/CryorigH7QuadLumiController.h @@ -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 diff --git a/Controllers/CryorigH7QuadLumiController/RGBController_CryorigH7QuadLumi.cpp b/Controllers/CryorigH7QuadLumiController/RGBController_CryorigH7QuadLumi.cpp index 0234dfdc..7596ced8 100644 --- a/Controllers/CryorigH7QuadLumiController/RGBController_CryorigH7QuadLumi.cpp +++ b/Controllers/CryorigH7QuadLumiController/RGBController_CryorigH7QuadLumi.cpp @@ -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(); }