Pulp
1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
projection_capability.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <cstdint>
4
#include <string_view>
5
6
namespace
pulp::format
{
7
13
enum class
ProjectionSurface
: std::uint8_t {
clap
,
vst3
,
lv2
,
wam
,
wclap
,
au
};
14
15
enum class
ProjectionStatus
: std::uint8_t {
supported
,
unsupported
};
16
17
struct
ProjectionResult
{
18
ProjectionStatus
status
;
19
std::string_view
reason
;
20
21
constexpr
bool
supported
() const noexcept {
22
return
status
==
ProjectionStatus::supported
;
23
}
24
};
25
32
constexpr
ProjectionResult
projection_capability
(
ProjectionSurface
surface,
bool
baked_processor,
33
bool
bounded_descriptor)
noexcept
{
34
if
(!baked_processor)
35
return
{
ProjectionStatus::unsupported
,
36
"graph-only descriptor has no baked Processor projection"
};
37
if
(!bounded_descriptor)
38
return
{
ProjectionStatus::unsupported
,
39
"descriptor bounds are missing or exceed adapter limits"
};
40
switch
(surface) {
41
case
ProjectionSurface::clap
:
42
case
ProjectionSurface::vst3
:
43
case
ProjectionSurface::lv2
:
44
case
ProjectionSurface::wam
:
45
case
ProjectionSurface::wclap
:
46
case
ProjectionSurface::au
:
47
return
{
ProjectionStatus::supported
, {}};
48
}
49
return
{
ProjectionStatus::unsupported
,
"unknown projection surface"
};
50
}
51
52
}
// namespace pulp::format
pulp::format::au
Apple-only: the whole header is gated on APPLE so it stays an empty no-op on the Linux header-hygiene...
Definition
au_factory_presets.hpp:33
pulp::format::vst3
Definition
vst3_adapter.hpp:61
pulp::format::wam
Definition
wam_adapter.hpp:35
pulp::format::wclap
Definition
clap_webview.hpp:21
pulp::format
What the product grants a device: the quota table indexed by capability tier and live thermal state.
Definition
aax_editor.hpp:31
pulp::format::ProjectionStatus
ProjectionStatus
Definition
projection_capability.hpp:15
pulp::format::ProjectionStatus::supported
@ supported
Definition
projection_capability.hpp:15
pulp::format::ProjectionStatus::unsupported
@ unsupported
Definition
projection_capability.hpp:15
pulp::format::projection_capability
constexpr ProjectionResult projection_capability(ProjectionSurface surface, bool baked_processor, bool bounded_descriptor) noexcept
Return the bounded DSPX-07 projection decision for one target surface.
Definition
projection_capability.hpp:32
pulp::format::ProjectionSurface
ProjectionSurface
Product surfaces that can consume a baked Processor projection.
Definition
projection_capability.hpp:13
pulp::format::ProjectionSurface::wam
@ wam
Definition
projection_capability.hpp:13
pulp::format::ProjectionSurface::wclap
@ wclap
Definition
projection_capability.hpp:13
pulp::format::ProjectionSurface::lv2
@ lv2
Definition
projection_capability.hpp:13
pulp::format::ProjectionSurface::au
@ au
Definition
projection_capability.hpp:13
pulp::format::ProjectionSurface::vst3
@ vst3
Definition
projection_capability.hpp:13
pulp::format::ProjectionSurface::clap
@ clap
Definition
projection_capability.hpp:13
pulp::format::ProjectionResult
Definition
projection_capability.hpp:17
pulp::format::ProjectionResult::reason
std::string_view reason
Definition
projection_capability.hpp:19
pulp::format::ProjectionResult::status
ProjectionStatus status
Definition
projection_capability.hpp:18
pulp::format::ProjectionResult::supported
constexpr bool supported() const noexcept
Definition
projection_capability.hpp:21
core
format
include
pulp
format
projection_capability.hpp
Generated by
1.15.0