Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
processor.hpp File Reference
#include <pulp/audio/buffer.hpp>
#include <pulp/midi/buffer.hpp>
#include <pulp/midi/mpe_buffer.hpp>
#include <pulp/midi/ump_buffer.hpp>
#include <pulp/format/editor_host_kind.hpp>
#include <pulp/format/process_block.hpp>
#include <pulp/runtime/node_abi.hpp>
#include <pulp/state/parameter_event_queue.hpp>
#include <pulp/format/note_name.hpp>
#include <pulp/format/panic.hpp>
#include <pulp/state/store.hpp>
#include <pulp/format/plugin_descriptor.hpp>
#include <pulp/format/prepare_resources.hpp>
#include <pulp/format/process_context.hpp>
#include <array>
#include <atomic>
#include <cstddef>
#include <cstdint>
#include <functional>
#include <mutex>
#include <optional>
#include <unordered_map>
#include <memory>
#include <span>
#include <string>
#include <string_view>
#include <vector>

Go to the source code of this file.

Classes

struct  pulp::format::detail::EditorResizeHandlerEntry
struct  pulp::format::detail::ParamEventsOptOutSlot
 The parameter-event queues adapters hand to opted-out processors, keyed by address, with a flag param_events() sets when one of them is read. More...
class  pulp::format::Processor
struct  pulp::format::Processor::BusesLayout
 ── Opt-in DSP-state carry across a hot-reload (reload lane, item 1.6) ── On a hot-reload the new processor binds to the live StateStore (params + values preserved), but its DSP-internal state — delay lines, filter history, reverb tails, oscillator phase — starts COLD. More...
struct  pulp::format::Processor::EditorPrewarm
 What a scripted editor evaluates every time it opens and that does not depend on the instance: the text of the scripts it loads through WidgetBridge::load_script() (its ScriptedUiSession's script file, a design or help script loaded after the mount) and the inputs it passes to __pulpRuntimeImport__(text, 'materialized-browser'), byte-identical. More...
struct  pulp::format::Processor::SettingsSection
 A custom settings tab this plugin contributes to the host's Settings UI. More...
class  pulp::format::ParamEventsOptOutMonitor
 Records, for one adapter, whether an opted-out processor read param_events(), and logs it once. More...

Namespaces

namespace  pulp
namespace  pulp::dataplane
namespace  pulp::view
 Hover-cursor tracking for platform window hosts.
namespace  pulp::format
 What the product grants a device: the quota table indexed by capability tier and live thermal state.
namespace  pulp::format::detail
 The plugin processor interface.

Macros

#define PULP_FORMAT_HAS_EDITOR_BACKGROUND   1
 Present while Processor::editor_background() exists (the colour a host-embedded editor shows before its document mounts).

Typedefs

using pulp::format::detail::EditorResizeHandler
using pulp::format::detail::EditorResizeHandlerSet
using pulp::format::ProcessorFactory = std::unique_ptr<Processor>(*)()
 Factory function type — plugins provide this to create processor instances.

Functions

std::mutex & pulp::format::detail::editor_resize_mutex ()
 Backing store for the editor→host resize handler (see Processor::request_editor_resize).
std::unordered_map< const void *, EditorResizeHandlerSet > & pulp::format::detail::editor_resize_handlers ()
std::unordered_map< const void *, bool > & pulp::format::detail::standalone_processors ()
 Processors a Pulp standalone app owns, keyed by this so Processor's layout is unchanged.
std::unordered_map< const void *, std::shared_ptr< PanicState > > & pulp::format::detail::panic_states ()
 Panic request/state per processor, in a side table for the same layout reason as the handlers above.
std::size_t pulp::format::detail::param_events_opt_out_home (const void *queue) noexcept
ParamEventsOptOutSlot * pulp::format::detail::param_events_opt_out_find (const void *queue) noexcept
 The slot registered for queue, or null.

Variables

constexpr std::size_t pulp::format::detail::kParamEventsOptOutSlots = 256
constexpr std::size_t pulp::format::detail::kParamEventsOptOutProbe = 8
ParamEventsOptOutSlot pulp::format::detail::param_events_opt_out_slots [kParamEventsOptOutSlots]
std::atomic< std::size_t > pulp::format::detail::param_events_opt_out_count {0}

Macro Definition Documentation

◆ PULP_FORMAT_HAS_EDITOR_BACKGROUND

#define PULP_FORMAT_HAS_EDITOR_BACKGROUND   1

Present while Processor::editor_background() exists (the colour a host-embedded editor shows before its document mounts).

Downstream code that shims the behaviour for older SDKs can key its removal on this.