Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
sample_mip_sidecar.hpp
Go to the documentation of this file.
1#pragma once
2
4
5#include <array>
6#include <cstdint>
7#include <string>
8#include <string_view>
9#include <vector>
10
11namespace pulp::audio {
12
13enum class SampleMipSidecarStatus : std::uint8_t { Absent, Valid, Invalid };
14
16 static constexpr std::uint32_t kMaximumLevels = 2;
17
18 struct Level {
20 double sample_rate = 0.0;
21 std::uint32_t octave = 0;
22 };
23
25 std::array<Level, kMaximumLevels> levels{};
26 std::uint32_t level_count = 0;
27};
28
31 std::uint64_t maximum_source_bytes = 512ull * 1024ull * 1024ull;
32 std::uint64_t maximum_output_bytes = 512ull * 1024ull * 1024ull;
33};
34
36 bool ok = false;
37 std::string error;
38 std::string manifest_path;
39 std::vector<std::string> payload_paths;
40};
41
42namespace detail {
43
53
55
57 std::string_view normalized_manifest_path, bool case_insensitive);
58
59std::string sample_mip_coordination_key(std::string_view source_path,
60 const runtime::FileIdentity& source_identity);
61
62} // namespace detail
63
64bool sample_mip_sidecar_exists(std::string_view source_path) noexcept;
65
66std::string sample_mip_payload_path(std::string_view source_path,
67 const std::array<std::uint8_t, 32>& source_sha256,
68 const std::array<std::uint8_t, 32>& payload_sha256,
69 std::uint32_t octave);
70
72load_sample_mip_sidecar(std::string_view source_path, const FileFrameReader& source,
73 const std::shared_ptr<MemoryMappedAudioReader>& retained_source);
74
76 const SampleMipBuildOptions& options = {});
77
78} // namespace pulp::audio
Definition impulse_response.hpp:69
std::string sample_mip_coordination_key(std::string_view source_path, const runtime::FileIdentity &source_identity)
void set_sample_mip_build_fault_for_testing(SampleMipBuildFaultForTesting fault) noexcept
SampleMipBuildFaultForTesting
Definition sample_mip_sidecar.hpp:44
@ PostCommitGarbageCollectionException
Definition sample_mip_sidecar.hpp:51
@ None
Definition sample_mip_sidecar.hpp:45
@ ManifestPolicyFinalization
Definition sample_mip_sidecar.hpp:47
@ SourceChangedAfterManifestPublication
Definition sample_mip_sidecar.hpp:48
@ PublishedManifestVerification
Definition sample_mip_sidecar.hpp:49
@ PublishedManifestVerificationException
Definition sample_mip_sidecar.hpp:50
@ PayloadPublicationException
Definition sample_mip_sidecar.hpp:46
std::string sample_mip_coordination_key_for_manifest_path(std::string_view normalized_manifest_path, bool case_insensitive)
Definition analyzer_provider.hpp:12
bool sample_mip_sidecar_exists(std::string_view source_path) noexcept
SampleMipBuildResult build_sample_mip_sidecar(std::string_view source_path, const SampleMipBuildOptions &options={})
SampleMipSidecar load_sample_mip_sidecar(std::string_view source_path, const FileFrameReader &source, const std::shared_ptr< MemoryMappedAudioReader > &retained_source)
std::string sample_mip_payload_path(std::string_view source_path, const std::array< std::uint8_t, 32 > &source_sha256, const std::array< std::uint8_t, 32 > &payload_sha256, std::uint32_t octave)
SampleMipSidecarStatus
Definition sample_mip_sidecar.hpp:13
@ Valid
Definition sample_mip_sidecar.hpp:13
@ Invalid
Definition sample_mip_sidecar.hpp:13
@ Absent
Definition sample_mip_sidecar.hpp:13
File-backed FrameReader factory for StreamingSampleSource.
A FrameReader plus the opened file's properties, ready to feed into a StreamingSampleSourceConfig (ch...
Definition streaming_sample_source_file.hpp:35
Definition sample_mip_sidecar.hpp:29
std::uint32_t level_count
Definition sample_mip_sidecar.hpp:30
std::uint64_t maximum_source_bytes
Definition sample_mip_sidecar.hpp:31
std::uint64_t maximum_output_bytes
Definition sample_mip_sidecar.hpp:32
Definition sample_mip_sidecar.hpp:35
std::vector< std::string > payload_paths
Definition sample_mip_sidecar.hpp:39
std::string error
Definition sample_mip_sidecar.hpp:37
std::string manifest_path
Definition sample_mip_sidecar.hpp:38
bool ok
Definition sample_mip_sidecar.hpp:36
Definition sample_mip_sidecar.hpp:18
double sample_rate
Definition sample_mip_sidecar.hpp:20
std::uint32_t octave
Definition sample_mip_sidecar.hpp:21
FileFrameReader reader
Definition sample_mip_sidecar.hpp:19
Definition sample_mip_sidecar.hpp:15
SampleMipSidecarStatus status
Definition sample_mip_sidecar.hpp:24
std::array< Level, kMaximumLevels > levels
Definition sample_mip_sidecar.hpp:25
std::uint32_t level_count
Definition sample_mip_sidecar.hpp:26
static constexpr std::uint32_t kMaximumLevels
Definition sample_mip_sidecar.hpp:16
Definition memory_mapped_file.hpp:16