ascii-chat 0.8.38
Real-time terminal-based video chat with ASCII art conversion
Loading...
Searching...
No Matches
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);
19void handle_ping_packet(client_info_t *client, const void *data, size_t len);
20void handle_pong_packet(client_info_t *client, const void *data, size_t len);
21void handle_client_join_packet(client_info_t *client, const void *data, size_t len);
22void handle_protocol_version_packet(client_info_t *client, const void *data, size_t len);
23void handle_stream_start_packet(client_info_t *client, const void *data, size_t len);
24void handle_stream_stop_packet(client_info_t *client, const void *data, size_t len);
25void handle_client_leave_packet(client_info_t *client, const void *data, size_t len);
26void handle_remote_log_packet_from_client(client_info_t *client, const void *data, size_t len);
27
28void disconnect_client_for_bad_data(client_info_t *client, const char *format, ...);
29
30// Protocol utility functions
31int send_server_state_to_client(client_info_t *client);
Per-client state management and lifecycle orchestration.
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 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_pong_packet(client_info_t *client, const void *data, size_t len)
Handle PONG packet - client acknowledged our PING.
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_remote_log_packet_from_client(client_info_t *client, const void *data, size_t len)
void disconnect_client_for_bad_data(client_info_t *client, const char *format,...)
void handle_ping_packet(client_info_t *client, const void *data, size_t len)
Handle PING packet - respond with PONG.