53 void (*on_ascii_frame)(
const ascii_frame_packet_t *header,
const void *frame_data,
size_t data_len,
void *ctx);
56 void (*on_audio)(
const void *audio_data,
size_t audio_len,
void *ctx);
59 void (*on_audio_batch)(
const audio_batch_packet_t *header,
const float *samples,
size_t num_samples,
void *ctx);
62 void (*on_audio_opus)(
const void *opus_data,
size_t opus_len,
void *ctx);
65 void (*on_audio_opus_batch)(
const void *batch_data,
size_t batch_len,
void *ctx);
71 void (*on_error)(
const error_packet_t *header,
const char *message,
void *ctx);
77 void (*on_ping)(
void *ctx);
80 void (*on_pong)(
void *ctx);
83 void (*on_clear_console)(
void *ctx);
86 void (*on_crypto_rekey_request)(
const void *payload,
size_t payload_len,
void *ctx);
89 void (*on_crypto_rekey_response)(
const void *payload,
size_t payload_len,
void *ctx);
135 void (*on_image_frame)(
const image_frame_packet_t *header,
const void *pixel_data,
size_t data_len,
void *client_ctx,
139 void (*on_audio)(
const void *audio_data,
size_t audio_len,
void *client_ctx,
void *app_ctx);
142 void (*on_audio_batch)(
const audio_batch_packet_t *header,
const float *samples,
size_t num_samples,
void *client_ctx,
146 void (*on_audio_opus)(
const void *opus_data,
size_t opus_len,
void *client_ctx,
void *app_ctx);
149 void (*on_audio_opus_batch)(
const void *batch_data,
size_t batch_len,
void *client_ctx,
void *app_ctx);
152 void (*on_client_join)(
const void *join_data,
size_t data_len,
void *client_ctx,
void *app_ctx);
155 void (*on_client_leave)(
void *client_ctx,
void *app_ctx);
158 void (*on_stream_start)(
uint32_t stream_types,
void *client_ctx,
void *app_ctx);
161 void (*on_stream_stop)(
uint32_t stream_types,
void *client_ctx,
void *app_ctx);
164 void (*on_capabilities)(
const void *cap_data,
size_t data_len,
void *client_ctx,
void *app_ctx);
167 void (*on_ping)(
void *client_ctx,
void *app_ctx);
170 void (*on_pong)(
void *client_ctx,
void *app_ctx);
173 void (*on_error)(
const error_packet_t *header,
const char *message,
void *client_ctx,
void *app_ctx);
176 void (*on_remote_log)(
const remote_log_packet_t *header,
const char *message,
void *client_ctx,
void *app_ctx);
179 void (*on_crypto_rekey_request)(
const void *payload,
size_t payload_len,
void *client_ctx,
void *app_ctx);
182 void (*on_crypto_rekey_response)(
const void *payload,
size_t payload_len,
void *client_ctx,
void *app_ctx);
185 void (*on_crypto_rekey_complete)(
const void *payload,
size_t payload_len,
void *client_ctx,
void *app_ctx);
206 size_t payload_len,
void *client_ctx,
⚠️‼️ Error and/or exit() when things go bad.
asciichat_error_t
Error and exit codes - unified status values (0-255)
packet_type_t
Network protocol packet type enumeration.
asciichat_error_t acip_handle_server_packet(acip_transport_t *transport, packet_type_t type, const void *payload, size_t payload_len, void *client_ctx, const acip_server_callbacks_t *callbacks)
Handle incoming packet on server side.
asciichat_error_t acip_handle_client_packet(acip_transport_t *transport, packet_type_t type, const void *payload, size_t payload_len, const acip_client_callbacks_t *callbacks)
Handle incoming packet on client side.
ACIP protocol message structures and helpers.
Client-side packet handler callbacks.
void * app_ctx
Application context (passed to all callbacks)
Server-side packet handler callbacks.
void * app_ctx
Application context (passed to all callbacks)
Transport instance structure.
ASCII frame packet structure (Packet Type 2)
Audio batch packet structure (Packet Type 28)
Error packet structure carrying error code and textual description.
Image frame packet structure (Packet Type 3)
Protocol version negotiation packet structure (Packet Type 1)
Remote log packet structure carrying log level and message text.
Server state packet structure.
Transport abstraction layer for ACIP protocol.