24class AutomationEditorLayoutModControllable :
public AutomationEditorLayout {
26 AutomationEditorLayoutModControllable() =
default;
31 int32_t knobPosRight);
36 int32_t xScroll, int32_t xZoom);
38 int32_t yDisplay, int32_t velocity, int32_t effectiveLength, int32_t xScroll,
42 bool recordAutomationSinglePadPress(int32_t xDisplay, int32_t yDisplay);
47 RGB image[][kDisplayWidth + kSideBarWidth],
48 uint8_t occupancyMask[][kDisplayWidth + kSideBarWidth], int32_t renderWidth,
49 int32_t xScroll, uint32_t xZoom, int32_t effectiveLength, int32_t xDisplay,
54 RGB image[][kDisplayWidth + kSideBarWidth],
55 uint8_t occupancyMask[][kDisplayWidth + kSideBarWidth], int32_t lengthToDisplay,
56 int32_t xDisplay,
bool isAutomated, int32_t xScroll, int32_t xZoom,
59 uint8_t occupancyMask[][kDisplayWidth + kSideBarWidth], int32_t xDisplay,
63 uint8_t occupancyMask[][kDisplayWidth + kSideBarWidth], int32_t xDisplay,
64 int32_t yDisplay,
bool isAutomated, int32_t knobPos);
69 OutputType outputType, int32_t knobPosLeft, int32_t knobPosRight);
70 void renderAutomationEditorDisplay7SEG(
Clip* clip, OutputType outputType, int32_t knobPosLeft,
71 bool modEncoderAction);
73 int32_t effectiveLength, int32_t xScroll, int32_t xZoom,
74 int32_t xDisplay = kNoSelection,
bool modEncoderAction =
false);
77 void getAutomationParameterName(
Clip* clip, OutputType outputType,
StringBuf& parameterName);
81 bool automationModEncoderActionForSelectedPad(
ModelStackWithAutoParam* modelStackWithParam, int32_t whichModEncoder,
82 int32_t offset, int32_t effectiveLength);
84 int32_t whichModEncoder, int32_t offset, int32_t effectiveLength);
89 int32_t xScroll, int32_t xZoom);
95 uint32_t getSquareWidth(int32_t square, int32_t effectiveLength, int32_t xScroll, int32_t xZoom);
96 uint32_t getMiddlePosFromSquare(int32_t xDisplay, int32_t effectiveLength, int32_t xScroll, int32_t xZoom);
99 int32_t xDisplay, int32_t effectiveLength, int32_t xScroll, int32_t xZoom,
100 bool modEncoderAction =
false);
102 bool updateDisplay =
true,
bool updateIndicatorLevels =
true);
105 int32_t yDisplay, int32_t effectiveLength, int32_t xScroll, int32_t xZoom);
107 OutputType outputType, int32_t xDisplay, int32_t yDisplay,
108 int32_t effectiveLength, int32_t xScroll, int32_t xZoom);
109 int32_t calculateAutomationKnobPosForPadPress(
ModelStackWithAutoParam* modelStackWithParam, OutputType outputType,
115 int32_t firstPadY, int32_t secondPadX, int32_t secondPadY,
116 int32_t effectiveLength, int32_t xScroll, int32_t xZoom,
117 bool modEncoderAction =
false);
118 int32_t calculateAutomationKnobPosForModEncoderTurn(
ModelStackWithAutoParam* modelStackWithParam, int32_t knobPos,