ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
status.h
Go to the documentation of this file.
1#pragma once
2
20
21/* Storage capacities in elements; text buffers include the terminating NUL. */
22#define TUI_STATUS_SESSION_STRING_BUFFER_SIZE 64
23#define TUI_STATUS_IPV4_ADDRESS_BUFFER_SIZE 256
24#define TUI_STATUS_IPV6_ADDRESS_BUFFER_SIZE 256
25
26#include <time.h>
27#include "../common.h"
29#include <libplatform/terminal.h>
30typedef struct network_server network_server_t;
31
51
53void ui_status_render_header(frame_buffer_t *buffer, terminal_size_t size, void *status);
54
56const char *ui_status_log_controls(void);
57
75asciichat_error_t ui_status_gather(network_server_t *server, const char *session_string, const char *ipv4_address,
76 const char *ipv6_address, uint16_t port, time_t start_time, const char *mode_name,
77 bool session_is_mdns_only, ui_status_t *out_status);
78
87void ui_status_display(const ui_status_t *status);
88
100
117void ui_status_update(network_server_t *server, const char *session_string, const char *ipv4_address,
118 const char *ipv6_address, uint16_t port, time_t start_time, const char *mode_name,
119 bool session_is_mdns_only, uint64_t *last_update_ns);
120
126void ui_status_log_init(void);
127
133void ui_status_log_destroy(void);
134
142void ui_status_log_append(const char *message);
143
150void ui_status_log_clear(void);
⚙️ Common definitions, error codes, macros, and types shared throughout the application
Buffered terminal frame rendering.
struct frame_buffer frame_buffer_t
Opaque frame buffer handle.
unsigned short uint16_t
Definition common.h:61
unsigned long long uint64_t
Definition common.h:63
asciichat_error_t
Error and exit codes - unified status values (0-255).
Definition error_codes.h:44
struct network_server network_server_t
void ui_status_log_clear(void)
Clear all log messages from status screen buffer.
Definition status.c:62
asciichat_error_t ui_status_gather(network_server_t *server, const char *session_string, const char *ipv4_address, const char *ipv6_address, uint16_t port, time_t start_time, const char *mode_name, bool session_is_mdns_only, ui_status_t *out_status)
Gather current status information.
Definition status.c:71
void ui_status_update(network_server_t *server, const char *session_string, const char *ipv4_address, const char *ipv6_address, uint16_t port, time_t start_time, const char *mode_name, bool session_is_mdns_only, uint64_t *last_update_ns)
Periodically update status display with live logs at FPS rate.
Definition status.c:226
#define TUI_STATUS_IPV6_ADDRESS_BUFFER_SIZE
Definition status.h:24
void ui_status_display(const ui_status_t *status)
Display status screen.
Definition status.c:106
const char * ui_status_log_controls(void)
Definition status.c:34
void ui_status_log_destroy(void)
Cleanup status screen log capture system.
Definition status.c:55
void ui_status_log_init(void)
Initialize status screen log capture system.
Definition status.c:47
void ui_status_render_header(frame_buffer_t *buffer, terminal_size_t size, void *status)
void ui_status_log_append(const char *message)
Append a log message to status screen buffer.
#define TUI_STATUS_IPV4_ADDRESS_BUFFER_SIZE
Definition status.h:23
#define TUI_STATUS_SESSION_STRING_BUFFER_SIZE
Definition status.h:22
bool ui_status_display_interactive(const ui_status_t *status)
Display status screen with interactive keyboard support.
Definition status.c:156
Status information for server/discovery service modes.
Definition status.h:38
bool ipv4_bound
Whether IPv4 socket is bound.
Definition status.h:44
char ipv4_address[256]
Formatted IPv4 bind address with port.
Definition status.h:40
const char * detail
Optional client controls in the address row.
Definition status.h:48
bool ipv6_bound
Whether IPv6 socket is bound.
Definition status.h:45
uint16_t port
TCP listen port.
Definition status.h:42
char ipv6_address[256]
Formatted IPv6 bind address with port.
Definition status.h:41
char session_string[64]
Memorable session string (e.g., "happy-sunset-ocean").
Definition status.h:39
const char * mode_name
Mode name (e.g., "Server", "Discovery Service").
Definition status.h:49
time_t start_time
Server start time (for uptime calculation).
Definition status.h:47
bool session_is_mdns_only
Whether session is mDNS-only or ACDS.
Definition status.h:46
size_t connected_count
Number of connected clients/servers.
Definition status.h:43
⏱️ High-precision timing utilities using sokol_time.h and uthash