ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches

🔊 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)
void * session_audio_get_context (session_audio_ctx_t *ctx)

Detailed Description

🔊 Session-level audio coordination wrapper

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

Function Documentation

◆ session_audio_get_context()

void * session_audio_get_context ( session_audio_ctx_t * ctx)

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

389 {
390 return ctx ? &ctx->audio_ctx : NULL;
391}
audio_context_t audio_ctx
Underlying audio context from lib/audio.

References session_audio_ctx::audio_ctx.

Referenced by session_participant_start_audio().

◆ session_audio_set_capture_source()

void session_audio_set_capture_source ( session_audio_ctx_t * ctx,
void * source )

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

380 {
381 if (ctx && !ctx->running) {
382 audio_set_pipeline(&ctx->audio_ctx, NULL);
384 ctx->pipeline = NULL;
386 }
387}
void client_audio_pipeline_destroy(client_audio_pipeline_t *pipeline)
Destroy a client audio pipeline.
audio_visualization_source_t source
Definition fft.c:24
void audio_set_pipeline(audio_context_t *ctx, void *pipeline)
Set audio pipeline for echo cancellation.
void * capture_media_source
Borrowed local media audio; configure before starting duplex.
bool running
Audio streams are currently running.
client_audio_pipeline_t * pipeline

References session_audio_ctx::audio_ctx, audio_set_pipeline(), audio_context_t::capture_media_source, client_audio_pipeline_destroy(), session_audio_ctx::pipeline, session_audio_ctx::running, and source.

Referenced by session_participant_start_audio().