ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
src/common/session/settings.c
Go to the documentation of this file.
1#include "session/settings.h"
3#include <ascii-chat/common.h>
4#include <string.h>
5
7 memset(settings, 0, sizeof(*settings));
8 settings->width = (int16_t)values->width;
9 settings->height = (int16_t)values->height;
10 settings->color_mode = (int8_t)values->color_mode;
11 settings->render_mode = (uint8_t)values->render_mode;
12 settings->palette_type = (uint8_t)values->palette_type;
13 settings->color_filter = (uint8_t)values->color_filter;
14 settings->fps = (uint8_t)values->fps;
15 settings->matrix_rain = values->matrix_rain;
16 SAFE_STRNCPY(settings->palette_custom, values->palette_custom, sizeof(settings->palette_custom));
17}
19 *values = options_t_new();
20 values->width = settings->width;
21 values->height = settings->height;
22 values->color_mode = settings->color_mode;
23 values->render_mode = settings->render_mode;
24 values->palette_type = settings->palette_type;
25 values->color_filter = settings->color_filter;
26 values->fps = settings->fps;
27 values->matrix_rain = settings->matrix_rain;
28 SAFE_STRNCPY(values->palette_custom, settings->palette_custom, sizeof(values->palette_custom));
29}
31 if (settings)
33}
35 if (!settings)
36 return SET_ERRNO(ERROR_INVALID_PARAM, "Missing settings");
37 options_snapshot_t *snapshot = SAFE_MALLOC(sizeof(*snapshot), options_snapshot_t *);
39 if (result == ASCIICHAT_OK) {
40 session_settings_from_values(&snapshot->values, settings);
41 settings->version = (uint32_t)snapshot->revision;
42 }
43 SAFE_FREE(snapshot);
44 return result;
45}
#define SET_ERRNO(code,...)
⚙️ Common definitions, error codes, macros, and types shared throughout the application
unsigned int uint32_t
Definition common.h:62
#define SAFE_STRNCPY(dst, src, size)
Definition common.h:423
#define SAFE_FREE(ptr)
Definition common.h:377
#define SAFE_MALLOC(size, cast)
Definition common.h:265
unsigned char uint8_t
Definition common.h:60
asciichat_error_t
Error and exit codes - unified status values (0-255).
Definition error_codes.h:44
@ ASCIICHAT_OK
Definition error_codes.h:46
@ ERROR_INVALID_PARAM
struct options_state options_t
Immutable, RCU-published snapshot of the application's runtime configuration.
const options_t * options_get(void)
Get pointer to current options struct (lock-free, thread-safe).
Definition rcu.c:511
options_t options_t_new(void)
Initialize options by parsing command-line arguments.
Definition options.c:547
asciichat_error_t options_read_snapshot(options_snapshot_t *snapshot)
Definition rcu.c:865
void session_settings_to_options(const session_settings_t *settings, options_t *values)
void session_settings_from_values(const options_t *values, session_settings_t *settings)
asciichat_error_t session_settings_from_options(session_settings_t *settings)
void session_settings_init(session_settings_t *settings)
🔤 String Manipulation and Shell Escaping Utilities
terminal_color_mode_t color_mode
Color mode (auto/none/16/256/truecolor).
Definition options.h:1092
int height
Terminal height in characters (int for OPTION_TYPE_INT compat).
Definition options.h:997
bool matrix_rain
Matrix digital rain effect (false = disabled).
Definition options.h:1152
char palette_custom[256]
Custom palette characters.
Definition options.h:1230
terminal_render_mode_t render_mode
Render mode (foreground/background/half-block).
Definition options.h:1095
color_filter_t color_filter
Monochromatic color filter (none/black/white/green/etc).
Definition options.h:1093
int fps
Target framerate (0 = auto, 1-144).
Definition options.h:1099
int width
Terminal width in characters (int for OPTION_TYPE_INT compat).
Definition options.h:996
palette_type_t palette_type
Selected palette type.
Definition options.h:1229
When code needs to work with session settings, it keeps version, width, height, color_mode here inste...