ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
connections.c File Reference

Go to the source code of this file.

Functions

void server_send_video (client_info_t *client, acip_frame_workspace_t *workspace, const char *data, size_t length, uint32_t width, uint32_t height, int sources, const acip_render_settings_t *rendering)
asciichat_error_t server_send_audio (client_info_t *client, const void *data, size_t length)

Variables

const network_connection_callbacks_t server_network_callbacks

Function Documentation

◆ server_send_audio()

asciichat_error_t server_send_audio ( client_info_t * client,
const void * data,
size_t length )

Definition at line 131 of file connections.c.

131 {
132 mutex_lock(&client->send_mutex);
134 if (client->transport && !atomic_load_bool(&client->shutting_down) && atomic_load_bool(&client->event_ready))
136 fnv1a_hash_string(client->client_id));
137 mutex_unlock(&client->send_mutex);
138 return result;
139}
asciichat_error_t
Error and exit codes - unified status values (0-255).
Definition error_codes.h:44
@ ASCIICHAT_OK
Definition error_codes.h:46
@ PACKET_TYPE_AUDIO_OPUS_BATCH
Batched Opus-encoded audio frames.
Definition packet.h:398
asciichat_error_t packet_send_via_transport(acip_transport_t *transport, packet_type_t type, const void *payload, size_t payload_len, uint32_t client_id)
Definition send.c:190
char client_id[MAX_CLIENT_ID_LEN]

References ASCIICHAT_OK, client_info::client_id, client_info::event_ready, packet_send_via_transport(), PACKET_TYPE_AUDIO_OPUS_BATCH, client_info::send_mutex, client_info::shutting_down, and client_info::transport.

◆ server_send_video()

void server_send_video ( client_info_t * client,
acip_frame_workspace_t * workspace,
const char * data,
size_t length,
uint32_t width,
uint32_t height,
int sources,
const acip_render_settings_t * rendering )

Definition at line 113 of file connections.c.

114 {
115 mutex_lock(&client->send_mutex);
116 acip_transport_t *transport = client->transport;
117 if (transport && !atomic_load_bool(&client->shutting_down) && atomic_load_bool(&client->event_ready)) {
118 if (sources > 0 && atomic_load_u64(&client->last_sent_grid_sources) != (uint64_t)sources) {
119 acip_send_clear_console(transport);
120 atomic_store_u64(&client->last_sent_grid_sources, (uint64_t)sources);
121 }
123 transport, workspace, data, length, width, height, rendering,
124 (rendering->caps.capabilities & TERM_CAP_MATRIX_RAIN) ? FRAME_RENDER_CONTRACT_RAIN : 0,
125 client->client_id) == ASCIICHAT_OK)
126 atomic_fetch_add_u64(&client->frames_sent_count, 1);
127 }
128 mutex_unlock(&client->send_mutex);
129}
unsigned int height
Definition fft.c:23
unsigned int width
Definition fft.c:23
unsigned long long uint64_t
Definition common.h:63
struct acip_transport acip_transport_t
Forward declaration of ACIP transport.
Definition host.h:506
asciichat_error_t acip_send_ascii_frame_contract(acip_transport_t *transport, acip_frame_workspace_t *workspace, const char *frame_data, size_t frame_size, uint32_t width, uint32_t height, const acip_render_settings_t *settings, uint32_t effects, const char *client_id)
asciichat_error_t acip_send_clear_console(acip_transport_t *transport)
Send clear console command to client (server → client).
#define FRAME_RENDER_CONTRACT_RAIN

References acip_send_ascii_frame_contract(), acip_send_clear_console(), ASCIICHAT_OK, acip_render_settings_t::caps, client_info::client_id, client_info::event_ready, FRAME_RENDER_CONTRACT_RAIN, client_info::frames_sent_count, height, client_info::last_sent_grid_sources, client_info::send_mutex, client_info::shutting_down, client_info::transport, and width.

Referenced by client_video_render_thread().

Variable Documentation

◆ server_network_callbacks

const network_connection_callbacks_t server_network_callbacks
Initial value:
= {server_connection_open, server_connection_packet,
server_connection_closing, server_connection_closed}

Definition at line 110 of file connections.c.

110 {server_connection_open, server_connection_packet,
111 server_connection_closing, server_connection_closed};

Referenced by server_main().