45 std::vector<SampleBankZone>
zones;
99 std::string& field_path);
111 std::vector<SampleBankContentIssue>
issues;
121 const std::filesystem::path& content_root,
122 std::span<const std::string> exported_bank_paths,
123 std::uint64_t max_encoded_bytes_per_sample = 1ull << 30);
163 std::unique_ptr<Impl> impl_;
170 std::unique_ptr<PreparedSampleBank>
bank;
183 const std::filesystem::path& content_root,
friend class SampleBankMaterializer
Definition sample_bank.hpp:161
PreparedSampleBank(const PreparedSampleBank &)=delete
const SampleAssetView * sample_asset(std::uint32_t sample_id) const noexcept
PreparedSampleBank & operator=(const PreparedSampleBank &)=delete
const SampleBankManifest & manifest() const noexcept
const SampleZoneMap & zone_map() const noexcept
const SamplePool & sample_pool() const noexcept
PreparedSampleBank(PreparedSampleBank &&) noexcept
Control/background-thread loader.
Definition sample_bank.hpp:180
SampleBankMaterializeResult materialize(const SampleBankManifest &manifest, const std::filesystem::path &content_root, const SampleBankMaterializePolicy &policy={}) const
Definition sample_pool.hpp:31
Definition sample_zone_map.hpp:65
Definition analyzer_provider.hpp:12
constexpr std::string_view kSampleBankSchema
Definition sample_bank.hpp:19
SampleAssetStatus
Definition sample_asset_io.hpp:19
@ ok
Definition sample_asset_io.hpp:20
const char * sample_bank_status_name(SampleBankStatus status) noexcept
SampleBankParseResult parse_sample_bank_json(std::string_view json)
constexpr std::size_t kSampleBankMaxJsonBytes
Definition sample_bank.hpp:20
SampleBankStatus
Definition sample_bank.hpp:49
@ duplicate_field
Definition sample_bank.hpp:54
@ invalid_sample_id
Definition sample_bank.hpp:59
@ invalid_identifier
Definition sample_bank.hpp:58
@ unknown_field
Definition sample_bank.hpp:53
@ root_not_object
Definition sample_bank.hpp:52
@ unsupported_materialization_policy
Definition sample_bank.hpp:72
@ preparation_failed
Definition sample_bank.hpp:70
@ path_escape
Definition sample_bank.hpp:67
@ ok
Definition sample_bank.hpp:50
@ import_failed
Definition sample_bank.hpp:69
@ unsupported_schema
Definition sample_bank.hpp:57
@ missing_field
Definition sample_bank.hpp:55
@ invalid_path
Definition sample_bank.hpp:60
@ filesystem_error
Definition sample_bank.hpp:66
@ invalid_zone
Definition sample_bank.hpp:64
@ wrong_type
Definition sample_bank.hpp:56
@ resource_limit_exceeded
Definition sample_bank.hpp:71
@ invalid_hash
Definition sample_bank.hpp:61
@ duplicate_sample_path
Definition sample_bank.hpp:63
@ duplicate_sample_id
Definition sample_bank.hpp:62
@ hash_mismatch
Definition sample_bank.hpp:68
@ missing_sample_reference
Definition sample_bank.hpp:65
@ invalid_json
Definition sample_bank.hpp:51
SampleBankStatus validate_sample_bank_manifest(const SampleBankManifest &manifest, std::string &field_path)
@ ok
Definition analyzer_provider.hpp:58
constexpr std::uint32_t kSampleBankMaxSamples
Definition sample_bank.hpp:21
constexpr std::uint32_t kInvalidSampleId
Definition sample_identity.hpp:8
SampleBankContentValidationResult 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.
SampleBankWriteResult write_sample_bank_json(const SampleBankManifest &manifest)
constexpr std::uint32_t kSampleBankMaxZones
Definition sample_bank.hpp:22
Definition sample_asset_io.hpp:36
Immutable audio-thread snapshot borrowed from one SampleAsset owner.
Definition sample_asset.hpp:130
Definition sample_bank.hpp:102
std::string field_path
Definition sample_bank.hpp:105
SampleBankStatus status
Definition sample_bank.hpp:103
std::string manifest_path
Definition sample_bank.hpp:104
Definition sample_bank.hpp:108
bool valid() const noexcept
Definition sample_bank.hpp:113
std::vector< SampleBankContentIssue > issues
Definition sample_bank.hpp:111
std::vector< std::string > manifest_paths
Definition sample_bank.hpp:109
std::vector< std::string > sample_paths
Definition sample_bank.hpp:110
Definition sample_bank.hpp:40
std::vector< SampleBankZone > zones
Definition sample_bank.hpp:45
std::string schema
Definition sample_bank.hpp:41
std::string extensions_json
Definition sample_bank.hpp:46
std::string id
Definition sample_bank.hpp:42
std::string name
Definition sample_bank.hpp:43
std::vector< SampleBankSample > samples
Definition sample_bank.hpp:44
Definition sample_bank.hpp:125
double target_sample_rate
Definition sample_bank.hpp:135
std::uint32_t max_samples
Definition sample_bank.hpp:140
Residency residency
Definition sample_bank.hpp:136
std::uint64_t preload_frames_per_sample
Definition sample_bank.hpp:139
Residency
Definition sample_bank.hpp:126
@ sample_assets
Definition sample_bank.hpp:127
@ published_pool
Definition sample_bank.hpp:128
std::uint64_t max_total_decoded_bytes
Definition sample_bank.hpp:143
std::uint64_t max_encoded_bytes_per_sample
Definition sample_bank.hpp:142
std::uint32_t max_zones
Definition sample_bank.hpp:141
SampleAssetPolicy sample_policy
Definition sample_bank.hpp:131
Definition sample_bank.hpp:166
std::string field_path
Definition sample_bank.hpp:168
SampleBankStatus status
Definition sample_bank.hpp:167
std::unique_ptr< PreparedSampleBank > bank
Definition sample_bank.hpp:170
SampleAssetStatus asset_status
Definition sample_bank.hpp:169
bool valid() const noexcept
Definition sample_bank.hpp:172
Definition sample_bank.hpp:77
SampleBankManifest manifest
Definition sample_bank.hpp:80
std::string field_path
Definition sample_bank.hpp:79
bool valid() const noexcept
Definition sample_bank.hpp:82
SampleBankStatus status
Definition sample_bank.hpp:78
Definition sample_bank.hpp:24
std::string extensions_json
Definition sample_bank.hpp:32
std::string license_ref
Definition sample_bank.hpp:28
std::string path
Definition sample_bank.hpp:26
std::string sha256
Definition sample_bank.hpp:27
Definition sample_bank.hpp:87
SampleBankStatus status
Definition sample_bank.hpp:88
std::string field_path
Definition sample_bank.hpp:89
bool valid() const noexcept
Definition sample_bank.hpp:92
std::string json
Definition sample_bank.hpp:90
Definition sample_bank.hpp:35
std::string extensions_json
Definition sample_bank.hpp:37
SampleZone zone
Definition sample_bank.hpp:36
Definition sample_zone_map.hpp:18