ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
audio.h File Reference

🔊 Session-level audio coordination wrapper More...

Go to the source code of this file.

Typedefs

typedef struct session_audio_ctx session_audio_ctx_t
 Opaque session audio context handle.
 

Functions

session_audio_ctx_t * session_audio_create (bool is_host)
 Create a new session audio context.
 
void session_audio_destroy (session_audio_ctx_t *ctx)
 Destroy session audio context and free resources.
 
asciichat_error_t session_audio_start_capture (session_audio_ctx_t *ctx)
 Start audio capture (microphone input)
 
asciichat_error_t session_audio_start_playback (session_audio_ctx_t *ctx)
 Start audio playback (speaker output)
 
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.
 
bool session_audio_is_running (session_audio_ctx_t *ctx)
 Check if audio is currently running.
 
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_write_playback (session_audio_ctx_t *ctx, const float *buffer, size_t num_samples)
 Write audio samples for playback.
 
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)
 
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)
 
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_set_capture_source (session_audio_ctx_t *ctx, void *source)
 

Detailed Description

🔊 Session-level audio coordination wrapper

Definition in file src/common/session/audio.h.

Function Documentation

◆ session_audio_set_capture_source()

void session_audio_set_capture_source ( session_audio_ctx_t *  ctx,
void *  source 
)

Definition at line 357 of file src/common/session/audio.c.

357 {
358 if (ctx && !ctx->running)
359 ctx->audio_ctx.capture_media_source = source;
360}
void * capture_media_source
Borrowed local media audio; configure before starting duplex.
audio_context_t audio_ctx
Underlying audio context from lib/audio.
bool running
Audio streams are currently running.

References session_audio_ctx::audio_ctx, audio_context_t::capture_media_source, and session_audio_ctx::running.

Referenced by session_participant_start_audio_capture().