ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
settings.h
Go to the documentation of this file.
1
44#pragma once
45
46#include <stdbool.h>
47#include <stddef.h>
48#include <stdint.h>
50
51/* ============================================================================
52 * Session Settings Constants
53 * ============================================================================ */
54
56#define SESSION_SETTINGS_VERSION 1
57
59#define SESSION_SETTINGS_SERIALIZED_SIZE 64
60
61/* ============================================================================
62 * Session Settings Structure
63 * ============================================================================ */
64
77typedef struct {
80
82 int16_t width;
83
85 int16_t height;
86
89
92
95
97 char palette_custom[32];
98
101
104
106 uint8_t reserved[16];
108
109/* ============================================================================
110 * Session Settings Functions
111 * @{
112 */
113
129
142asciichat_error_t session_settings_serialize(const session_settings_t *settings, uint8_t *buffer, size_t *len);
143
159
171
183
195bool session_settings_needs_update(uint32_t local_version, uint32_t remote_version);
196
206
⚠️‼️ Comprehensive thread-local error context system for ascii-chat
unsigned int uint32_t
Definition common.h:58
unsigned char uint8_t
Definition common.h:56
asciichat_error_t
Error and exit codes - unified status values (0-255)
Definition error_codes.h:49
bool session_settings_equal(const session_settings_t *a, const session_settings_t *b)
Compare two settings structures for equality.
Definition settings.c:224
asciichat_error_t session_settings_deserialize(const uint8_t *buffer, size_t len, session_settings_t *settings)
Deserialize session settings from binary buffer.
Definition settings.c:101
asciichat_error_t session_settings_apply_to_options(const session_settings_t *settings)
Apply settings to global options.
Definition settings.c:198
bool session_settings_needs_update(uint32_t local_version, uint32_t remote_version)
Check if settings need update based on versions.
Definition settings.c:219
asciichat_error_t session_settings_from_options(session_settings_t *settings)
Populate settings from current global options.
Definition settings.c:160
asciichat_error_t session_settings_serialize(const session_settings_t *settings, uint8_t *buffer, size_t *len)
Serialize session settings to binary buffer.
Definition settings.c:51
void session_settings_init(session_settings_t *settings)
Initialize session settings to defaults.
Definition settings.c:26
ClangTool/LibTooling compatibility shim for stdbool.h.
Session settings for transmission between peers.
Definition settings.h:77
uint8_t audio_enabled
Audio enabled flag.
Definition settings.h:100
int16_t width
Terminal width in characters (0 = auto-detect)
Definition settings.h:82
uint8_t color_mode
Color mode (terminal_color_mode_t value)
Definition settings.h:88
uint8_t palette_type
Palette type (palette_type_t value)
Definition settings.h:94
uint8_t encryption_required
Encryption required flag.
Definition settings.h:103
uint32_t version
Settings version for conflict detection (monotonically increasing)
Definition settings.h:79
uint8_t render_mode
Render mode (render_mode_t value)
Definition settings.h:91
int16_t height
Terminal height in characters (0 = auto-detect)
Definition settings.h:85