MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Core::GlobalStreamInfo Struct Reference

Comprehensive configuration for digital audio stream processing. More...

#include <GlobalStreamInfo.hpp>

+ Collaboration diagram for MayaFlux::Core::GlobalStreamInfo:

Classes

struct  ChannelConfig
 Configuration for input or output data channels. More...
 
struct  MidiConfig
 Configuration for MIDI data channels. More...
 

Public Types

enum class  AudioApi : uint8_t {
  DEFAULT , ALSA , PULSE , JACK ,
  CORE , WASAPI , ASIO , DS ,
  OSS
}
 Enumeration of supported audio APIs for wrapper backends like RtAudio. More...
 
enum class  AudioFormat : uint8_t {
  FLOAT32 , FLOAT64 , INT16 , INT24 ,
  INT32
}
 Defines the binary representation of audio sample data. More...
 
enum class  DitherMethod : uint8_t {
  NONE , RECTANGULAR , TRIANGULAR , GAUSSIAN ,
  SHAPED
}
 Noise shaping algorithms for quantization error mitigation. More...
 
enum class  StreamPriority : uint8_t { LOW , NORMAL , HIGH , REALTIME }
 Processing priority levels for the audio stream. More...
 

Public Member Functions

uint32_t get_num_channels () const
 Retrieves the number of output channels.
 
uint32_t get_total_channels () const
 Calculates the total number of active channels across all directions.
 

Public Attributes

bool auto_convert_format = true
 Whether to automatically convert between sample formats.
 
AudioBackendType backend = AudioBackendType::RTAUDIO
 Selected audio backend implementation.
 
std::unordered_map< std::string, std::any > backend_options
 Backend-specific configuration parameters.
 
double buffer_count = 0.F
 Number of buffers in the processing queue (0 for system default)
 
uint32_t buffer_size = 512
 Number of samples per processing block.
 
DitherMethod dither = DitherMethod::NONE
 Dithering algorithm for format conversions.
 
AudioFormat format = AudioFormat::FLOAT64
 Sample data format for stream processing.
 
bool handle_xruns = true
 Whether to handle buffer underrun/overrun conditions.
 
ChannelConfig input = { .enabled = false, .channels = 2, .device_id = -1, .device_name = "" }
 Configuration for input signal channels (disabled by default)
 
bool measure_latency = false
 Whether to measure and report actual stream latency.
 
MidiConfig midi_input
 Configuration for MIDI input data.
 
MidiConfig midi_output
 Configuration for MIDI output data.
 
bool non_interleaved = false
 Channel organization mode (true: planar, false: interleaved)
 
ChannelConfig output
 Configuration for output signal channels.
 
StreamPriority priority = StreamPriority::REALTIME
 System resource priority for audio processing.
 
AudioApi requested_api = AudioApi::DEFAULT
 Selected audio API for stream processing.
 
uint32_t sample_rate = 48000
 Number of samples processed per second (Hz)
 
double stream_latency_ms = 0.0
 Target latency for stream processing in milliseconds.
 
bool use_callback = true
 Whether to use callback-based processing (vs.
 
bool verbose_logging = false
 Whether to output detailed diagnostic information.
 

Detailed Description

Comprehensive configuration for digital audio stream processing.

Defines the technical parameters and operational characteristics for audio data flow throughout the system, including format specifications, buffer configurations, and I/O endpoint settings.

Definition at line 17 of file GlobalStreamInfo.hpp.


The documentation for this struct was generated from the following file: