ascii-chat 0.6.0
Real-time terminal-based video chat with ASCII art conversion
Loading...
Searching...
No Matches
src/server/protocol.h
Go to the documentation of this file.
1
7#pragma once
8
9#include "client.h"
10
11// Packet handling functions
12void handle_image_frame_packet(client_info_t *client, void *data, size_t len);
13void handle_audio_batch_packet(client_info_t *client, const void *data, size_t len);
14void handle_audio_opus_batch_packet(client_info_t *client, const void *data, size_t len);
15void handle_audio_opus_packet(client_info_t *client, const void *data, size_t len);
16void handle_audio_packet(client_info_t *client, const void *data, size_t len);
17void handle_client_capabilities_packet(client_info_t *client, const void *data, size_t len);
18void handle_size_packet(client_info_t *client, const void *data, size_t len);
20void handle_client_join_packet(client_info_t *client, const void *data, size_t len);
21void handle_protocol_version_packet(client_info_t *client, const void *data, size_t len);
22void handle_stream_start_packet(client_info_t *client, const void *data, size_t len);
23void handle_stream_stop_packet(client_info_t *client, const void *data, size_t len);
24void handle_client_leave_packet(client_info_t *client, const void *data, size_t len);
25void handle_remote_log_packet_from_client(client_info_t *client, const void *data, size_t len);
26
27void disconnect_client_for_bad_data(client_info_t *client, const char *format, ...);
28
29// Protocol utility functions
void handle_audio_opus_packet(client_info_t *client, const void *data, size_t len)
Process AUDIO_OPUS packet - decode single Opus frame from client.
void handle_audio_opus_batch_packet(client_info_t *client, const void *data, size_t len)
Process AUDIO_OPUS_BATCH packet - efficient Opus-encoded audio batch from client.
void disconnect_client_for_bad_data(client_info_t *client, const char *format,...)
Per-client state management and lifecycle orchestration.
void handle_client_join_packet(client_info_t *client, const void *data, size_t len)
Process CLIENT_JOIN packet - client announces identity and capabilities.
void handle_protocol_version_packet(client_info_t *client, const void *data, size_t len)
Process PROTOCOL_VERSION packet - validate protocol compatibility.
void handle_image_frame_packet(client_info_t *client, void *data, size_t len)
Process IMAGE_FRAME packet - store client's video data for rendering.
void handle_audio_batch_packet(client_info_t *client, const void *data, size_t len)
Process AUDIO_BATCH packet - store efficiently batched audio samples.
void handle_size_packet(client_info_t *client, const void *data, size_t len)
Process terminal size update packet - handle client window resize.
void handle_audio_packet(client_info_t *client, const void *data, size_t len)
Process AUDIO packet - store single audio sample batch (legacy format)
void handle_client_leave_packet(client_info_t *client, const void *data, size_t len)
Process CLIENT_LEAVE packet - handle clean client disconnect.
void handle_stream_stop_packet(client_info_t *client, const void *data, size_t len)
Process STREAM_STOP packet - client requests to halt media transmission.
int send_server_state_to_client(client_info_t *client)
Send current server state to a specific client.
void handle_client_capabilities_packet(client_info_t *client, const void *data, size_t len)
Process CLIENT_CAPABILITIES packet - configure client-specific rendering.
void broadcast_clear_console_to_all_clients(void)
Signal all active clients to clear their displays before next video frame.
void handle_stream_start_packet(client_info_t *client, const void *data, size_t len)
Process STREAM_START packet - client requests to begin media transmission.
void handle_ping_packet(client_info_t *client)
Process PING packet - respond with PONG for keepalive.
void handle_remote_log_packet_from_client(client_info_t *client, const void *data, size_t len)
Per-client state structure for server-side client management.