Transport-neutral, caller-owned audio capture facade.
void(* ra8_audio_frame_callback_t)(void *ctx, const ra8_audio_frame_t *frame)
Complete-frame callback for asynchronous audio sources.
ra8_err_t ra8_audio_source_pdm_init(ra8_audio_source_t *source, ra8_audio_source_pdm_state_t *state, const ra8_audio_source_pdm_cfg_t *cfg)
Configure, start, settle, and bind one PDM audio source.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Pulse Density Modulation Interface (PDM-IF) capture driver.
Fixed output contract and storage requirement for one source.
Complete PDM source initialization and capture policy.
ra8_pdm_channel_cfg_t pdm
HAL filter configuration.
uint8_t channel
ra8_pdm_channel_t selector.
uint32_t sample_rate_hz
Decimated PCM sample rate.
uint32_t discard_samples
Startup samples to discard.
uint8_t irq_priority
Async-stream NVIC priority.
uint8_t valid_bits
Significant bits in PCM-S32LE.
uint32_t poll_attempts
Empty-FIFO retry bound/frame.
uint32_t settle_ms
Mic/filter startup delay.
uint32_t samples_per_frame
Samples returned per capture.
Caller-owned mutable state for one PDM source backend.
uint32_t stream_timestamp_ms
Current frame timestamp.
ra8_audio_source_info_t info
Fixed output contract.
uint32_t poll_attempts
Empty-FIFO retry bound.
void * stream_ctx
Callback context.
void * stream_data
Persistent stream scratch.
bool initialized
Hardware source is running.
ra8_audio_frame_callback_t stream_callback
Complete-frame callback.
uint8_t irq_priority
Async-stream NVIC priority.
uint8_t channel
Bound PDM channel.
bool streaming
Interrupt delivery enabled.
uint32_t stream_filled
Samples currently assembled.
Caller-owned handle binding an audio source backend and its state.
One PDM channel's mode + filter configuration.