Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::format::aax::EditorHost Class Referenceabstract

The editor-facing surface of the AAX data model. More...

#include <aax_editor.hpp>

Public Member Functions

virtual ~EditorHost ()=default
virtual Processor * editor_processor ()=0
 The model-side Processor whose create_view() builds the editor.
virtual state::StateStore * editor_store ()=0
 The store the editor's Bindings read and write.
virtual std::optional< ViewSize > editor_view_size ()=0
 The plugin's declared ViewSize hints, or nullopt when it has no editor to size.
virtual const PluginDefinition & editor_definition () const =0
 The parameter/bus model this plugin registered with AAX.
virtual void release_editor_gestures ()=0
 Release any automation gesture still open.
virtual void set_editor_invalidation_handler (std::function< void()> handler)
 Install the callback the model fires when the Processor behind editor_processor() is about to go away — the host removing or re-creating the algorithm instance the editor is bound to.

Detailed Description

The editor-facing surface of the AAX data model.

AAX splits a plug-in into a host-side data model (AAX_CEffectParameters, which owns the parameters and the GUI) and a real-time algorithm that receives values as coefficient packets. The two never share a Processor: the algorithm's lives in its private data block, so the editor needs its own on the model side. The parameter manager — not either Processor — is the value authority; the model keeps this store and the manager in sync in both directions so the editor and the algorithm never drift.

The adapter's AAX_CEffectParameters subclass implements this, and PulpAaxEffectGUI resolves it from AAX_CEffectGUI::GetEffectParameters(). Declared here, free of AAX types, so the seam stays visible to code and tests that never see the SDK.

Constructor & Destructor Documentation

◆ ~EditorHost()

virtual pulp::format::aax::EditorHost::~EditorHost ( )
virtualdefault

Member Function Documentation

◆ editor_definition()

virtual const PluginDefinition & pulp::format::aax::EditorHost::editor_definition ( ) const
pure virtual

The parameter/bus model this plugin registered with AAX.

◆ editor_processor()

virtual Processor * pulp::format::aax::EditorHost::editor_processor ( )
pure virtual

The model-side Processor whose create_view() builds the editor.

Null when the plugin declares no editor or the factory failed.

◆ editor_store()

virtual state::StateStore * pulp::format::aax::EditorHost::editor_store ( )
pure virtual

The store the editor's Bindings read and write.

Null iff editor_processor() is null.

◆ editor_view_size()

virtual std::optional< ViewSize > pulp::format::aax::EditorHost::editor_view_size ( )
pure virtual

The plugin's declared ViewSize hints, or nullopt when it has no editor to size.

Reachable before any editor exists — AAX asks for a size through GetViewSize independently of the window lifecycle, and the answer comes from Processor::view_size(), which needs no view tree.

◆ release_editor_gestures()

virtual void pulp::format::aax::EditorHost::release_editor_gestures ( )
pure virtual

Release any automation gesture still open.

The editor calls this as it tears down: a window closed mid-drag would otherwise leave the host's automation record open with no editor left to close it.

◆ set_editor_invalidation_handler()

virtual void pulp::format::aax::EditorHost::set_editor_invalidation_handler ( std::function< void()> handler)
inlinevirtual

Install the callback the model fires when the Processor behind editor_processor() is about to go away — the host removing or re-creating the algorithm instance the editor is bound to.

The editor must tear down its view tree inside the callback; the Processor is deleted as soon as it returns. An empty function clears the hook.


The documentation for this class was generated from the following file:
  • /home/runner/work/pulp/pulp/core/format/include/pulp/format/aax_editor.hpp