Deluge Firmware 1.3.0
Build date: 2025.06.05
Loading...
Searching...
No Matches
ArrangerView Class Referencefinal
Inheritance diagram for ArrangerView:
Collaboration diagram for ArrangerView:

Public Member Functions

bool opened () override
 
void focusRegained () override
 
ActionResult padAction (int32_t x, int32_t y, int32_t velocity) override
 
ActionResult handleEditPadAction (int32_t x, int32_t y, int32_t velocity)
 
ActionResult handleStatusPadAction (int32_t y, int32_t velocity, UI *ui)
 
ActionResult handleAuditionPadAction (int32_t y, int32_t velocity, UI *ui)
 
ActionResult buttonAction (deluge::hid::Button b, bool on, bool inCardRoutine) override
 
ActionResult verticalEncoderAction (int32_t offset, bool inCardRoutine) override
 
void selectEncoderAction (int8_t offset) override
 
void modEncoderAction (int32_t whichModEncoder, int32_t offset) override
 
void repopulateOutputsOnScreen (bool doRender=true)
 
bool renderSidebar (uint32_t whichRows, RGB image[][kDisplayWidth+kSideBarWidth], uint8_t occupancyMask[][kDisplayWidth+kSideBarWidth]) override
 
bool renderMainPads (uint32_t whichRows, RGB image[][kDisplayWidth+kSideBarWidth], uint8_t occupancyMask[][kDisplayWidth+kSideBarWidth], bool drawUndefinedArea=true) override
 
bool renderRow (ModelStack *modelStack, int32_t yDisplay, int32_t xScroll, uint32_t xZoom, RGB *thisImage, uint8_t thisOccupancyMask[], int32_t renderWidth)
 
void editPadAction (int32_t x, int32_t y, bool on)
 
ActionResult horizontalEncoderAction (int32_t offset) override
 
uint32_t getMaxLength () override
 
uint32_t getMaxZoom () override
 
void graphicsRoutine () override
 
int32_t getNavSysId () const override
 
void navigateThroughPresets (int32_t offset)
 
void notifyActiveClipChangedOnOutput (Output *output)
 
ActionResult timerCallback () override
 
void reassessWhetherDoingAutoScroll (int32_t pos=-1)
 
void autoScrollOnPlaybackEnd ()
 
bool initiateXScroll (int32_t newScrollPos)
 
bool supportsTriplets () const override
 
bool putDraggedClipInstanceInNewPosition (Output *output)
 
void tellMatrixDriverWhichRowsContainSomethingZoomable () override
 
void scrollFinished () override
 
void notifyPlaybackBegun () override
 
uint32_t getGreyedOutRowsNotRepresentingOutput (Output *output) override
 
void playbackEnded () override
 
void clipNeedsReRendering (Clip *clip) override
 
void exitSubModeWithoutAction (UI *ui=nullptr)
 
bool transitionToArrangementEditor ()
 
bool getGreyoutColsAndRows (uint32_t *cols, uint32_t *rows) override
 
void setLedStates ()
 
ActionResult verticalScrollOneSquare (int32_t direction)
 
ActionResult horizontalScrollOneSquare (int32_t direction)
 
void renderOLED (deluge::hid::display::oled_canvas::Canvas &canvas) override
 
UIType getUIType () override
 What type of UI is this? e.g. UIType::ARRANGER.
 
UIModControllableContext getUIModControllableContext () override
 What mod controllable context is this UI using? E.g. Automation View can use the Song ModControllable when in Arranger but the Clip ModControllable when in a Clip.
 
ClipgetClipForSelection ()
 
void requestRendering (UI *ui, uint32_t whichMainRows=0xFFFFFFFF, uint32_t whichSideRows=0xFFFFFFFF)
 
- Public Member Functions inherited from TimelineView
void scrollFinished () override
 
TimelineViewtoTimelineView () final
 Convert this view to a TimelineView.
 
virtual bool calculateZoomPinSquares (uint32_t oldScroll, uint32_t newScroll, uint32_t newZoom, uint32_t oldZoom)
 
virtual bool setupScroll (uint32_t oldScroll)
 
ActionResult buttonAction (deluge::hid::Button b, bool on, bool inCardRoutine) override
 
void displayZoomLevel (bool justPopup=false)
 
ActionResult horizontalEncoderAction (int32_t offset) override
 
void displayScrollPos ()
 
void displayNumberOfBarsAndBeats (uint32_t number, uint32_t quantization, bool countFromOne, char const *tooLongText)
 
void initiateXScroll (uint32_t newXScroll, int32_t numSquaresToScroll=kDisplayWidth)
 
bool zoomToMax (bool inOnly=false)
 
void initiateXZoom (int32_t zoomMagnitude, int32_t newScroll, uint32_t oldZoom)
 
void midiLearnFlash () override
 
bool scrollRightToEndOfLengthIfNecessary (int32_t maxLength)
 
bool scrollLeftIfTooFarRight (int32_t maxLength)
 
void tripletsButtonPressed ()
 
void setTripletsLEDState ()
 
int32_t getPosFromSquare (int32_t square, int32_t localScroll=-1) const
 
int32_t getPosFromSquare (int32_t square, int32_t xScroll, uint32_t xZoom) const
 
int32_t getSquareFromPos (int32_t pos, bool *rightOnSquare=nullptr, int32_t localScroll=-1)
 
int32_t getSquareFromPos (int32_t pos, bool *rightOnSquare, int32_t xScroll, uint32_t xZoom)
 
int32_t getSquareEndFromPos (int32_t pos, int32_t localScroll=-1)
 
bool isSquareDefined (int32_t square, int32_t xScroll=-1)
 
bool isSquareDefined (int32_t square, int32_t xScroll, uint32_t xZoom)
 
bool inTripletsView () const
 
- Public Member Functions inherited from RootUI
virtual bool getAffectEntire ()
 
bool canSeeViewUnderneath () final
 
virtual void noteRowChanged (InstrumentClip *clip, NoteRow *noteRow)
 
virtual void sampleNeedsReRendering (Sample *sample)
 
- Public Member Functions inherited from UI
virtual void modButtonAction (uint8_t whichButton, bool on)
 
virtual void modEncoderButtonAction (uint8_t whichModEncoder, bool on)
 
virtual void displayOrLanguageChanged ()
 
virtual ClipMindertoClipMinder ()
 
virtual bool pcReceivedForMidiLearn (MIDICable &fromCable, int32_t channel, int32_t program)
 
virtual bool noteOnReceivedForMidiLearn (MIDICable &fromCable, int32_t channel, int32_t note, int32_t velocity)
 
virtual bool exitUI ()
 returns whether a UI exited
 
void close ()
 
virtual UIgetUI ()
 When entering a UI (e.g. automationView), you may wish to open a different UI based on the current context (e.g. automationViewArranger, automationViewAudioClip, etc.)
 
virtual UIType getUIContextType ()
 What context does UI relate to? e.g. UIType could be AUTOMATION but UIContextType could be ARRANGER, AUDIO CLIP, INSTRUMENT CLIP.
 

Public Attributes

OutputoutputsOnScreen [kDisplayHeight] {}
 
int8_t yPressedEffective {}
 
int8_t yPressedActual {}
 
int8_t xPressed {}
 
bool actionOnDepress {}
 
uint32_t pressTime {}
 
int32_t desiredLength {}
 
int32_t originallyPressedClipActualLength {}
 
bool pressedHead {}
 
int32_t pressedClipInstanceIndex {}
 
OutputpressedClipInstanceOutput {}
 
int32_t pressedClipInstanceXScrollWhenLastInValidPosition {}
 
bool pressedClipInstanceIsInValidPosition {}
 
bool blinkOn {}
 
bool doingAutoScrollNow = false
 
bool mustRedrawTickSquares {}
 
int32_t autoScrollNumSquaresBehind {}
 
int32_t lastInteractedOutputIndex = 0
 
int32_t lastInteractedPos = -1
 
uint8_t lastInteractedSection = 0
 
ClipInstancelastInteractedClipInstance = nullptr
 
int32_t lastInteractedArrangementPos = -1
 
int32_t lastTickSquare {}
 
int32_t xScrollWhenPlaybackStarted {}
 
- Public Attributes inherited from UI
bool oledShowsUIUnderneath
 

Private Member Functions

RGB getMutePadColor (int32_t yDisplay)
 
RGB getAuditionPadColor (int32_t yDisplay)
 
void changeOutputType (OutputType newOutputType)
 
void moveClipToSession ()
 
void auditionPadAction (bool on, int32_t y, UI *ui)
 
void beginAudition (Output *output)
 
void endAudition (Output *output, bool evenIfPlaying=false)
 
ModelStackWithNoteRowgetNoteRowForAudition (ModelStack *modelStack, Kit *kit)
 
DrumgetDrumForAudition (Kit *kit)
 
void setNoSubMode ()
 
void outputActivated (Output *output)
 
void outputDeactivated (Output *output)
 
void transitionToClipView (ClipInstance *clipInstance)
 enter clip view
 
void deleteClipInstance (Output *output, int32_t clipInstanceIndex, ClipInstance *clipInstance, Action *action, bool clearingWholeArrangement=false)
 
void clearArrangement ()
 
void interactWithClipInstance (Output *output, int32_t yDisplay, ClipInstance *clipInstance)
 
void rememberInteractionWithClipInstance (int32_t yDisplay, ClipInstance *clipInstance)
 
void deleteOutput ()
 
void auditionEnded ()
 
void goToSongView ()
 
void changeOutputToAudio ()
 
bool renderRowForOutput (ModelStack *modelStack, Output *output, int32_t xScroll, uint32_t xZoom, RGB *image, uint8_t occupancyMask[], int32_t renderWidth, int32_t ignoreI)
 
InstrumentcreateNewInstrument (OutputType newOutputType, bool *instrumentAlreadyInSong)
 
uint32_t doActualRender (int32_t xScroll, uint32_t xZoom, uint32_t whichRows, RGB *image, uint8_t occupancyMask[][kDisplayWidth+kSideBarWidth], int32_t renderWidth, int32_t imageWidth)
 
void renderDisplay ()
 redraw OLED and 7SEG displays
 
void cloneClipInstanceToWhite (Output *output, int32_t x, int32_t y, int32_t xScroll)
 
void createNewClipInstance (Output *output, int32_t x, int32_t y, int32_t squareStart, int32_t squareEnd, int32_t xScroll)
 
ClipInstancecreateClipInstance (Output *output, int32_t y, int32_t squareStart)
 
ClipgetClipForNewClipInstance (Output *output, Output *lastOutputInteractedWith, ClipInstance *lastClipInstance)
 
ClipgetClipFromSection (Output *output)
 
void adjustClipInstanceLength (Output *output, int32_t x, int32_t y, int32_t squareStart, int32_t squareEnd)
 
void deleteClipInstance (Output *output, ClipInstance *clipInstance)
 
void createNewClipForClipInstance (Output *output, ClipInstance *clipInstance)
 
void recordEditPadPress (Output *output, ClipInstance *clipInstance, int32_t x, int32_t y, int32_t xScroll)
 

Additional Inherited Members

- Protected Attributes inherited from UI
UIType uiType
 

Member Function Documentation

◆ adjustClipInstanceLength()

void ArrangerView::adjustClipInstanceLength ( Output * output,
int32_t x,
int32_t y,
int32_t squareStart,
int32_t squareEnd )
private

called from ArrangerView::editPadAction adjust the length of an existing clip instance

◆ buttonAction()

ActionResult ArrangerView::buttonAction ( deluge::hid::Button b,
bool on,
bool inCardRoutine )
overridevirtual

Reimplemented from UI.

◆ clipNeedsReRendering()

void ArrangerView::clipNeedsReRendering ( Clip * clip)
overridevirtual

Reimplemented from RootUI.

◆ cloneClipInstanceToWhite()

void ArrangerView::cloneClipInstanceToWhite ( Output * output,
int32_t x,
int32_t y,
int32_t xScroll )
private

called from ArrangerView::editPadAction converts an existing clip instance to white when holding shift and pressing a clip instance pad

◆ createClipInstance()

ClipInstance * ArrangerView::createClipInstance ( Output * output,
int32_t y,
int32_t squareStart )
private

called from ArrangerView::createNewClipInstance tries to create a new clip instance and assign a clip to that instance

◆ createNewClipForClipInstance()

void ArrangerView::createNewClipForClipInstance ( Output * output,
ClipInstance * clipInstance )
private

called from ArrangerView::editPadAction creates a new clip when trying to enter a clip instance that does not have a clip assigned to it

◆ createNewClipInstance()

void ArrangerView::createNewClipInstance ( Output * output,
int32_t x,
int32_t y,
int32_t squareStart,
int32_t squareEnd,
int32_t xScroll )
private

called from ArrangerView::editPadAction tries to create a new clip instance when pressing an empty pad on the grid

◆ deleteClipInstance()

void ArrangerView::deleteClipInstance ( Output * output,
ClipInstance * clipInstance )
private

called from ArrangerView::editPadAction deletes a clip instance when short pressing the head of a clip instance

◆ focusRegained()

void ArrangerView::focusRegained ( )
overridevirtual

Reimplemented from UI.

◆ getClipForNewClipInstance()

Clip * ArrangerView::getClipForNewClipInstance ( Output * output,
Output * lastOutputInteractedWith,
ClipInstance * lastClipInstance )
private

called from ArrangerView::createClipInstance get clip to assign to new clip instance being created will not create a new clip, only retrieves existing clips

◆ getClipFromSection()

Clip * ArrangerView::getClipFromSection ( Output * output)
private

called from ArrangerView::getClipForNewClipInstance tries to get a clip from the last section the user interacted with

◆ getGreyedOutRowsNotRepresentingOutput()

uint32_t ArrangerView::getGreyedOutRowsNotRepresentingOutput ( Output * output)
overridevirtual

Reimplemented from RootUI.

◆ getGreyoutColsAndRows()

bool ArrangerView::getGreyoutColsAndRows ( uint32_t * cols,
uint32_t * rows )
overridevirtual

Reimplemented from UI.

◆ getMaxLength()

uint32_t ArrangerView::getMaxLength ( )
overridevirtual

Implements TimelineView.

◆ getMaxZoom()

uint32_t ArrangerView::getMaxZoom ( )
overridevirtual

Implements TimelineView.

◆ getNavSysId()

int32_t ArrangerView::getNavSysId ( ) const
inlinenodiscardoverridevirtual

Reimplemented from TimelineView.

◆ getUIModControllableContext()

UIModControllableContext ArrangerView::getUIModControllableContext ( )
inlineoverridevirtual

What mod controllable context is this UI using? E.g. Automation View can use the Song ModControllable when in Arranger but the Clip ModControllable when in a Clip.

Reimplemented from UI.

◆ getUIType()

UIType ArrangerView::getUIType ( )
inlineoverridevirtual

What type of UI is this? e.g. UIType::ARRANGER.

Implements UI.

◆ graphicsRoutine()

void ArrangerView::graphicsRoutine ( )
overridevirtual

Reimplemented from UI.

◆ horizontalEncoderAction()

ActionResult ArrangerView::horizontalEncoderAction ( int32_t offset)
overridevirtual

Reimplemented from UI.

◆ modEncoderAction()

void ArrangerView::modEncoderAction ( int32_t whichModEncoder,
int32_t offset )
overridevirtual

Reimplemented from UI.

◆ notifyPlaybackBegun()

void ArrangerView::notifyPlaybackBegun ( )
overridevirtual

Reimplemented from RootUI.

◆ opened()

bool ArrangerView::opened ( )
overridevirtual

Reimplemented from UI.

◆ padAction()

ActionResult ArrangerView::padAction ( int32_t x,
int32_t y,
int32_t velocity )
overridevirtual

Reimplemented from UI.

◆ playbackEnded()

void ArrangerView::playbackEnded ( )
overridevirtual

Reimplemented from RootUI.

◆ recordEditPadPress()

void ArrangerView::recordEditPadPress ( Output * output,
ClipInstance * clipInstance,
int32_t x,
int32_t y,
int32_t xScroll )
private

called from ArrangerView::editPadAction records the action of selecting and holding a clip instance

◆ renderMainPads()

bool ArrangerView::renderMainPads ( uint32_t whichRows,
RGB image[][kDisplayWidth+kSideBarWidth],
uint8_t occupancyMask[][kDisplayWidth+kSideBarWidth],
bool drawUndefinedArea = true )
overridevirtual

Reimplemented from UI.

◆ renderOLED()

void ArrangerView::renderOLED ( deluge::hid::display::oled_canvas::Canvas & canvas)
overridevirtual

Implements UI.

◆ renderSidebar()

bool ArrangerView::renderSidebar ( uint32_t whichRows,
RGB image[][kDisplayWidth+kSideBarWidth],
uint8_t occupancyMask[][kDisplayWidth+kSideBarWidth] )
overridevirtual

Reimplemented from UI.

◆ scrollFinished()

void ArrangerView::scrollFinished ( )
overridevirtual

Reimplemented from UI.

◆ selectEncoderAction()

void ArrangerView::selectEncoderAction ( int8_t offset)
overridevirtual

Reimplemented from UI.

◆ supportsTriplets()

bool ArrangerView::supportsTriplets ( ) const
inlinenodiscardoverridevirtual

Reimplemented from RootUI.

◆ tellMatrixDriverWhichRowsContainSomethingZoomable()

void ArrangerView::tellMatrixDriverWhichRowsContainSomethingZoomable ( )
overridevirtual

Reimplemented from TimelineView.

◆ timerCallback()

ActionResult ArrangerView::timerCallback ( )
overridevirtual

Reimplemented from UI.

◆ verticalEncoderAction()

ActionResult ArrangerView::verticalEncoderAction ( int32_t offset,
bool inCardRoutine )
overridevirtual

Reimplemented from UI.


The documentation for this class was generated from the following files: