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

Public Member Functions

bool getGreyoutColsAndRows (uint32_t *cols, uint32_t *rows) override
 
bool opened () override
 
void focusRegained () override
 
ActionResult buttonAction (deluge::hid::Button b, bool on, bool inCardRoutine) override
 
ActionResult clipCreationButtonPressed (hid::Button i, bool on, bool routine)
 
ActionResult padAction (int32_t x, int32_t y, int32_t velocity) override
 
ActionResult horizontalEncoderAction (int32_t offset) override
 
ActionResult verticalEncoderAction (int32_t offset, bool inCardRoutine) override
 
bool renderSidebar (uint32_t whichRows, RGB image[][kDisplayWidth+kSideBarWidth], uint8_t occupancyMask[][kDisplayWidth+kSideBarWidth]) override
 
void removeClip (Clip *clip)
 
void redrawClipsOnScreen (bool doRender=true)
 
uint32_t getMaxZoom () override
 
void cloneClip (uint8_t yDisplayFrom, uint8_t yDisplayTo)
 
bool renderRow (ModelStack *modelStack, uint8_t yDisplay, RGB thisImage[kDisplayWidth+kSideBarWidth], uint8_t thisOccupancyMask[kDisplayWidth+kSideBarWidth], bool drawUndefinedArea=true)
 
void graphicsRoutine () override
 
int32_t displayLoopsRemainingPopup (bool ephemeral=false)
 display number of bars or quarter notes remaining until a launch event
 
void potentiallyRenderClipLaunchPlayhead (bool reallyNoTickSquare, int32_t sixteenthNotesRemaining)
 
void requestRendering (UI *ui, uint32_t whichMainRows=0xFFFFFFFF, uint32_t whichSideRows=0xFFFFFFFF)
 
int32_t getClipPlaceOnScreen (Clip *clip)
 
void drawStatusSquare (uint8_t yDisplay, RGB thisImage[])
 
void drawSectionSquare (uint8_t yDisplay, RGB thisImage[])
 
bool calculateZoomPinSquares (uint32_t oldScroll, uint32_t newScroll, uint32_t newZoom, uint32_t oldZoom) override
 
uint32_t getMaxLength () override
 
bool setupScroll (uint32_t oldScroll) override
 
uint32_t getClipLocalScroll (Clip *loopable, uint32_t overviewScroll, uint32_t xZoom)
 
void flashPlayRoutine ()
 
void modEncoderButtonAction (uint8_t whichModEncoder, bool on) override
 
void modButtonAction (uint8_t whichButton, bool on) override
 
void selectEncoderAction (int8_t offset) override
 
ActionResult timerCallback () override
 
void noteRowChanged (InstrumentClip *clip, NoteRow *noteRow) override
 
void setLedStates ()
 
void editNumRepeatsTilLaunch (int32_t offset)
 
uint32_t getGreyedOutRowsNotRepresentingOutput (Output *output) override
 
bool renderMainPads (uint32_t whichRows, RGB image[][kDisplayWidth+kSideBarWidth], uint8_t occupancyMask[][kDisplayWidth+kSideBarWidth], bool drawUndefinedArea=true) override
 
void midiLearnFlash () override
 
void transitionToViewForClip (Clip *clip=nullptr)
 
void transitionToSessionView ()
 
void finishedTransitioningHere ()
 
void playbackEnded () override
 
void clipNeedsReRendering (Clip *clip) override
 
void sampleNeedsReRendering (Sample *sample) override
 
ClipgetClipOnScreen (int32_t yDisplay)
 
OutputgetOutputFromPad (int32_t x, int32_t y)
 
void modEncoderAction (int32_t whichModEncoder, int32_t offset) override
 
ActionResult verticalScrollOneSquare (int32_t direction)
 
void renderOLED (deluge::hid::display::oled_canvas::Canvas &canvas) override
 
void redrawNumericDisplay ()
 
void clearNumericDisplay ()
 
void displayRepeatsTilLaunch ()
 
ClipgetClipForLayout ()
 
int32_t getClipIndexForLayout ()
 
void copyClipName (Clip *source, Clip *target, Output *targetOutput)
 
bool gridFirstPadActive ()
 
ActionResult gridHandlePads (int32_t x, int32_t y, int32_t on)
 
ActionResult gridHandleScroll (int32_t offsetX, int32_t offsetY)
 
UIType getUIType () override
 
ClipcreateNewClip (OutputType outputType, int32_t yDisplay)
 
void enterMacrosConfigMode ()
 
void exitMacrosConfigMode ()
 
char const * getMacroKindString (SessionMacroKind kind)
 
void enterMidiLearnMode ()
 
void exitMidiLearnMode ()
 
void displayPotentialTempoChange (UI *ui)
 
void displayTempoBPM (deluge::hid::display::oled_canvas::Canvas &canvas, StringBuf &tempoBPM, bool clearArea)
 
void displayCurrentRootNoteAndScaleName (deluge::hid::display::oled_canvas::Canvas &canvas, StringBuf &rootNoteAndScaleName, bool clearArea)
 
void replaceInstrumentClipWithAudioClip (Clip *clip)
 
void gridPulseSelectedClip ()
 
- Public Member Functions inherited from TimelineView
void scrollFinished () override
 
TimelineViewtoTimelineView () final
 Convert this view to a TimelineView.
 
virtual int32_t getNavSysId () const
 
virtual void tellMatrixDriverWhichRowsContainSomethingZoomable ()
 
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 bool supportsTriplets () const
 
virtual void notifyPlaybackBegun ()
 
- Public Member Functions inherited from UI
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

uint32_t selectedClipTimePressed
 
uint8_t selectedClipYDisplay
 
uint8_t selectedClipPressYDisplay
 
uint8_t selectedClipPressXDisplay
 
bool clipWasSelectedWithShift
 
bool performActionOnPadRelease
 
bool performActionOnSectionPadRelease
 
uint8_t sectionPressed
 
uint8_t masterCompEditMode
 
int8_t selectedMacro = -1
 
bool createClip {false}
 
OutputType lastTypeCreated {OutputType::NONE}
 
float lastDisplayedTempo = 0
 
int16_t lastDisplayedRootNote = 0
 
- Public Attributes inherited from UI
bool oledShowsUIUnderneath
 

Private Member Functions

void commandChangeSectionRepeats (int8_t offset)
 
void commandChangeClipPreset (int8_t offset)
 
void commandChangeCurrentSectionRepeats (int8_t offset)
 
void commandChangeLayout (int8_t offset)
 
void renderViewDisplay ()
 render session view display on opening
 
void sectionPadAction (uint8_t y, bool on)
 
void clipPressEnded ()
 
void drawSectionRepeatNumber ()
 
void beginEditingSectionRepeatsNum ()
 
void goToArrangementEditor ()
 
void rowNeedsRenderingDependingOnSubMode (int32_t yDisplay)
 
void setCentralLEDStates ()
 
ClipcreateNewAudioClip (int32_t yDisplay)
 
ClipcreateNewInstrumentClip (OutputType outputType, int32_t yDisplay)
 
bool createNewTrackForAudioClip (AudioClip *newClip)
 
bool createNewTrackForInstrumentClip (OutputType type, InstrumentClip *clip, bool copyDrumsFromClip)
 
bool insertAndResyncNewClip (Clip *newClip, int32_t yDisplay)
 
void resyncNewClip (Clip *newClip, ModelStackWithTimelineCounter *modelStackWithTimelineCounter)
 
void selectLayout (int8_t offset)
 
void renderLayoutChange (bool displayPopup=true)
 
void selectSpecificLayout (SessionLayoutType layout)
 
bool gridRenderSidebar (uint32_t whichRows, RGB image[][kDisplayWidth+kSideBarWidth], uint8_t occupancyMask[][kDisplayWidth+kSideBarWidth])
 
void gridRenderActionModes (int32_t y, RGB image[][kDisplayWidth+kSideBarWidth], uint8_t occupancyMask[][kDisplayWidth+kSideBarWidth])
 
bool gridRenderMainPads (uint32_t whichRows, RGB image[][kDisplayWidth+kSideBarWidth], uint8_t occupancyMask[][kDisplayWidth+kSideBarWidth], bool drawUndefinedArea=true)
 
RGB gridRenderClipColor (Clip *clip, int32_t x, int32_t y, bool renderPulse=true)
 
ActionResult gridHandlePadsEdit (int32_t x, int32_t y, int32_t on, Clip *clip)
 
ActionResult gridHandlePadsLaunch (int32_t x, int32_t y, int32_t on, Clip *clip)
 
ActionResult gridHandlePadsLaunchImmediate (int32_t x, int32_t y, int32_t on, Clip *clip)
 
ActionResult gridHandlePadsLaunchWithSelection (int32_t x, int32_t y, int32_t on, Clip *clip)
 
void gridHandlePadsWithMidiLearnPressed (int32_t x, int32_t on, Clip *clip)
 
ActionResult gridHandlePadsMacros (int32_t x, int32_t y, int32_t on, Clip *clip)
 
void gridHandlePadsLaunchToggleArming (Clip *clip, bool immediate)
 
void gridTransitionToSessionView ()
 
void gridTransitionToViewForClip (Clip *clip)
 
bool gridSecondPadInactive ()
 
void gridResetPresses (bool first=true, bool second=true)
 
ClipgridCloneClip (Clip *sourceClip)
 
ClipgridCreateClipInTrack (Output *targetOutput)
 
AudioClipgridCreateAudioClipWithNewTrack ()
 
InstrumentClipgridCreateInstrumentClipWithNewTrack (OutputType type)
 
ClipgridCreateClip (uint32_t targetSection, Output *targetOutput=nullptr, Clip *sourceClip=nullptr)
 
void gridClonePad (uint32_t sourceX, uint32_t sourceY, uint32_t targetX, uint32_t targetY)
 
void setupNewClip (Clip *newClip)
 
void gridStartSection (uint32_t section, bool instant)
 
void gridToggleClipPlay (Clip *clip, bool instant)
 
const size_t gridTrackCount () const
 
uint32_t gridClipCountForTrack (Output *track)
 
uint32_t gridTrackIndexFromTrack (Output *track, uint32_t maxTrack)
 
OutputgridTrackFromIndex (uint32_t trackIndex, uint32_t maxTrack)
 
int32_t gridYFromSection (uint32_t section)
 
int32_t gridSectionFromY (uint32_t y)
 
int32_t gridXFromTrack (uint32_t trackIndex)
 
int32_t gridTrackIndexFromX (uint32_t x, uint32_t maxTrack)
 
OutputgridTrackFromX (uint32_t x, uint32_t maxTrack)
 
ClipgridClipFromCoords (uint32_t x, uint32_t y)
 
int32_t gridClipIndexFromCoords (uint32_t x, uint32_t y)
 
Cartesian gridXYFromClip (Clip &clip)
 
void gridSetDefaultMode ()
 
void setupTrackCreation () const
 
void exitTrackCreation ()
 
void gridStopSelectedClipPulsing ()
 disable selected clip pulsing
 
void gridResetSelectedClipPulseProgress ()
 reset blend position for pulse
 
void gridSelectClipForPulsing (Clip &clip)
 render pulse for selected clip
 
bool gridCheckForPulseStop ()
 check if we should stop pulsing
 

Private Attributes

SessionLayoutType previousLayout
 
SessionGridMode previousGridModeActive
 
bool sessionButtonActive = false
 
bool sessionButtonUsed = false
 
bool horizontalEncoderPressed = false
 
bool viewingRecordArmingActive = false
 
SessionGridMode gridModeSelected = SessionGridModeEdit
 
SessionGridMode gridModeActive = SessionGridModeEdit
 
bool gridActiveModeUsed = false
 
int32_t gridFirstPressedX = -1
 
int32_t gridFirstPressedY = -1
 
int32_t gridSecondPressedX = -1
 
int32_t gridSecondPressedY = -1
 
bool gridSelectedClipPulsing = false
 
ClipselectedClipForPulsing = nullptr
 
RGB gridSelectedClipRenderedColour
 
bool blendDirection = false
 
int32_t progress = 0
 

Static Private Attributes

static constexpr int32_t kMinProgress = 1
 
static constexpr int32_t kMaxProgressFull = (65535 / 100) * 60
 
static constexpr int32_t kMaxProgressDim = 1000
 
static constexpr int32_t kPulseRate = 50
 
static constexpr int32_t kBlendRate = 60
 
static constexpr int32_t kBlendOffsetFull = kPulseRate * kBlendRate
 
static constexpr int32_t kBlendOffsetDim = kPulseRate
 

Additional Inherited Members

- Protected Member Functions inherited from ClipNavigationTimelineView
void horizontalScrollForLinearRecording (int32_t newXScroll)
 
- Protected Attributes inherited from UI
UIType uiType
 
- Static Protected Attributes inherited from ClipNavigationTimelineView
static int32_t xScrollBeforeFollowingAutoExtendingLinearRecording
 

Member Function Documentation

◆ buttonAction()

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

Reimplemented from UI.

◆ calculateZoomPinSquares()

bool SessionView::calculateZoomPinSquares ( uint32_t oldScroll,
uint32_t newScroll,
uint32_t newZoom,
uint32_t oldZoom )
overridevirtual

Reimplemented from TimelineView.

◆ clipNeedsReRendering()

void SessionView::clipNeedsReRendering ( Clip * clip)
overridevirtual

Reimplemented from RootUI.

◆ focusRegained()

void SessionView::focusRegained ( )
overridevirtual

Reimplemented from ClipNavigationTimelineView.

◆ getGreyedOutRowsNotRepresentingOutput()

uint32_t SessionView::getGreyedOutRowsNotRepresentingOutput ( Output * output)
overridevirtual

Reimplemented from RootUI.

◆ getGreyoutColsAndRows()

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

Reimplemented from UI.

◆ getMaxLength()

uint32_t SessionView::getMaxLength ( )
overridevirtual

Implements TimelineView.

◆ getMaxZoom()

uint32_t SessionView::getMaxZoom ( )
overridevirtual

Implements TimelineView.

◆ getUIType()

UIType SessionView::getUIType ( )
inlineoverridevirtual

Implements UI.

◆ graphicsRoutine()

void SessionView::graphicsRoutine ( )
overridevirtual

Reimplemented from UI.

◆ horizontalEncoderAction()

ActionResult SessionView::horizontalEncoderAction ( int32_t offset)
overridevirtual

Reimplemented from ClipNavigationTimelineView.

◆ midiLearnFlash()

void SessionView::midiLearnFlash ( )
overridevirtual

Reimplemented from RootUI.

◆ modButtonAction()

void SessionView::modButtonAction ( uint8_t whichButton,
bool on )
overridevirtual

Reimplemented from UI.

◆ modEncoderAction()

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

Reimplemented from UI.

◆ modEncoderButtonAction()

void SessionView::modEncoderButtonAction ( uint8_t whichModEncoder,
bool on )
overridevirtual

Reimplemented from UI.

◆ noteRowChanged()

void SessionView::noteRowChanged ( InstrumentClip * clip,
NoteRow * noteRow )
overridevirtual

Reimplemented from RootUI.

◆ opened()

bool SessionView::opened ( )
overridevirtual

Reimplemented from UI.

◆ padAction()

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

Reimplemented from UI.

◆ playbackEnded()

void SessionView::playbackEnded ( )
overridevirtual

Reimplemented from RootUI.

◆ renderMainPads()

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

Reimplemented from UI.

◆ renderOLED()

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

Implements UI.

◆ renderSidebar()

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

Reimplemented from UI.

◆ sampleNeedsReRendering()

void SessionView::sampleNeedsReRendering ( Sample * sample)
overridevirtual

Reimplemented from RootUI.

◆ selectEncoderAction()

void SessionView::selectEncoderAction ( int8_t offset)
overridevirtual

Reimplemented from UI.

◆ setupScroll()

bool SessionView::setupScroll ( uint32_t oldScroll)
overridevirtual

Reimplemented from TimelineView.

◆ timerCallback()

ActionResult SessionView::timerCallback ( )
overridevirtual

Reimplemented from UI.

◆ verticalEncoderAction()

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

Reimplemented from UI.


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