ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
settings.c File Reference

Go to the source code of this file.

Functions

void session_settings_from_values (const options_t *values, session_settings_t *settings)
void session_settings_to_options (const session_settings_t *settings, options_t *values)
void session_settings_init (session_settings_t *settings)
asciichat_error_t session_settings_from_options (session_settings_t *settings)

Function Documentation

◆ session_settings_from_options()

asciichat_error_t session_settings_from_options ( session_settings_t * settings)

Definition at line 34 of file src/common/session/settings.c.

34 {
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,...)
unsigned int uint32_t
Definition common.h:62
#define SAFE_FREE(ptr)
Definition common.h:377
#define SAFE_MALLOC(size, cast)
Definition common.h:265
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
asciichat_error_t options_read_snapshot(options_snapshot_t *snapshot)
Definition rcu.c:865
void session_settings_from_values(const options_t *values, session_settings_t *settings)

References ASCIICHAT_OK, ERROR_INVALID_PARAM, options_read_snapshot(), options_snapshot_t::revision, SAFE_FREE, SAFE_MALLOC, session_settings_from_values(), SET_ERRNO, options_snapshot_t::values, and session_settings_t::version.

◆ session_settings_from_values()

void session_settings_from_values ( const options_t * values,
session_settings_t * settings )

Definition at line 6 of file src/common/session/settings.c.

6 {
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}
#define SAFE_STRNCPY(dst, src, size)
Definition common.h:423
unsigned char uint8_t
Definition common.h:60
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

References options_state::color_filter, session_settings_t::color_filter, options_state::color_mode, session_settings_t::color_mode, options_state::fps, session_settings_t::fps, options_state::height, session_settings_t::height, options_state::matrix_rain, session_settings_t::matrix_rain, options_state::palette_custom, session_settings_t::palette_custom, options_state::palette_type, session_settings_t::palette_type, options_state::render_mode, session_settings_t::render_mode, SAFE_STRNCPY, options_state::width, and session_settings_t::width.

Referenced by session_participant_receive_settings(), session_settings_from_options(), and session_settings_init().

◆ session_settings_init()

void session_settings_init ( session_settings_t * settings)

Definition at line 30 of file src/common/session/settings.c.

30 {
31 if (settings)
33}
const options_t * options_get(void)
Get pointer to current options struct (lock-free, thread-safe).
Definition rcu.c:511

References options_get(), and session_settings_from_values().

Referenced by session_participant_create().

◆ session_settings_to_options()