ascii-chat 0.11.33
Video chat in your terminal
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_image_frame_h265_packet(client_info_t *client, const void *data, size_t len);
14void handle_audio_batch_packet(client_info_t *client, const void *data, size_t len);
15void handle_audio_opus_batch_packet(client_info_t *client, const void *data, size_t len);
16void handle_audio_opus_packet(client_info_t *client, const void *data, size_t len);
17void handle_audio_packet(client_info_t *client, const void *data, size_t len);
18void handle_client_capabilities_packet(client_info_t *client, const void *data, size_t len);
19void handle_size_packet(client_info_t *client, const void *data, size_t len);
20void handle_ping_packet(client_info_t *client, const void *data, size_t len);
21void handle_pong_packet(client_info_t *client, const void *data, size_t len);
22void handle_client_join_packet(client_info_t *client, const void *data, size_t len);
23void handle_protocol_version_packet(client_info_t *client, const void *data, size_t len);
24void handle_stream_start_packet(client_info_t *client, const void *data, size_t len);
25void handle_stream_stop_packet(client_info_t *client, const void *data, size_t len);
26void handle_client_leave_packet(client_info_t *client, const void *data, size_t len);
27void handle_remote_log_packet_from_client(client_info_t *client, const void *data, size_t len);
28
29void disconnect_client_for_bad_data(client_info_t *client, const char *format, ...);
30
31// 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 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_image_frame_h265_packet(client_info_t *client, const void *data, size_t len)
Process H.265-encoded image frame from client.
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.
Client-side H.265 media capture and encoding pipeline.
Per-client state structure for server-side client management.