Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::format::host_quirks Namespace Reference

Functions

void apply_ableton_live (HostQuirks &q, HostVersion v)
 Populate Ableton Live host-gated flags onto q.
void apply_ardour (HostQuirks &q, HostVersion)
 Populate Ardour host-gated flags onto q.
void apply_mixbus32c (HostQuirks &q, HostVersion)
 Populate Mixbus 32C host-gated flags onto q.
void apply_auv3_cross_host (HostQuirks &q, HostVersion)
 Populate AU v3 cross-host flags onto q.
void apply_bitwig (HostQuirks &q, HostVersion v)
 Populate Bitwig host-gated flags onto q based on v.
void apply_cubase (HostQuirks &q, HostVersion v)
 Populate Cubase-specific (and Nuendo-as-Cubase) host-gated flags onto q based on v.
void apply_digital_performer (HostQuirks &q, HostVersion)
 Populate Digital Performer host-gated flags onto q.
void apply_fl_studio (HostQuirks &q, HostVersion)
 Populate FL Studio host-gated flags onto q.
void apply_logic_pro (HostQuirks &q, HostVersion)
 Populate Logic Pro (and GarageBand-as-Logic) AU host-gated flags onto q.
void apply_pro_tools (HostQuirks &q, HostVersion)
 Populate Pro Tools' main 3 AAX host-gated flags (rows 16-18) onto q.
void apply_pro_tools_aax_vendor_version_unknown (HostQuirks &q, HostVersion)
 Populate the AAX vendor-version-unknown lesson onto q.
void apply_reaper (HostQuirks &q, HostVersion)
 Populate REAPER's main 6 host-gated flags (rows 15 + R1-R4 + R6) onto q.
void apply_reaper_keyboard (HostQuirks &q, HostVersion)
 Populate REAPER keyboard-only-space flag onto q.
void apply_reaper_auv3_in_process (HostQuirks &q, HostVersion)
 Populate REAPER AU v3 in-process preferredContentSize lesson onto q.
void apply_studio_one (HostQuirks &q, HostVersion)
 Populate Studio One host-gated flags onto q.
void apply_wavelab (HostQuirks &q, HostVersion v)
 Populate Wavelab host-gated flags onto q based on v.

Function Documentation

◆ apply_ableton_live()

void pulp::format::host_quirks::apply_ableton_live ( HostQuirks & q,
HostVersion v )
inline

Populate Ableton Live host-gated flags onto q.

v is unused today (both rows are version-invariant) but kept for signature uniformity with other per-host modules.

◆ apply_ardour()

void pulp::format::host_quirks::apply_ardour ( HostQuirks & q,
HostVersion  )
inline

Populate Ardour host-gated flags onto q.

v is unused today (the only flag here is version-invariant) but kept for signature uniformity with other per-host modules.

◆ apply_auv3_cross_host()

void pulp::format::host_quirks::apply_auv3_cross_host ( HostQuirks & q,
HostVersion  )
inline

Populate AU v3 cross-host flags onto q.

Layered on top of the per-host helper for any host with an AU v3 surface. Version-invariant — the flags reflect AU v3 contract requirements rather than per-host version bands.

◆ apply_bitwig()

void pulp::format::host_quirks::apply_bitwig ( HostQuirks & q,
HostVersion v )
inline

Populate Bitwig host-gated flags onto q based on v.

◆ apply_cubase()

void pulp::format::host_quirks::apply_cubase ( HostQuirks & q,
HostVersion v )
inline

Populate Cubase-specific (and Nuendo-as-Cubase) host-gated flags onto q based on v.

No-op when v is unknown.

◆ apply_digital_performer()

void pulp::format::host_quirks::apply_digital_performer ( HostQuirks & q,
HostVersion  )
inline

Populate Digital Performer host-gated flags onto q.

v is unused today (the only flag here is version-invariant) but kept for signature uniformity with other per-host modules.

◆ apply_fl_studio()

void pulp::format::host_quirks::apply_fl_studio ( HostQuirks & q,
HostVersion  )
inline

Populate FL Studio host-gated flags onto q.

v is unused today (both rows are version-invariant) but kept for signature uniformity with other per-host modules.

◆ apply_logic_pro()

void pulp::format::host_quirks::apply_logic_pro ( HostQuirks & q,
HostVersion  )
inline

Populate Logic Pro (and GarageBand-as-Logic) AU host-gated flags onto q.

v is unused today (both rows are version-invariant) but kept for signature uniformity with other per-host modules.

◆ apply_mixbus32c()

void pulp::format::host_quirks::apply_mixbus32c ( HostQuirks & q,
HostVersion  )
inline

Populate Mixbus 32C host-gated flags onto q.

Mixbus 32C is an Ardour derivative and inherits the same setBusArrangements behavior; this helper exists so the dispatch table can branch on the dedicated HostType value without losing the host identity at the call site.

◆ apply_pro_tools()

void pulp::format::host_quirks::apply_pro_tools ( HostQuirks & q,
HostVersion  )
inline

Populate Pro Tools' main 3 AAX host-gated flags (rows 16-18) onto q.

v is unused today (every row is version-invariant by design — see aax_vendor_version_unknown) but kept for signature uniformity with other per-host modules.

◆ apply_pro_tools_aax_vendor_version_unknown()

void pulp::format::host_quirks::apply_pro_tools_aax_vendor_version_unknown ( HostQuirks & q,
HostVersion  )
inline

Populate the AAX vendor-version-unknown lesson onto q.

Layered on top of apply_pro_tools(...) so the iPlug2-audit lesson can stay at a different validation tier (LessonOnly today) without changing the rest of the Pro Tools dispatch (Speculative).

◆ apply_reaper()

void pulp::format::host_quirks::apply_reaper ( HostQuirks & q,
HostVersion  )
inline

Populate REAPER's main 6 host-gated flags (rows 15 + R1-R4 + R6) onto q.

v is unused today (every row is version-invariant) but kept for signature uniformity with other per-host modules.

◆ apply_reaper_auv3_in_process()

void pulp::format::host_quirks::apply_reaper_auv3_in_process ( HostQuirks & q,
HostVersion  )
inline

Populate REAPER AU v3 in-process preferredContentSize lesson onto q.

Layered on top of apply_reaper(...) so the lesson can stay at a different validation tier (LessonOnly today) without changing the rest of the REAPER dispatch.

REAPER's AU v3 host is in-process: it creates the AUAudioUnit on the main thread via createAudioUnitWithComponentDescription, rather than the out-of-process path Logic / GarageBand use. Setting preferredContentSize only from viewDidLoad is too late on that path — the editor opens at the extension's default size and snaps to the requested size one paint cycle later. AU v3 adapters must additionally set preferredContentSize synchronously in audioUnitInitialized; setting it twice is harmless on the OOP path.

Reference: https://developer.apple.com/documentation/audiotoolbox/auaudiounit (in-process host extension contract) plus the REAPER AU v3 sizing reproducer.

◆ apply_reaper_keyboard()

void pulp::format::host_quirks::apply_reaper_keyboard ( HostQuirks & q,
HostVersion  )
inline

Populate REAPER keyboard-only-space flag onto q.

Layered on top of apply_reaper(...) so the lesson can stay at a different validation tier (LessonOnly today) without changing the rest of the REAPER dispatch.

◆ apply_studio_one()

void pulp::format::host_quirks::apply_studio_one ( HostQuirks & q,
HostVersion  )
inline

Populate Studio One host-gated flags onto q.

v is unused today (the only flag here is version-invariant) but kept for signature uniformity with other per-host modules.

◆ apply_wavelab()

void pulp::format::host_quirks::apply_wavelab ( HostQuirks & q,
HostVersion v )
inline

Populate Wavelab host-gated flags onto q based on v.