Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
capability_tables.hpp File Reference
#include <pulp/interchange/concept.hpp>
#include <cstddef>
#include <cstdint>
#include <string_view>

Go to the source code of this file.

Classes

struct  pulp::interchange::ImportRow
struct  pulp::interchange::ExportRow
struct  pulp::interchange::detail::FormatRecord

Namespaces

namespace  pulp
namespace  pulp::interchange
namespace  pulp::interchange::detail

Enumerations

enum class  pulp::interchange::ImportLevel : std::uint8_t { pulp::interchange::None = 0 , pulp::interchange::PreserveOpaque = 1 , pulp::interchange::Partial = 2 , pulp::interchange::Full = 3 }
 How much of a concept a format's reader admits. More...
enum class  pulp::interchange::ExportLevel : std::uint8_t { pulp::interchange::Drop = 0 , pulp::interchange::RoundtripOnly = 1 , pulp::interchange::Degrade = 2 , pulp::interchange::Full = 3 }
 What a format's writer does with a concept the document uses. More...
enum class  pulp::interchange::LossClass : std::uint8_t { pulp::interchange::Dropped = 0 , pulp::interchange::Degraded = 1 , pulp::interchange::Flattened = 2 , pulp::interchange::Approximated = 3 }
 How a concept is lost when a format cannot carry it intact. More...
enum class  pulp::interchange::Format : std::uint8_t { pulp::interchange::DawProject = 0 , pulp::interchange::Smf = 1 }
 Interchange formats with a committed capability declaration. More...

Functions

constexpr std::string_view pulp::interchange::format_id (Format format) noexcept
 The format's stable string id.
constexpr std::string_view pulp::interchange::format_display_name (Format format) noexcept
 The format's human-facing name.
constexpr bool pulp::interchange::format_has_writer (Format format) noexcept
 Whether a writer exists for this format. run_export refuses without one.
constexpr bool pulp::interchange::format_from_id (std::string_view id, Format &out) noexcept
 Resolve a string id to its format. Returns false when unrecognized.
constexpr const ImportRow & pulp::interchange::import_capability (Format format, Concept concept_value) noexcept
 The format's import declaration for one concept.
constexpr const ExportRow & pulp::interchange::export_capability (Format format, Concept concept_value) noexcept
 The format's export declaration for one concept, generated the same way (omitted concepts become Drop, so they surface as a loss needing consent).
constexpr bool pulp::interchange::import_supports (Format format, Concept concept_value) noexcept
 Whether the format's reader may admit the concept at all.
constexpr bool pulp::interchange::export_is_lossless (Format format, Concept concept_value) noexcept
 Whether exporting the concept costs the document anything.

Variables

constexpr std::size_t pulp::interchange::kFormatCount = 2
constexpr FormatRecord pulp::interchange::detail::kFormatRecords [kFormatCount]
constexpr ImportRow pulp::interchange::detail::kImportRows [kFormatCount][kConceptCount]
constexpr ExportRow pulp::interchange::detail::kExportRows [kFormatCount][kConceptCount]