ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
src/common/session/audio.h
Go to the documentation of this file.
1
36
37#pragma once
38
39#include <stdbool.h>
40#include <stddef.h>
41#include <stdint.h>
43
44/* ============================================================================
45 * Session Audio Context
46 * ============================================================================ */
47
57
58/* ============================================================================
59 * Session Audio Lifecycle Functions
60 * @{
61 */
62
77
88
90
91/* ============================================================================
92 * Session Audio Control Functions
93 * @{
94 */
95
107
119
132
142
151
153
154/* ============================================================================
155 * Session Audio I/O Functions
156 * @{
157 */
158
171size_t session_audio_read_captured(session_audio_ctx_t *ctx, float *buffer, size_t num_samples);
172
185asciichat_error_t session_audio_write_playback(session_audio_ctx_t *ctx, const float *buffer, size_t num_samples);
186
188
189/* ============================================================================
190 * Session Audio Host-Only Functions (Mixing)
191 * @{
192 */
193
208
221
237 size_t num_samples);
238
255size_t session_audio_mix_excluding(session_audio_ctx_t *ctx, uint32_t exclude_id, float *output, size_t num_samples);
256
258
260
261/* Configure a borrowed local source before starting audio. */
263
Synchronized per-thread pending error stacks and value snapshots. SET_ERRNO pushes,...
audio_visualization_source_t source
Definition fft.c:24
unsigned int uint32_t
Definition common.h:62
asciichat_error_t
Error and exit codes - unified status values (0-255).
Definition error_codes.h:44
struct session_audio_ctx session_audio_ctx_t
Opaque session audio context handle.
asciichat_error_t session_audio_write_playback(session_audio_ctx_t *ctx, const float *buffer, size_t num_samples)
Write audio samples for playback.
size_t session_audio_read_captured(session_audio_ctx_t *ctx, float *buffer, size_t num_samples)
Read captured audio samples.
asciichat_error_t session_audio_start_capture(session_audio_ctx_t *ctx)
Start audio capture (microphone input).
void session_audio_destroy(session_audio_ctx_t *ctx)
Destroy session audio context and free resources.
asciichat_error_t session_audio_start_playback(session_audio_ctx_t *ctx)
Start audio playback (speaker output).
bool session_audio_is_running(session_audio_ctx_t *ctx)
Check if audio is currently running.
asciichat_error_t session_audio_write_source(session_audio_ctx_t *ctx, uint32_t source_id, const float *samples, size_t num_samples)
Write audio samples from a specific source (host only).
asciichat_error_t session_audio_start_duplex(session_audio_ctx_t *ctx)
Start full-duplex audio (simultaneous capture and playback).
void session_audio_stop(session_audio_ctx_t *ctx)
Stop all audio streams.
asciichat_error_t session_audio_add_source(session_audio_ctx_t *ctx, uint32_t source_id)
Add an audio source for mixing (host only).
void session_audio_remove_source(session_audio_ctx_t *ctx, uint32_t source_id)
Remove an audio source from mixing (host only).
session_audio_ctx_t * session_audio_create(bool is_host)
Create a new session audio context.
size_t session_audio_mix_excluding(session_audio_ctx_t *ctx, uint32_t exclude_id, float *output, size_t num_samples)
Mix all sources except one and return the result (host only).
void * session_audio_get_context(session_audio_ctx_t *ctx)
void session_audio_set_capture_source(session_audio_ctx_t *ctx, void *source)
Session-owned audio capture, playback, and host-mixing state.
bool is_host
True if this is a host context (has mixing capabilities).