diff --git a/VortexEngine/src/Leds/LedTypes.h b/VortexEngine/src/Leds/LedTypes.h index 9a71f3a000..6239a40287 100644 --- a/VortexEngine/src/Leds/LedTypes.h +++ b/VortexEngine/src/Leds/LedTypes.h @@ -222,13 +222,27 @@ inline LedPos ledmapGetNextLed(LedMap map, LedPos pos) #define MAP_LINE_4 (MAP_LED(LED_3) | MAP_LED(LED_13) | MAP_LED(LED_18) | MAP_LED(LED_8)) #define MAP_LINE_5 (MAP_LED(LED_4) | MAP_LED(LED_14) | MAP_LED(LED_19) | MAP_LED(LED_9)) -//Chromadeck bitmap #define MAP_OPPOSITES_1 (MAP_LED(LED_0) | MAP_LED(LED_5) | MAP_LED(LED_10) | MAP_LED(LED_15)) #define MAP_OPPOSITES_2 (MAP_LED(LED_1) | MAP_LED(LED_6) | MAP_LED(LED_11) | MAP_LED(LED_16)) #define MAP_OPPOSITES_3 (MAP_LED(LED_2) | MAP_LED(LED_7) | MAP_LED(LED_12) | MAP_LED(LED_17)) #define MAP_OPPOSITES_4 (MAP_LED(LED_3) | MAP_LED(LED_8) | MAP_LED(LED_13) | MAP_LED(LED_18)) #define MAP_OPPOSITES_5 (MAP_LED(LED_4) | MAP_LED(LED_9) | MAP_LED(LED_14) | MAP_LED(LED_19)) +// radial led maps around the chromadeck +#define MAP_RADIAL_OUTER(n) (MAP_LED(LED_0 + ((n) % LED_10))) +#define MAP_RADIAL_INNER(n) (MAP_LED(LED_10 + ((n) % LED_10))) +#define MAP_RADIAL(n) (MAP_RADIAL_INNER(n) | MAP_RADIAL_OUTER(n)) +#define MAP_RADIAL_0 MAP_RADIAL(0) +#define MAP_RADIAL_1 MAP_RADIAL(1) +#define MAP_RADIAL_2 MAP_RADIAL(2) +#define MAP_RADIAL_3 MAP_RADIAL(3) +#define MAP_RADIAL_4 MAP_RADIAL(4) +#define MAP_RADIAL_5 MAP_RADIAL(5) +#define MAP_RADIAL_6 MAP_RADIAL(6) +#define MAP_RADIAL_7 MAP_RADIAL(7) +#define MAP_RADIAL_8 MAP_RADIAL(8) +#define MAP_RADIAL_9 MAP_RADIAL(9) + // set a single led inline void ledmapSetLed(LedMap &map, LedPos pos) { diff --git a/VortexEngine/src/Menus/MenuList/ColorSelect.cpp b/VortexEngine/src/Menus/MenuList/ColorSelect.cpp index e1ce189e96..780aa4d06d 100644 --- a/VortexEngine/src/Menus/MenuList/ColorSelect.cpp +++ b/VortexEngine/src/Menus/MenuList/ColorSelect.cpp @@ -180,31 +180,52 @@ void ColorSelect::onLongClickM() void ColorSelect::showSlotSelection() { - uint8_t exitIndex = m_colorset.numColors(); - uint32_t holdDur = g_pButtonM->holdDuration(); - bool withinNumColors = m_curSelection < exitIndex; - bool holdDurationCheck = g_pButtonM->isPressed() && holdDur >= DELETE_THRESHOLD_TICKS; - bool holdDurationModCheck = (holdDur % (DELETE_CYCLE_TICKS * 2)) > DELETE_CYCLE_TICKS; - const RGBColor &col = m_colorset[m_curSelection]; - if (withinNumColors && holdDurationCheck && holdDurationModCheck) { - // breath red for delete slot - Leds::breatheIndex(LED_ALL, 0, holdDur); - } else if (withinNumColors) { - if (col.empty()) { - Leds::setAll(RGB_WHITE0); - } - // blink the selected slot color - Leds::blinkAll(150, 650, col); - } else if (exitIndex < MAX_COLOR_SLOTS) { - if (m_curSelection == exitIndex) { - // blink both leds and blink faster to indicate 'add' new color - Leds::blinkAll(100, 150, RGB_WHITE2); + // Render the colors on radial indices 0-7 + for (uint8_t i = 0; i < 8; ++i) { + RGBColor col; + if (m_colorset.numColors() <= i) { + Leds::setMap(MAP_RADIAL_INNER(i), RGB_WHITE0); + //Leds::blinkMap(MAP_RADIAL(i + 8)); + } else { + Leds::setMap(MAP_RADIAL_OUTER(i), m_colorset.get(i)); + Leds::setMap(MAP_RADIAL_INNER(i), RGB_WHITE2); } - exitIndex++; - } - if (m_curSelection == exitIndex) { - showFullSet(50, 100); } + + // Radial index 8: Exit + Leds::setMap(MAP_RADIAL_INNER(8), RGB_WHITE1); + Leds::setMap(MAP_RADIAL_OUTER(8), RGB_RED3); + + //Leds::setMap(MAP_RADIAL_INNER(7), HSVColor(Time::getCurtime() / 10, 255, 255)); + //Leds::setMap(MAP_RADIAL_OUTER(7), RGB_WHITE4); + //Leds::blinkMap(MAP_RADIAL(6)); + + + //uint8_t exitIndex = m_colorset.numColors(); + //uint32_t holdDur = g_pButtonM->holdDuration(); + //bool withinNumColors = m_curSelection < exitIndex; + //bool holdDurationCheck = g_pButtonM->isPressed() && holdDur >= DELETE_THRESHOLD_TICKS; + //bool holdDurationModCheck = (holdDur % (DELETE_CYCLE_TICKS * 2)) > DELETE_CYCLE_TICKS; + //const RGBColor &col = m_colorset[m_curSelection]; + //if (withinNumColors && holdDurationCheck && holdDurationModCheck) { + // // breath red for delete slot + // Leds::breatheIndex(LED_ALL, 0, holdDur); + //} else if (withinNumColors) { + // if (col.empty()) { + // Leds::setAll(RGB_WHITE0); + // } + // // blink the selected slot color + // Leds::blinkAll(150, 650, col); + //} else if (exitIndex < MAX_COLOR_SLOTS) { + // if (m_curSelection == exitIndex) { + // // blink both leds and blink faster to indicate 'add' new color + // Leds::blinkAll(100, 150, RGB_WHITE2); + // } + // exitIndex++; + //} + //if (m_curSelection == exitIndex) { + // showFullSet(50, 100); + //} } void ColorSelect::showSelection(ColorSelectState mode)