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

🏠 Server-side session hosting abstraction More...

Go to the source code of this file.

Data Structures

struct  session_host_client_info_t
 Client information structure. More...
 
struct  session_host_callbacks_t
 Callback function prototypes for session host events. More...
 
struct  session_host_config_t
 Configuration for session host. More...
 

Typedefs

typedef struct session_host session_host_t
 Opaque session host handle.
 
typedef struct acip_transport acip_transport_t
 Forward declaration of ACIP transport.
 

Functions

session_host_t * session_host_create (const session_host_config_t *config)
 Create a new session host.
 
void session_host_destroy (session_host_t *host)
 Destroy session host and free resources.
 
asciichat_error_t session_host_start (session_host_t *host)
 Start accepting client connections.
 
void session_host_stop (session_host_t *host)
 Stop accepting connections and disconnect all clients.
 
bool session_host_is_running (session_host_t *host)
 Check if host is running.
 
uint32_t session_host_add_client (session_host_t *host, socket_t socket, const char *ip, int port)
 Add a client from an accepted socket.
 
uint32_t session_host_add_memory_participant (session_host_t *host)
 Add a memory participant (host's own media)
 
asciichat_error_t session_host_inject_frame (session_host_t *host, uint32_t participant_id, const image_t *frame)
 Inject a video frame from memory participant.
 
asciichat_error_t session_host_inject_audio (session_host_t *host, uint32_t participant_id, const float *samples, size_t count)
 Inject audio samples from memory participant.
 
asciichat_error_t session_host_remove_client (session_host_t *host, uint32_t client_id)
 Remove a client by ID.
 
asciichat_error_t session_host_find_client (session_host_t *host, uint32_t client_id, session_host_client_info_t *info)
 Find a client by ID.
 
int session_host_get_client_count (session_host_t *host)
 Get number of connected clients.
 
int session_host_get_client_ids (session_host_t *host, uint32_t *ids, int max_ids)
 Get list of all connected client IDs.
 
asciichat_error_t session_host_broadcast_frame (session_host_t *host, const char *frame)
 Broadcast ASCII frame to all clients.
 
asciichat_error_t session_host_send_frame (session_host_t *host, uint32_t client_id, const char *frame)
 Send ASCII frame to a specific client.
 
asciichat_error_t session_host_set_display (session_host_t *host, struct session_display_ctx *display)
 Set display context for local frame rendering.
 
asciichat_error_t session_host_start_render (session_host_t *host)
 Start media rendering thread (video mixing and audio distribution)
 
void session_host_stop_render (session_host_t *host)
 Stop media rendering thread.
 
asciichat_error_t session_host_set_client_transport (session_host_t *host, uint32_t client_id, acip_transport_t *transport)
 Set an alternative transport for a specific client in the host.
 
acip_transport_t * session_host_get_client_transport (session_host_t *host, uint32_t client_id)
 Get the current transport for a specific client in the host.
 
bool session_host_client_has_transport (session_host_t *host, uint32_t client_id)
 Check if a specific client has an active alternative transport.
 

Detailed Description

🏠 Server-side session hosting abstraction

Definition in file host.h.