Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::timeline_editor::SequencerUiHost Class Referenceabstract

The vocabulary-independent half of the seam: where playback is, and asking to hear something. More...

#include <sequencer_ui_host.hpp>

Public Member Functions

virtual ~SequencerUiHost ()=default
virtual UiPlayhead playhead () const noexcept=0
 The latest playhead reading, by value.
virtual AuditionResult begin_audition (const AuditionRequest &request) noexcept=0
 Ask to hear something.
virtual void end_audition (AuditionHandle handle) noexcept=0
 End a sustained audition.

Detailed Description

The vocabulary-independent half of the seam: where playback is, and asking to hear something.

Every method is noexcept: a host is called from inside a gesture and from inside a paint, and the modules on either side of it (timeline, timebase) compile without exceptions. A host that needs to allocate or fail does it off this path and reports the outcome in the returned status.

Constructor & Destructor Documentation

◆ ~SequencerUiHost()

virtual pulp::timeline_editor::SequencerUiHost::~SequencerUiHost ( )
virtualdefault

Member Function Documentation

◆ begin_audition()

virtual AuditionResult pulp::timeline_editor::SequencerUiHost::begin_audition ( const AuditionRequest & request)
pure virtualnoexcept

Ask to hear something.

A host that does not audition returns Unsupported and does nothing else, which is a complete implementation.

Implemented in pulp::timeline_editor::ScriptedUiHost< Intent >.

◆ end_audition()

virtual void pulp::timeline_editor::SequencerUiHost::end_audition ( AuditionHandle handle)
pure virtualnoexcept

End a sustained audition.

Ending an already-ended or never-started handle is a no-op, so a view may end unconditionally on mouse-up.

Implemented in pulp::timeline_editor::ScriptedUiHost< Intent >.

◆ playhead()

virtual UiPlayhead pulp::timeline_editor::SequencerUiHost::playhead ( ) const
pure virtualnoexcept

The latest playhead reading, by value.

Cheap enough to call once per frame; implementations publish through a lock-free primitive rather than blocking the caller.

Implemented in pulp::timeline_editor::ScriptedUiHost< Intent >.


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