26 offsetof(options_t, color_filter),
27 &default_color_filter_value,
28 sizeof(color_filter_t),
29 "Apply a monochromatic color tint to grayscale video. Values: none, black, white, green, magenta, fuchsia, "
30 "orange, teal, cyan, pink, red, yellow, rainbow. Using --color-filter automatically sets --color-mode to mono.",
34 "ASCII_CHAT_COLOR_FILTER",
39 OPTION_MODE_CLIENT | OPTION_MODE_MIRROR | OPTION_MODE_DISCOVERY,
43 .input_type = OPTION_INPUT_ENUM},
48 offsetof(options_t, render_mode),
49 &default_render_mode_value,
50 sizeof(render_mode_t),
51 "Render mode of text for your client to display. Values: foreground, background, half-block. Press 'r' during "
52 "rendering to cycle.",
56 "ASCII_CHAT_RENDER_MODE",
61 OPTION_MODE_CLIENT | OPTION_MODE_MIRROR | OPTION_MODE_DISCOVERY,
65 .input_type = OPTION_INPUT_ENUM},
70 offsetof(options_t, palette_type),
71 &default_palette_type_value,
72 sizeof(palette_type_t),
73 "Palette type with which to render images to text art. Values: standard, blocks, digital, minimal, cool, "
74 "custom. All but \"custom\" are built-in presets that all look different and nice. Try them out!",
83 OPTION_MODE_CLIENT | OPTION_MODE_MIRROR | OPTION_MODE_DISCOVERY,
87 .input_type = OPTION_INPUT_ENUM},
92 offsetof(options_t, palette_custom),
95 "Ordered sequence of characters from darkest to brightest to use with custom palette (--palette=custom) for "
96 "rendering images to text art for your client. These characters only will be used to create the rendered output. "
97 "Can be UTF-8 content (see --utf8).",
101 "ASCII_CHAT_PALETTE_CHARS",
106 OPTION_MODE_CLIENT | OPTION_MODE_MIRROR | OPTION_MODE_DISCOVERY,
112 offsetof(options_t, stretch),
113 &default_stretch_value,
115 "Allow aspect ratio distortion of image for rendering ascii output. This can allow the rendered ascii to fill "
120 "ASCII_CHAT_STRETCH",
125 OPTION_MODE_CLIENT | OPTION_MODE_MIRROR | OPTION_MODE_DISCOVERY,
131 offsetof(options_t, fps),
134 "Target framerate for rendering (1-144).",
143 OPTION_MODE_CLIENT | OPTION_MODE_MIRROR | OPTION_MODE_DISCOVERY,
144 {.numeric_range = {1, 144, 1}, .examples =
g_fps_examples, .input_type = OPTION_INPUT_NUMERIC},
149 offsetof(options_t, snapshot_mode),
150 &default_snapshot_mode_value,
152 "Snapshot mode (one frame and exit).",
156 "ASCII_CHAT_SNAPSHOT",
161 OPTION_MODE_CLIENT | OPTION_MODE_MIRROR | OPTION_MODE_DISCOVERY,
167 offsetof(options_t, snapshot_delay),
168 &default_snapshot_delay_value,
170 "Snapshot delay in seconds. The timer starts right before the client-side program prints the first frame. "
171 "--snapshot --snapshot-delay=0 will print the first frame and exit.",
175 "ASCII_CHAT_SNAPSHOT_DELAY",
180 OPTION_MODE_CLIENT | OPTION_MODE_MIRROR | OPTION_MODE_DISCOVERY,
181 {.numeric_range = {0, 3600, 0}, .input_type = OPTION_INPUT_NUMERIC},
186 offsetof(options_t, matrix_rain),
187 &default_matrix_rain_value,
189 "Enable Matrix-style digital rain effect. Works with --render-mode truecolor|256 and --color-filter [color].",
198 OPTION_MODE_CLIENT | OPTION_MODE_MIRROR | OPTION_MODE_DISCOVERY,
204 offsetof(options_t, flip_x),
205 &default_flip_x_value,
207 "Flip video horizontally (X-axis). Works with webcam, files, and streams. Note: Ignored for webcam on macOS "
208 "(respects platform default like FaceTime).",
217 OPTION_MODE_CLIENT | OPTION_MODE_MIRROR | OPTION_MODE_DISCOVERY,
223 offsetof(options_t, flip_y),
224 &default_flip_y_value,
226 "Flip video vertically (Y-axis). Works with webcam, files, and streams.",
235 OPTION_MODE_CLIENT | OPTION_MODE_MIRROR | OPTION_MODE_DISCOVERY,
239 REGISTRY_TERMINATOR()};