Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
sample_bank.hpp File Reference
#include <pulp/audio/sample_asset.hpp>
#include <pulp/audio/sample_asset_io.hpp>
#include <pulp/audio/sample_pool.hpp>
#include <pulp/audio/sample_zone_map.hpp>
#include <cstdint>
#include <filesystem>
#include <limits>
#include <memory>
#include <span>
#include <string>
#include <string_view>
#include <vector>

Go to the source code of this file.

Classes

struct  pulp::audio::SampleBankSample
struct  pulp::audio::SampleBankZone
struct  pulp::audio::SampleBankManifest
struct  pulp::audio::SampleBankParseResult
struct  pulp::audio::SampleBankWriteResult
struct  pulp::audio::SampleBankContentIssue
struct  pulp::audio::SampleBankContentValidationResult
struct  pulp::audio::SampleBankMaterializePolicy
class  pulp::audio::PreparedSampleBank
struct  pulp::audio::SampleBankMaterializeResult
class  pulp::audio::SampleBankMaterializer
 Control/background-thread loader. More...

Namespaces

namespace  pulp
namespace  pulp::audio

Enumerations

enum class  pulp::audio::SampleBankStatus : std::uint8_t {
  pulp::audio::ok , pulp::audio::invalid_json , pulp::audio::root_not_object , pulp::audio::unknown_field ,
  pulp::audio::duplicate_field , pulp::audio::missing_field , pulp::audio::wrong_type , pulp::audio::unsupported_schema ,
  pulp::audio::invalid_identifier , pulp::audio::invalid_sample_id , pulp::audio::invalid_path , pulp::audio::invalid_hash ,
  pulp::audio::duplicate_sample_id , pulp::audio::duplicate_sample_path , pulp::audio::invalid_zone , pulp::audio::missing_sample_reference ,
  pulp::audio::filesystem_error , pulp::audio::path_escape , pulp::audio::hash_mismatch , pulp::audio::import_failed ,
  pulp::audio::preparation_failed , pulp::audio::resource_limit_exceeded , pulp::audio::unsupported_materialization_policy
}

Functions

const char * pulp::audio::sample_bank_status_name (SampleBankStatus status) noexcept
SampleBankParseResult pulp::audio::parse_sample_bank_json (std::string_view json)
SampleBankStatus pulp::audio::validate_sample_bank_manifest (const SampleBankManifest &manifest, std::string &field_path)
SampleBankWriteResult pulp::audio::write_sample_bank_json (const SampleBankManifest &manifest)
SampleBankContentValidationResult pulp::audio::validate_sample_bank_content (const std::filesystem::path &content_root, std::span< const std::string > exported_bank_paths, std::uint64_t max_encoded_bytes_per_sample=1ull<< 30)
 Validate exported bank manifests and every referenced sample under one content root.

Variables

constexpr std::string_view pulp::audio::kSampleBankSchema = "pulp.sample-bank.v1"
constexpr std::size_t pulp::audio::kSampleBankMaxJsonBytes = 16u << 20
constexpr std::uint32_t pulp::audio::kSampleBankMaxSamples = 4096
constexpr std::uint32_t pulp::audio::kSampleBankMaxZones = 65536