|
ascii-chat 0.6.0
Real-time terminal-based video chat with ASCII art conversion
|
TUI-based service discovery for ascii-chat client. More...
Go to the source code of this file.
Data Structures | |
| struct | discovery_tui_server_t |
| Discovered server information from mDNS. More... | |
| struct | discovery_tui_config_t |
| Configuration for TUI discovery. More... | |
Functions | |
| discovery_tui_server_t * | discovery_tui_query (const discovery_tui_config_t *config, int *out_count) |
| Discover ASCII-Chat servers on the local network via mDNS. | |
| void | discovery_tui_free_results (discovery_tui_server_t *servers) |
| Free results from TUI discovery query. | |
| int | discovery_tui_prompt_selection (const discovery_tui_server_t *servers, int count) |
| Display discovered servers to user and prompt for selection. | |
| int | discovery_tui_select (const discovery_tui_server_t *servers, int count) |
| TUI-based server selection with formatted display. | |
| const char * | discovery_tui_get_best_address (const discovery_tui_server_t *server) |
| Get best address representation for a discovered server. | |
TUI-based service discovery for ascii-chat client.
Implements interactive mDNS-based discovery of ascii-chat servers on the local network. Provides a terminal UI for browsing and selecting available servers without manual IP entry.
Definition in file discovery_tui.h.
| void discovery_tui_free_results | ( | discovery_tui_server_t * | servers | ) |
Free results from TUI discovery query.
Releases memory allocated by discovery_tui_query().
| servers | Pointer to server array (safe to pass NULL) |
Free results from TUI discovery query.
Definition at line 45 of file discovery_tui.c.
References discovery_mdns_free().
Referenced by client_main().
| const char * discovery_tui_get_best_address | ( | const discovery_tui_server_t * | server | ) |
Get best address representation for a discovered server.
Returns the most suitable address representation (IPv4 > hostname > IPv6) for connecting to a discovered server.
Selection Priority:
| server | Discovered server |
Get best address representation for a discovered server.
Definition at line 206 of file discovery_tui.c.
References discovery_tui_server_t::address, discovery_tui_server_t::ipv4, discovery_tui_server_t::ipv6, and discovery_tui_server_t::name.
Referenced by client_main(), discovery_tui_prompt_selection(), and discovery_tui_select().
| int discovery_tui_prompt_selection | ( | const discovery_tui_server_t * | servers, |
| int | count | ||
| ) |
Display discovered servers to user and prompt for selection.
Shows a numbered list of discovered servers and prompts user to select one. Handles invalid input with re-prompting.
User Experience:
Behavior:
| servers | Array of discovered servers |
| count | Number of servers in array |
Display discovered servers to user and prompt for selection.
Definition at line 52 of file discovery_tui.c.
References discovery_tui_get_best_address(), discovery_tui_prompt_selection(), discovery_tui_server_t::name, and discovery_tui_server_t::port.
Referenced by discovery_tui_prompt_selection().
| discovery_tui_server_t * discovery_tui_query | ( | const discovery_tui_config_t * | config, |
| int * | out_count | ||
| ) |
Discover ASCII-Chat servers on the local network via mDNS.
Performs an mDNS query for _ascii-chat._tcp services on the local network. Collects responses and returns discovered servers to the caller.
Behavior:
Memory Management:
Error Handling:
Threading:
| config | Discovery configuration (NULL uses defaults) |
| out_count | Output parameter: number of discovered servers |
Example:
Discover ASCII-Chat servers on the local network via mDNS.
Calls discovery_mdns_query() from discovery.c with TUI-friendly configuration.
Definition at line 25 of file discovery_tui.c.
References discovery_mdns_query(), ERROR_INVALID_PARAM, discovery_tui_config_t::max_servers, discovery_tui_config_t::quiet, SET_ERRNO, and discovery_tui_config_t::timeout_ms.
Referenced by client_main().
| int discovery_tui_select | ( | const discovery_tui_server_t * | servers, |
| int | count | ||
| ) |
TUI-based server selection with formatted display.
Displays discovered servers in a formatted terminal UI with:
Display Example (3 servers):
No Results Display:
| servers | Array of discovered servers |
| count | Number of servers (0 for "no results") |
Displays discovered servers in a terminal UI with the following features:
| servers | Array of discovered servers |
| count | Number of servers |
Definition at line 120 of file discovery_tui.c.
References ANSI_BOLD, ANSI_CLEAR, ANSI_CYAN, ANSI_GREEN, ANSI_RESET, ANSI_YELLOW, discovery_tui_get_best_address(), discovery_tui_select(), log_lock_terminal(), log_plain, log_unlock_terminal(), discovery_tui_server_t::name, platform_sleep_ms(), and discovery_tui_server_t::port.
Referenced by client_main(), and discovery_tui_select().