ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_audio.h
Go to the documentation of this file.
1
18
19#pragma once
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25#include <stdint.h>
26
27#include "ra8_err.h"
28
31
42
44typedef struct {
45 void* data;
46 uint32_t capacity;
48
56typedef struct {
57 const void* data;
58 uint32_t bytes;
59 uint32_t sample_count;
60 uint32_t sample_rate_hz;
61 uint32_t timestamp_ms;
62 uint8_t channels;
63 uint8_t valid_bits;
66
76
78typedef struct {
80 void* ctx;
82
93typedef void (*ra8_audio_frame_callback_t)(void* ctx, const ra8_audio_frame_t* frame);
94
108[[nodiscard]] ra8_err_t ra8_audio_frame_validate(const ra8_audio_frame_t* frame);
109
125 ra8_audio_source_info_t* out_info);
126
145 const ra8_audio_buffer_t* buffer,
146 ra8_audio_frame_t* out_frame);
147
167 const ra8_audio_buffer_t* buffer,
169 void* ctx);
170
185
186#ifdef __cplusplus
187}
188#endif
ra8_err_t ra8_audio_source_get_info(ra8_audio_source_t *source, ra8_audio_source_info_t *out_info)
Query a bound source's fixed output contract.
Definition ra8_audio.c:85
ra8_err_t ra8_audio_source_stop(ra8_audio_source_t *source)
Stop and release a bound source backend.
Definition ra8_audio.c:265
ra8_err_t ra8_audio_frame_validate(const ra8_audio_frame_t *frame)
Validate one PCM frame view.
Definition ra8_audio.c:47
void(* ra8_audio_frame_callback_t)(void *ctx, const ra8_audio_frame_t *frame)
Complete-frame callback for asynchronous audio sources.
Definition ra8_audio.h:93
ra8_audio_format_t
PCM container layouts supported by the facade.
Definition ra8_audio.h:38
@ k_ra8_audio_format_pcm_s32le
Signed 32-bit little-endian PCM.
Definition ra8_audio.h:40
@ k_ra8_audio_format_pcm_s16le
Signed 16-bit little-endian PCM.
Definition ra8_audio.h:39
ra8_err_t ra8_audio_source_capture(ra8_audio_source_t *source, const ra8_audio_buffer_t *buffer, ra8_audio_frame_t *out_frame)
Capture one fixed-size PCM frame into caller-owned storage.
Definition ra8_audio.c:190
ra8_err_t ra8_audio_source_stream_start(ra8_audio_source_t *source, const ra8_audio_buffer_t *buffer, ra8_audio_frame_callback_t callback, void *ctx)
Start asynchronous fixed-frame delivery into caller-owned scratch.
Definition ra8_audio.c:228
struct ra8_audio_source_iface ra8_audio_source_iface_t
Opaque source vtable implemented by concrete audio backends.
Definition ra8_audio.h:30
Error Code Definitions for ra8-firmware.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Definition ra8_err.h:546
Caller-owned writable byte buffer.
Definition ra8_audio.h:44
uint32_t capacity
Writable capacity in bytes.
Definition ra8_audio.h:46
void * data
First writable byte.
Definition ra8_audio.h:45
Immutable view of one interleaved PCM frame.
Definition ra8_audio.h:56
uint32_t bytes
Valid byte count.
Definition ra8_audio.h:58
ra8_audio_format_t format
PCM container layout.
Definition ra8_audio.h:64
uint32_t sample_count
Sample frames per channel.
Definition ra8_audio.h:59
uint8_t channels
Interleaved channel count.
Definition ra8_audio.h:62
uint32_t sample_rate_hz
Sample frames per second.
Definition ra8_audio.h:60
const void * data
Borrowed interleaved PCM bytes.
Definition ra8_audio.h:57
uint32_t timestamp_ms
Capture-start monotonic milliseconds.
Definition ra8_audio.h:61
uint8_t valid_bits
Significant bits per sample.
Definition ra8_audio.h:63
Operations supplied by every audio source backend.
Fixed output contract and storage requirement for one source.
Definition ra8_audio.h:68
uint8_t valid_bits
Significant bits per sample.
Definition ra8_audio.h:73
uint32_t samples_per_frame
Sample frames returned per call.
Definition ra8_audio.h:70
ra8_audio_format_t format
PCM container layout.
Definition ra8_audio.h:74
uint32_t frame_bytes
Required capture-buffer capacity.
Definition ra8_audio.h:69
uint32_t sample_rate_hz
Sample frames per second.
Definition ra8_audio.h:71
uint8_t channels
Interleaved channel count.
Definition ra8_audio.h:72
Caller-owned handle binding an audio source backend and its state.
Definition ra8_audio.h:78
const ra8_audio_source_iface_t * iface
Bound source vtable (private).
Definition ra8_audio.h:79
void * ctx
Caller-owned backend state.
Definition ra8_audio.h:80