ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
participant.h
Go to the documentation of this file.
55
56#pragma once
58
59#include <stdbool.h>
60#include <stddef.h>
61#include <stdint.h>
63#include "session/settings.h"
64
65/* ============================================================================
66 * Session Participant Types
67 * ============================================================================ */
68
78
83typedef struct {
91
98
105 void (*on_frame_received)(session_participant_t *p, const char *frame, void *user_data);
106
114 void (*on_audio_received)(session_participant_t *p, const float *samples, size_t count, void *user_data);
115
123
131 void (*on_error)(session_participant_t *p, asciichat_error_t error, const char *message, void *user_data);
133
139typedef struct {
141 const char *address;
142
144 int port;
145
148
150 const char *password;
151
153 const char *server_key;
154
156 const char *tls_ca_file;
159
162
165
168
172
173/* ============================================================================
174 * Session Participant Lifecycle Functions
175 * @{
176 */
177
193
204
206
207/* ============================================================================
208 * Session Participant Connection Functions
209 * @{
210 */
211
226
238
247
256
258
259/* ============================================================================
260 * Session Participant Media Control Functions
261 * @{
262 */
263
276
285
294
308
316
325
327
328/* ============================================================================
329 * Session Participant Settings Functions
330 * @{
331 */
332
342
357
359
361
362/* ============================================================================
363 * Session Participant Transport Functions (WebRTC Integration)
364 * @{
365 */
366
378
398
408
422
434
436
438
Synchronized per-thread pending error stacks and value snapshots. SET_ERRNO pushes,...
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
void session_participant_stop_video(session_participant_t *p)
Stop and join video capture, then release its resources Also stops audio when it may borrow the video...
bool session_participant_is_audio_active(session_participant_t *p)
Check if audio is streaming.
struct session_participant session_participant_t
Client session state spanning connection, transport, media workers, and callbacks.
asciichat_error_t session_participant_connect(session_participant_t *p)
Connect to session server.
bool session_participant_is_video_active(session_participant_t *p)
Check if video is streaming.
void session_participant_stop_audio(session_participant_t *p)
Stop audio capture and streaming.
uint32_t session_participant_get_client_id(session_participant_t *p)
Get assigned client ID.
bool session_participant_has_transport(session_participant_t *p)
Check if participant has a selected transport.
acip_transport_t * session_participant_get_transport(session_participant_t *p)
Get the current transport for the participant.
asciichat_error_t session_participant_request_settings(session_participant_t *p, const session_settings_t *settings)
Request this participant's remote rendering update.
asciichat_error_t session_participant_start_video(session_participant_t *p)
Start video capture and streaming.
void session_participant_destroy(session_participant_t *p)
Destroy session participant and free resources.
asciichat_error_t session_participant_set_transport(session_participant_t *p, acip_transport_t *transport, acip_transport_ownership_t ownership)
Select a transport and its ownership mode for the participant.
session_participant_t * session_participant_create(const session_participant_config_t *config)
Server address, security, media, transport, and callback settings for a participant.
struct acip_transport acip_transport_t
Forward declaration of ACIP transport.
Definition host.h:506
bool session_participant_is_connected(session_participant_t *p)
Check if participant is connected.
void session_participant_disconnect(session_participant_t *p)
Disconnect from session server.
asciichat_error_t session_participant_get_settings(session_participant_t *p, session_settings_t *settings)
Get current session settings.
asciichat_error_t session_participant_start_audio(session_participant_t *p)
Start audio capture and streaming.
Transport abstraction layer for ACIP protocol.
struct network_connection network_connection_t
network_connection_t * session_participant_connection(session_participant_t *p)
asciichat_error_t session_participant_set_connection(session_participant_t *p, network_connection_t **owner)
Detach the selected transport and transfer its ownership responsibility.
asciichat_error_t session_participant_receive_settings(session_participant_t *p, const void *payload, size_t length)
asciichat_error_t session_participant_take_connection(session_participant_t *, network_connection_t **)
Client-side event hooks for connection, media, settings, and errors.
Definition participant.h:83
void(* on_frame_received)(session_participant_t *p, const char *frame, void *user_data)
Called when ASCII frame received from server.
void(* on_disconnected)(session_participant_t *p, void *user_data)
Called when disconnected from session.
Definition participant.h:97
void(* on_settings_changed)(session_participant_t *p, const session_settings_t *settings, void *user_data)
Called when session settings change.
void(* on_audio_received)(session_participant_t *p, const float *samples, size_t count, void *user_data)
Called when audio samples received from server.
void(* on_connected)(session_participant_t *p, uint32_t client_id, void *user_data)
Called when successfully connected to session.
Definition participant.h:90
void(* on_error)(session_participant_t *p, asciichat_error_t error, const char *message, void *user_data)
Called when an error occurs.
Client-side event hooks for connection, media, settings, and errors.
session_participant_callbacks_t callbacks
Event callbacks.
const char * address
Server address to connect to.
bool enable_video
Enable video capture and streaming.
const char * password
Password for server authentication (optional).
bool encryption_enabled
Enable encryption (default: true).
void * user_data
User-provided context pointer passed to callbacks.
const char * server_key
Expected server key for verification (optional).
bool enable_audio
Enable audio streaming.
int port
Server port (default: 27224).
Client session state spanning connection, transport, media workers, and callbacks.
Definition participant.c:58
session_settings_t settings
Current session settings.
void * user_data
User data for callbacks.
Definition participant.c:88
uint32_t client_id
Assigned client ID.
When code needs to work with session settings, it keeps version, width, height, color_mode here inste...