20#include "definitions_cxx.hpp"
23constexpr size_t numLedBlinkers = 6;
25namespace indicator_leds {
27constexpr uint8_t fromCartesian(Cartesian c) {
28 return c.x + c.y * NUM_LED_COLS;
31constexpr uint8_t fromXY(int32_t x, int32_t y) {
32 return x + y * NUM_LED_COLS;
36enum class LED : uint8_t {
37 AFFECT_ENTIRE = fromCartesian(affectEntireButtonCoord),
38 SESSION_VIEW = fromCartesian(sessionViewButtonCoord),
39 CLIP_VIEW = fromCartesian(clipViewButtonCoord),
40 SYNTH = fromCartesian(synthButtonCoord),
41 KIT = fromCartesian(kitButtonCoord),
42 MIDI = fromCartesian(midiButtonCoord),
43 CV = fromCartesian(cvButtonCoord),
44 KEYBOARD = fromCartesian(keyboardButtonCoord),
45 SCALE_MODE = fromCartesian(scaleModeButtonCoord),
46 CROSS_SCREEN_EDIT = fromCartesian(crossScreenEditButtonCoord),
47 BACK = fromCartesian(backButtonCoord),
48 LOAD = fromCartesian(loadButtonCoord),
49 SAVE = fromCartesian(saveButtonCoord),
50 LEARN = fromCartesian(learnButtonCoord),
51 TAP_TEMPO = fromCartesian(tapTempoButtonCoord),
52 SYNC_SCALING = fromCartesian(syncScalingButtonCoord),
53 TRIPLETS = fromCartesian(tripletsButtonCoord),
54 PLAY = fromCartesian(playButtonCoord),
55 RECORD = fromCartesian(recordButtonCoord),
56 SHIFT = fromCartesian(shiftButtonCoord),
69const LED modLed[8] = {LED::MOD_0, LED::MOD_1, LED::MOD_2, LED::MOD_3, LED::MOD_4, LED::MOD_5, LED::MOD_6, LED::MOD_7};
79extern bool ledBlinkState[];
81void setLedState(LED led,
bool newState,
bool allowContinuedBlinking =
false);
82void blinkLed(LED led, uint8_t numBlinks = 255, uint8_t blinkingType = 0,
bool initialState =
true);
83void ledBlinkTimeout(uint8_t blinkingType,
bool forceRestart =
false,
bool resetToState =
true);
84void indicateAlertOnLed(LED led);
85void setMeterLevel(uint8_t whichKnob, uint8_t level);
86void setKnobIndicatorLevel(uint8_t whichKnob, uint8_t level,
bool isBipolar =
false);
87void actuallySetKnobIndicatorLevel(uint8_t whichKnob, uint8_t level,
bool isBipolar =
false);
88void clearKnobIndicatorLevels();
89void blinkKnobIndicator(int32_t whichKnob,
bool isBipolar);
90void stopBlinkingKnobIndicator(int32_t whichKnob);
91void blinkKnobIndicatorLevelTimeout();
92uint8_t getLedBlinkerIndex(LED led);
93void stopLedBlinking(LED led,
bool resetState =
false);
94bool updateBlinkingLedStates(uint8_t blinkingType);
95bool isKnobIndicatorBlinking(int32_t whichKnob);
96int32_t getBipolarBrightnessOutputValue(int32_t whichIndicator, int32_t numIndicatorLedsFullyOn, int32_t brightness,
97 int32_t bipolarLevel);
98int32_t getBrightnessOutputValue(int32_t whichIndicator, int32_t numIndicatorLedsFullyOn, int32_t brightness);
102using IndicatorLED = indicator_leds::LED;
Definition indicator_leds.h:71