Deluge Firmware 1.3.0
Build date: 2025.04.16
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
 
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 ()
 

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.

◆ getUIType()

UIType ArrangerView::getUIType ( )
inlineoverridevirtual

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: