ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
digital_rain.h
Go to the documentation of this file.
1#pragma once
2
42
44#include <stddef.h>
45#include <stdint.h>
46#include <stdbool.h>
47#include "../../common.h"
48#include <libplatform/terminal.h>
49
50/* ============================================================================
51 * Types and Constants
52 * ============================================================================ */
53
67
99
100/* ============================================================================
101 * Configuration Constants
102 * ============================================================================ */
103
110#define DIGITAL_RAIN_DEFAULT_FALL_SPEED 10.0f
111
118#define DIGITAL_RAIN_DEFAULT_RAINDROP_LENGTH 12.0f
119
126#define DIGITAL_RAIN_DEFAULT_BRIGHTNESS_DECAY 0.1f
127
133#define DIGITAL_RAIN_DEFAULT_ANIMATION_SPEED 1.0f
134
140#define DIGITAL_RAIN_DEFAULT_COLOR_R 0
141#define DIGITAL_RAIN_DEFAULT_COLOR_G 255
142#define DIGITAL_RAIN_DEFAULT_COLOR_B 80
143
149#define DIGITAL_RAIN_DEFAULT_CURSOR_BRIGHTNESS 2.0f
150
151/* ============================================================================
152 * Initialization and Cleanup
153 * ============================================================================ */
154
167digital_rain_t *digital_rain_init(int num_columns, int num_rows);
168
177
178/* ============================================================================
179 * Effect Application
180 * ============================================================================ */
181
209char *digital_rain_apply(digital_rain_t *rain, const char *frame, float delta_time);
210
220
221/* ============================================================================
222 * Parameter Adjustment
223 * ============================================================================ */
224
230void digital_rain_set_fall_speed(digital_rain_t *rain, float speed);
231
237void digital_rain_set_raindrop_length(digital_rain_t *rain, float length);
238
247
256void digital_rain_set_color_from_filter(digital_rain_t *rain, color_filter_t filter);
257
260
⚙️ Common definitions, error codes, macros, and types shared throughout the application
unsigned int uint32_t
Definition common.h:62
unsigned long long uint64_t
Definition common.h:63
unsigned char uint8_t
Definition common.h:60
void digital_rain_set_raindrop_length(digital_rain_t *rain, float length)
Set digital rain raindrop length.
void digital_rain_reset(digital_rain_t *rain)
Reset digital rain effect state.
void digital_rain_set_color_from_filter(digital_rain_t *rain, color_filter_t filter)
Set digital rain color from color filter.
void digital_rain_set_fall_speed(digital_rain_t *rain, float speed)
Set digital rain fall speed.
void digital_rain_set_color(digital_rain_t *rain, uint8_t r, uint8_t g, uint8_t b)
Set digital rain color.
int digital_rain_glyph_group(uint32_t codepoint)
void digital_rain_destroy(digital_rain_t *rain)
Destroy digital rain effect context.
char * digital_rain_apply(digital_rain_t *rain, const char *frame, float delta_time)
Apply digital rain effect to ASCII frame.
struct digital_rain digital_rain_t
Digital rain effect context.
digital_rain_t * digital_rain_init(int num_columns, int num_rows)
Initialize digital rain effect context.
digital rain column keeps the values that move through the subsystem: time_offset,...
float phase_offset
Phase offset for wobble variation.
float time_offset
Random time offset for this column (prevents synchronization).
float speed_multiplier
Speed variation multiplier (0.5 to 1.0).
Digital rain effect context.
uint8_t color_g
Matrix green G component.
float fall_speed
Base fall speed multiplier.
uint8_t color_b
Matrix green B component.
int num_rows
Number of rows in grid.
float brightness_decay
Brightness smoothing factor (0-1).
float time
Current simulation time (accumulated).
float raindrop_length
Length of each raindrop (in cells).
uint8_t color_r
Matrix green R component.
animation_t animation
Producer-owned animation clock.
float animation_speed
Overall animation speed multiplier.
bool first_frame
True if this is the first frame.
float cursor_brightness
Cursor brightness multiplier.
bool rainbow_mode
True if rainbow color cycling is enabled.
float * previous_brightness
Previous frame brightness (for smoothing).
uint64_t animation_timestamp_ns
int num_columns
Number of columns in grid.
digital_rain_column_t * columns
Per-column state array.