55 ActionResult buttonAction(deluge::hid::Button b,
bool on,
bool inCardRoutine);
56 void setTimeBaseScaleLedState();
59 void clipStatusMidiLearnPadPressed(
bool on,
Clip* whichLoopable);
60 void noteRowMuteMidiLearnPadPressed(
bool on,
NoteRow* whichNoteRow);
61 void endMidiLearnPressSession(MidiLearn newThingPressed = MidiLearn::NONE);
62 void noteOnReceivedForMidiLearn(
MIDICable& cable, int32_t channel, int32_t note, int32_t velocity);
63 void pcReceivedForMIDILearn(
MIDICable& cable, int32_t channel, int32_t pc) {}
64 void ccReceivedForMIDILearn(
MIDICable& cable, int32_t channel, int32_t cc, int32_t value);
65 void drumMidiLearnPadPressed(
bool on,
Drum* drum,
Kit* kit);
66 void instrumentMidiLearnPadPressed(
bool on,
Instrument* instrument);
67 void sectionMidiLearnPadPressed(
bool on, uint8_t section);
68 void midiLearnFlash();
69 void setModLedStates();
70 int32_t getModKnobMode();
71 void modEncoderAction(int32_t whichModEncoder, int32_t offset);
72 void modEncoderButtonAction(uint8_t whichModEncoder,
bool on);
73 void modButtonAction(uint8_t whichButton,
bool on);
74 void setKnobIndicatorLevels();
75 void setKnobIndicatorLevel(uint8_t whichModEncoder);
77 void setActiveModControllableTimelineCounter(
TimelineCounter* playPositionCounter,
78 bool shouldSendMidiFeedback =
true);
80 void cycleThroughReverbPresets();
81 char const* getReverbPresetDisplayName(int32_t preset);
82 int32_t getCurrentReverbPreset();
83 void setModRegion(uint32_t pos = 0xFFFFFFFF, uint32_t length = 0, int32_t noteRowId = 0);
84 void notifyParamAutomationOccurred(
ParamManager* paramManager,
bool updateModLevels =
true);
85 void displayAutomation();
86 void displayOutputName(
Output* output,
bool doBlink =
true,
Clip* clip =
nullptr);
89 bool doBlink =
false);
90 void navigateThroughAudioOutputsForAudioClip(int32_t offset,
AudioClip* clip,
bool doBlink =
false);
92 void drawOutputNameFromDetails(OutputType outputType, int32_t slot, int32_t subSlot,
char const* name,
93 bool isNameEmpty,
bool editedByUser,
bool doBlink,
Clip* clip =
nullptr);
94 void startMIDILearn();
96 [[nodiscard]]
RGB getClipMuteSquareColour(
Clip* clip,
RGB thisColour,
bool allowMIDIFlash =
true);
97 ActionResult clipStatusPadAction(
Clip* clip,
bool on, int32_t yDisplayIfInSessionView = -1);
98 void flashPlayEnable();
99 void flashPlayDisable();
100 void flashPlayRoutine();
102 void activateMacro(uint32_t y);
104 bool renderMacros(int32_t column, uint32_t y, int32_t selectedMacro,
RGB image[][kDisplayWidth + kSideBarWidth],
105 uint8_t occupancyMask[][kDisplayWidth + kSideBarWidth]);
108 MidiLearn thingPressedForMidiLearn = MidiLearn::NONE;
109 bool deleteMidiCommandOnRelease;
110 bool midiLearnFlashOn;
111 bool shouldSaveSettingsAfterMidiLearn;
115 Drum* drumPressedForMIDILearn;
118 Kit* kitPressedForMIDILearn;
123 bool pendingParamAutomationUpdatesModLevels;
128 uint32_t timeSaveButtonPressed;
130 int32_t modNoteRowId;
139 PatchSource source1 = PatchSource::NONE, PatchSource source2 = PatchSource::NONE);
142 void sendMidiFollowFeedback(
ModelStackWithAutoParam* modelStackWithParam =
nullptr, int32_t knobPos = kNoSelection,
143 bool isAutomation =
false);
149 void getParameterNameFromModEncoder(int32_t whichModEncoder,
char* parameterName);
151 bool isClipContext();
154 void pretendModKnobsUntouchedForAWhile();
155 void instrumentBeenEdited();
156 void clearMelodicInstrumentMonoExpressionIfPossible();
159 int32_t getMaxYDisplayForVUMeter(
float level);
160 int32_t cachedMaxYDisplayForVUMeterL;
161 int32_t cachedMaxYDisplayForVUMeterR;
162 void renderVUMeter(int32_t maxYDisplay, int32_t xDisplay,
RGB thisImage[][kDisplayWidth + kSideBarWidth]);
163 bool renderedVUMeter;