11 class BufferProcessor;
16 class DynamicSoundStream;
66 class CycleCoordinator;
169 return { OpType::CAPTURE, std::move(capture) };
182 const std::shared_ptr<Buffers::BufferManager>& buffer_manager,
183 uint32_t input_channel,
185 uint32_t cycle_count = 0);
195 const std::shared_ptr<Buffers::BufferManager>& buffer_manager,
196 uint32_t input_channel);
206 const std::string& filepath,
207 uint32_t channel = 0,
208 uint32_t cycle_count = 0);
217 const std::string& filepath,
218 uint32_t channel = 0);
228 const std::string& filepath,
229 std::shared_ptr<Kakshya::DynamicSoundStream> target_stream,
230 uint32_t cycle_count = 0);
244 static BufferOperation route_to_buffer(std::shared_ptr<Buffers::AudioBuffer> target);
251 static BufferOperation route_to_container(std::shared_ptr<Kakshya::DynamicSoundStream> target);
261 static BufferOperation load_from_container(std::shared_ptr<Kakshya::DynamicSoundStream> source,
262 std::shared_ptr<Buffers::AudioBuffer> target,
263 uint64_t start_frame = 0,
264 uint32_t length = 0);
291 std::shared_ptr<Buffers::AudioBuffer> buffer,
301 static BufferOperation fuse_data(std::vector<std::shared_ptr<Buffers::AudioBuffer>> sources,
303 std::shared_ptr<Buffers::AudioBuffer> target);
312 static BufferOperation fuse_containers(std::vector<std::shared_ptr<Kakshya::DynamicSoundStream>> sources,
314 std::shared_ptr<Kakshya::DynamicSoundStream> target);
324 static CaptureBuilder capture_from(std::shared_ptr<Buffers::AudioBuffer> buffer);
374 inline const std::string&
get_tag()
const {
return m_tag; }
382 m_execution_phase = ExecutionPhase::CAPTURE;
421 uint32_t m_modify_cycle_count {};
422 bool m_is_streaming {};
433 uint64_t m_start_frame {};
434 uint32_t m_load_length {};
443 uint8_t m_priority = 128;
445 uint32_t m_cycle_interval = 1;
static MayaFlux::Nodes::ProcessingToken token
CaptureMode
Defines the data capture and retention strategy.
Flexible data capture interface for buffer-based processing pipelines.
std::function< bool(uint32_t)> m_condition
std::vector< std::shared_ptr< Buffers::AudioBuffer > > m_source_buffers
uint8_t get_priority() const
Getters for internal state (read-only)
std::shared_ptr< Buffers::AudioBuffer > m_target_buffer
std::vector< std::shared_ptr< Kakshya::DynamicSoundStream > > m_source_containers
Buffers::BufferProcessingFunction m_buffer_modifier
std::shared_ptr< Kakshya::DynamicSoundStream > m_target_container
Buffers::ProcessingToken get_token() const
Getters for processing token.
static BufferOperation capture(BufferCapture capture)
Create a capture operation using BufferCapture configuration.
bool is_streaming() const
Check if this operation is a streaming operation.
TransformVectorFunction m_fusion_function
std::shared_ptr< Buffers::BufferProcessor > m_attached_processor
OpType get_type() const
Getters for internal state (read-only)
const std::string & get_tag() const
Getters for user defined tag.
std::shared_ptr< Kakshya::DynamicSoundStream > m_source_container
TransformationFunction m_transformer
OperationFunction m_dispatch_handler
OpType
Defines the fundamental operation types in the processing pipeline.
BufferOperation & as_capture_phase()
Hint that this operation should execute in capture phase.
ExecutionPhase get_execution_phase() const
Get the execution phase hint for this operation.
Fundamental unit of operation in buffer processing pipelines.
Coroutine-based execution engine for composable, multi-strategy buffer processing.
Fluent builder interface for constructing BufferCapture configurations.
ProcessingToken
Bitfield enum defining processing characteristics and backend requirements for buffer operations.
std::variant< AudioProcessingFunction, GraphicsProcessingFunction > BufferProcessingFunction
@ Buffers
Buffers, Managers, processors and processing chains.
@ Kakshya
Containers[Signalsource, Stream, File], Regions, DataProcessors.
@ Kriya
Automatable tasks and fluent scheduling api for Nodes and Buffers.
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.
std::function< Kakshya::DataVariant(std::vector< Kakshya::DataVariant > &, uint32_t)> TransformVectorFunction
ExecutionStrategy
Defines how operations in a pipeline are coordinated and executed.
@ PHASED
PHASED: Traditional phased execution (default)
@ STREAMING
STREAMING: Immediate flow-through execution.
@ PARALLEL
PARALLEL: Concurrent capture with synchronization.
@ REACTIVE
REACTIVE: Data-driven reactive execution.
std::function< Kakshya::DataVariant(Kakshya::DataVariant &, uint32_t)> TransformationFunction
std::function< void(Kakshya::DataVariant &, uint32_t)> OperationFunction
Main namespace for the Maya Flux audio engine.