11#if defined(__cplusplus) && defined(_WIN32)
13using std::atomic_bool;
15using std::atomic_uint;
Common declarations and data structures for cryptographic handshake.
unsigned long long uint64_t
#define MAX_DISPLAY_NAME_LEN
Maximum display name length in characters.
packet_type_t
Network protocol packet type enumeration.
palette_type_t
Built-in palette type enumeration.
struct client_info client_info_t
Per-client state structure for server-side client management.
Network logging macros and remote log direction enumeration.
🌐 Core network I/O operations with timeout support
Packet protocol implementation with encryption and compression support.
📬 Thread-safe packet queue system for per-client send threads
ASCII Palette Management for Video-to-ASCII Conversion.
Lock-Free Ring Buffer and Frame Buffer Management.
Transport instance structure.
Audio ring buffer for real-time audio streaming.
Per-client state structure for server-side client management.
atomic_bool video_render_thread_running
terminal_capabilities_t terminal_caps
void * crypto_plaintext_buffer
acip_transport_t * transport
size_t crypto_ciphertext_size
char display_name[MAX_DISPLAY_NAME_LEN]
atomic_int last_sent_grid_sources
asciichat_thread_t audio_render_thread
size_t crypto_plaintext_size
uint32_t frames_received_logged
video_frame_buffer_t * outgoing_video_buffer
asciichat_thread_t send_thread
crypto_handshake_context_t crypto_handshake_ctx
struct timespec last_video_render_time
char client_palette_chars[256]
video_frame_buffer_t * incoming_video_buffer
bool client_palette_initialized
audio_ring_buffer_t * incoming_audio_buffer
atomic_bool protocol_disconnect_requested
mutex_t client_state_mutex
atomic_bool is_sending_audio
atomic_bool audio_render_thread_running
atomic_int last_rendered_grid_sources
asciichat_thread_t receive_thread
packet_queue_t * audio_queue
char client_ip[INET_ADDRSTRLEN]
atomic_bool shutting_down
packet_type_t pending_packet_type
asciichat_thread_t video_render_thread
char client_luminance_palette[256]
atomic_bool is_sending_video
struct timespec last_audio_render_time
void * pending_packet_payload
void * crypto_ciphertext_buffer
palette_type_t client_palette_type
size_t client_palette_len
size_t pending_packet_length
atomic_bool send_thread_running
Cryptographic handshake context structure.
Thread-safe packet queue for producer-consumer communication.
Complete terminal capabilities structure.
Video frame buffer manager.
🖥️ Cross-platform terminal interface for ascii-chat
⏱️ High-precision timing utilities using sokol_time.h and uthash
Transport abstraction layer for ACIP protocol.
#️⃣ Wrapper for uthash.h that ensures common.h is included first