ascii-chat 0.8.38
Real-time terminal-based video chat with ASCII art conversion
Loading...
Searching...
No Matches
main.c File Reference

Local media mirror mode: view webcam or media files as ASCII art without network. More...

Go to the source code of this file.

Functions

int mirror_main (void)
 Run mirror mode main loop.
 

Detailed Description

Local media mirror mode: view webcam or media files as ASCII art without network.

Mirror mode provides a simple way to view webcam feed or media files converted to ASCII art directly in the terminal. No server connection is required.

Features

  • Local webcam capture and ASCII conversion
  • Media file playback (video/audio files, animated GIFs)
  • Loop playback for media files
  • Terminal capability detection for optimal color output
  • Frame rate limiting for smooth display
  • Clean shutdown on Ctrl+C

Usage

Run as a standalone mode:

ascii-chat mirror # Use webcam
ascii-chat mirror --file video.mp4 # Play video file
ascii-chat mirror --file video.mp4 --loop # Loop video file
Author
Zachary Fogg me@zf.nosp@m.o.gg
Date
2025

Definition in file mirror/main.c.

Function Documentation

◆ mirror_main()

int mirror_main ( void  )

Run mirror mode main loop.

Initializes webcam and terminal, then continuously captures frames, converts them to ASCII art, and displays them locally.

Uses the session library for unified capture and display management.

Returns
0 on success, non-zero error code on failure

Definition at line 102 of file mirror/main.c.

102 {
103 // Configure mode-specific session settings
104 session_client_like_config_t config = {
105 .run_fn = mirror_run,
106 .run_user_data = NULL,
107 .keyboard_handler = mirror_keyboard_handler,
108 .print_newline_on_tty_exit = true, // Mirror prints newline to separate frame from prompt
109 };
110
111 // Run shared initialization/teardown with mode-specific loop
112 asciichat_error_t result = session_client_like_run(&config);
113
114 if (result != ASCIICHAT_OK) {
115 log_error("Mirror mode failed with error code: %d", result);
116 }
117
118 return (int)result;
119}
asciichat_error_t session_client_like_run(const session_client_like_config_t *config)
Definition client_like.c:96

References session_client_like_run().