MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ SoundStreamContainer()

MayaFlux::Kakshya::SoundStreamContainer::SoundStreamContainer ( uint32_t  sample_rate = 48000,
uint32_t  num_channels = 2,
uint64_t  initial_capacity = 0,
bool  circular_mode = false 
)

Construct a SoundStreamContainer with specified parameters.

Parameters
sample_rateSample rate for temporal calculations
num_channelsNumber of audio channels
initial_capacityInitial capacity in frames (0 = minimal allocation)
circular_modeIf true, acts as circular buffer with fixed capacity

Definition at line 10 of file SoundStreamContainer.cpp.

12 : m_sample_rate(sample_rate)
13 , m_num_channels(num_channels)
14 , m_num_frames(initial_capacity)
15 , m_circular_mode(circular_mode)
16{
18
19 m_read_position = std::vector<std::atomic<uint64_t>>(m_num_channels);
20 for (auto& pos : m_read_position) {
21 pos.store(0);
22 }
23
24 m_data = std::views::iota(0U, num_channels)
25 | std::views::transform([](auto) { return DataVariant(std::vector<double> {}); })
26 | std::ranges::to<std::vector>();
27}
std::vector< std::atomic< uint64_t > > m_read_position
std::variant< std::vector< double >, std::vector< float >, std::vector< uint8_t >, std::vector< uint16_t >, std::vector< uint32_t >, std::vector< std::complex< float > >, std::vector< std::complex< double > >, std::vector< glm::vec2 >, std::vector< glm::vec3 >, std::vector< glm::vec4 >, std::vector< glm::mat4 > > DataVariant
Multi-type data storage for different precision needs.
Definition NDData.hpp:73

References m_data, m_num_channels, m_read_position, and setup_dimensions().

+ Here is the call graph for this function: