diff --git a/Controllers/EKController/EKController.cpp b/Controllers/EKController/EKController.cpp index 2280f0e2..cd34b67f 100644 --- a/Controllers/EKController/EKController.cpp +++ b/Controllers/EKController/EKController.cpp @@ -84,5 +84,9 @@ void EKController::SendUpdate() buffer[EK_BLUE_BYTE] = current_blue; buffer[EK_SPEED_BYTE] = speed_mode_data[current_mode][current_speed]; + buffer[10] = 0x10; + buffer[47] = 0xFF; + buffer[48] = 0x00; + hid_write(dev, buffer, buffer_size); } diff --git a/Controllers/EKController/EKController.h b/Controllers/EKController/EKController.h index fb93c13e..2c821117 100644 --- a/Controllers/EKController/EKController.h +++ b/Controllers/EKController/EKController.h @@ -28,34 +28,50 @@ enum enum { - EK_MODE_STATIC = 0x00, //Static Mode - EK_MODE_BREATHING = 0x01, //Breathing Mode - EK_MODE_FADING = 0x02, //Fading Mode - EK_MODE_MARQUEE = 0x03, //Marquee Mode - EK_MODE_COVERING_MARQUEE = 0x04 //Covering Marquee Mode + EK_MODE_STATIC = 0x00, //Static Mode + EK_MODE_BREATHING = 0x01, //Breathing Mode + EK_MODE_FADING = 0x02, //Fading Mode + EK_MODE_MARQUEE = 0x03, //Marquee Mode + EK_MODE_COVERING_MARQUEE = 0x04, //Covering Marquee Mode + EK_MODE_PULSE = 0x05, //Pulse Mode + EK_MODE_SPECTRUM_WAVE = 0x06, //Spectrum Wave Mode + EK_MODE_ALTERNATING = 0x07, //Alternating Mode + EK_MODE_CANDLE = 0x08 //Candle Mode }; static unsigned char colour_mode_data[][16] = { { 0x10, 0x12, 0x29, 0xAA, 0x01, 0x10, 0xA2, 0x60, - 0x00, 0x10, 0x20, 0x01, 0x01, 0x00, 0xFF, 0x64}, /* Static */ + 0x00, 0x10, 0x20, 0x01, 0x01, 0x00, 0xFF, 0x64}, // Static { 0x10, 0x12, 0x29, 0xAA, 0x01, 0x10, 0xA2, 0x60, - 0x00, 0x10, 0x20, 0x01, 0x02, 0x00, 0xFF, 0x64}, /* Breathing */ + 0x00, 0x10, 0x20, 0x01, 0x02, 0x00, 0xFF, 0x64}, // Breathing { 0x10, 0x12, 0x29, 0xAA, 0x01, 0x10, 0xA2, 0x60, - 0x00, 0x10, 0x20, 0x01, 0x03, 0x00, 0xFF, 0x64}, /* Fading */ + 0x00, 0x10, 0x20, 0x01, 0x03, 0xFF, 0xFF, 0x64}, // Fading { 0x10, 0x12, 0x29, 0xAA, 0x01, 0x10, 0xA2, 0x60, - 0x00, 0x10, 0x20, 0x01, 0x04, 0x00, 0xFF, 0x64}, /* Marquee */ + 0x00, 0x10, 0x20, 0x01, 0x04, 0x00, 0xFF, 0x64}, // Marquee { 0x10, 0x12, 0x29, 0xAA, 0x01, 0x10, 0xA2, 0x60, - 0x00, 0x10, 0x20, 0x01, 0x05, 0x00, 0xFF, 0x64}, /* Covering Marquee */ + 0x00, 0x10, 0x20, 0x01, 0x05, 0x00, 0xFF, 0x64}, // Covering Marquee + { 0x10, 0x12, 0x29, 0xAA, 0x01, 0x10, 0xA2, 0x60, + 0x00, 0x10, 0x20, 0x01, 0x06, 0x00, 0xFF, 0x64}, // Pulse + { 0x10, 0x12, 0x29, 0xAA, 0x01, 0x10, 0xA2, 0x60, + 0x00, 0x10, 0x20, 0x01, 0x07, 0x00, 0xFF, 0x64}, // Wave + { 0x10, 0x12, 0x29, 0xAA, 0x01, 0x10, 0xA2, 0x60, + 0x00, 0x10, 0x20, 0x01, 0x08, 0x00, 0xFF, 0x64}, // Alternating + { 0x10, 0x12, 0x29, 0xAA, 0x01, 0x10, 0xA2, 0x60, + 0x00, 0x10, 0x20, 0x01, 0x09, 0x00, 0xFF, 0x64}, // Candle }; static unsigned char speed_mode_data[][9] = { - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },// Static - { 0x40, 0x38, 0x30, 0x28, 0x20, 0x18, 0x10, 0x08, 0x00 },// Breathing - { 0x40, 0x38, 0x30, 0x28, 0x20, 0x18, 0x10, 0x08, 0x00 },// Fading - { 0x40, 0x38, 0x30, 0x28, 0x20, 0x18, 0x10, 0x08, 0x00 },// Marquee - { 0x40, 0x38, 0x30, 0x28, 0x20, 0x18, 0x10, 0x08, 0x00 } // Covering Marquee + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, // Static + { 0x00, 0x0C, 0x19, 0x25, 0x32, 0x3E, 0x4B, 0x57, 0x64 }, // Breathing + { 0x00, 0x0C, 0x19, 0x25, 0x32, 0x3E, 0x4B, 0x57, 0x64 }, // Fading + { 0x00, 0x0C, 0x19, 0x25, 0x32, 0x3E, 0x4B, 0x57, 0x64 }, // Marquee + { 0x00, 0x0C, 0x19, 0x25, 0x32, 0x3E, 0x4B, 0x57, 0x64 }, // Covering Marquee + { 0x00, 0x0C, 0x19, 0x25, 0x32, 0x3E, 0x4B, 0x57, 0x64 }, // Pulse + { 0x00, 0x0C, 0x19, 0x25, 0x32, 0x3E, 0x4B, 0x57, 0x64 }, // Wave + { 0x00, 0x0C, 0x19, 0x25, 0x32, 0x3E, 0x4B, 0x57, 0x64 }, // Alternating + { 0x00, 0x0C, 0x19, 0x25, 0x32, 0x3E, 0x4B, 0x57, 0x64 } // Candle }; enum diff --git a/RGBController/RGBController_EKController.cpp b/RGBController/RGBController_EKController.cpp index 6a274657..47e01dd3 100644 --- a/RGBController/RGBController_EKController.cpp +++ b/RGBController/RGBController_EKController.cpp @@ -22,22 +22,92 @@ RGBController_EKController::RGBController_EKController(EKController* _dev) location = EK_dev->GetLocation(); mode Static; - Static.name = "Static"; - Static.value = EK_MODE_STATIC; - Static.flags = MODE_FLAG_HAS_PER_LED_COLOR; - Static.color_mode = MODE_COLORS_PER_LED; + Static.name = "Static"; + Static.value = EK_MODE_STATIC; + Static.flags = MODE_FLAG_HAS_PER_LED_COLOR; + Static.color_mode = MODE_COLORS_PER_LED; modes.push_back(Static); mode Breathing; - Breathing.name = "Breathing"; - Breathing.value = EK_MODE_BREATHING; - Breathing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR; - Breathing.speed_min = EK_SPEED_SLOWEST; - Breathing.speed_max = EK_SPEED_FASTEST; - Breathing.color_mode = MODE_COLORS_PER_LED; - Breathing.speed = EK_SPEED_NORMAL; + Breathing.name = "Breathing"; + Breathing.value = EK_MODE_BREATHING; + Breathing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR; + Breathing.speed_min = EK_SPEED_SLOWEST; + Breathing.speed_max = EK_SPEED_FASTEST; + Breathing.color_mode = MODE_COLORS_PER_LED; + Breathing.speed = EK_SPEED_NORMAL; modes.push_back(Breathing); + mode Fading; + Fading.name = "Fading"; + Fading.value = EK_MODE_FADING; + Fading.flags = MODE_FLAG_HAS_SPEED; + Fading.speed_min = EK_SPEED_SLOWEST; + Fading.speed_max = EK_SPEED_FASTEST; + Fading.color_mode = MODE_COLORS_NONE; + Fading.speed = EK_SPEED_NORMAL; + modes.push_back(Fading); + + mode Marquee; + Marquee.name = "Marquee"; + Marquee.value = EK_MODE_MARQUEE; + Marquee.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR; + Marquee.speed_min = EK_SPEED_SLOWEST; + Marquee.speed_max = EK_SPEED_FASTEST; + Marquee.color_mode = MODE_COLORS_PER_LED; + Marquee.speed = EK_SPEED_NORMAL; + modes.push_back(Marquee); + + mode Covering_Marquee; + Covering_Marquee.name = "Covering Marquee"; + Covering_Marquee.value = EK_MODE_COVERING_MARQUEE; + Covering_Marquee.flags = MODE_FLAG_HAS_SPEED; + Covering_Marquee.speed_min = EK_SPEED_SLOWEST; + Covering_Marquee.speed_max = EK_SPEED_FASTEST; + Covering_Marquee.color_mode = MODE_COLORS_NONE; + Covering_Marquee.speed = EK_SPEED_NORMAL; + modes.push_back(Covering_Marquee); + + mode Pulse; + Pulse.name = "Pulse"; + Pulse.value = EK_MODE_PULSE; + Pulse.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR; + Pulse.speed_min = EK_SPEED_SLOWEST; + Pulse.speed_max = EK_SPEED_FASTEST; + Pulse.color_mode = MODE_COLORS_PER_LED; + Pulse.speed = EK_SPEED_NORMAL; + modes.push_back(Pulse); + + mode Spectrum_Wave; + Spectrum_Wave.name = "Spectrum_Wave"; + Spectrum_Wave.value = EK_MODE_SPECTRUM_WAVE; + Spectrum_Wave.flags = MODE_FLAG_HAS_SPEED; + Spectrum_Wave.speed_min = EK_SPEED_SLOWEST; + Spectrum_Wave.speed_max = EK_SPEED_FASTEST; + Spectrum_Wave.color_mode = MODE_COLORS_NONE; + Spectrum_Wave.speed = EK_SPEED_NORMAL; + modes.push_back(Spectrum_Wave); + + mode Alternating; + Alternating.name = "Alternating"; + Alternating.value = EK_MODE_ALTERNATING; + Alternating.flags = MODE_FLAG_HAS_SPEED; + Alternating.speed_min = EK_SPEED_SLOWEST; + Alternating.speed_max = EK_SPEED_FASTEST; + Alternating.color_mode = MODE_COLORS_PER_LED; + Alternating.speed = EK_SPEED_NORMAL; + modes.push_back(Alternating); + + mode Candle; + Candle.name = "Candle"; + Candle.value = EK_MODE_CANDLE; + Candle.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR; + Candle.speed_min = EK_SPEED_SLOWEST; + Candle.speed_max = EK_SPEED_FASTEST; + Candle.color_mode = MODE_COLORS_PER_LED; + Candle.speed = EK_SPEED_NORMAL; + modes.push_back(Candle); + SetupZones(); }