ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
http_renderer.h
Go to the documentation of this file.
1#pragma once
2
3#include <ascii-chat/common.h>
4#include <libplatform/atomic.h>
6#include <libplatform/filesystem.h>
7#include <libplatform/thread.h>
8#include <libplatform/mutex.h>
9#include <stdbool.h>
10#include <stddef.h>
11#include <stdint.h>
12
13#define HTTP_RENDERER_MAX_OUTPUT (8u * 1024u * 1024u)
14
29
30#define HTTP_RENDERER_MAX_FRAMES 120
31
38
46
54
64
78
81
93
108
119
120typedef void (*http_renderer_job_fn)(void *context, atomic_t *cancelled);
121
135
139 uint64_t timestamp_ms);
141 uint64_t timestamp_ms);
145
148
150 void *context);
155
158 http_renderer_job_t **out_job);
⚙️ Common definitions, error codes, macros, and types shared throughout the application
unsigned int uint32_t
Definition common.h:62
#define PLATFORM_MAX_PATH_LENGTH
Definition common.h:95
unsigned long long uint64_t
Definition common.h:63
asciichat_error_t
Error and exit codes - unified status values (0-255).
Definition error_codes.h:44
#define OPTIONS_BUFF_SIZE
Buffer size for option string values.
Definition options.h:310
struct http_renderer_job http_renderer_job_t
void http_renderer_process(http_renderer_process_request_t *request, atomic_t *cancelled, http_renderer_process_result_t *result)
asciichat_error_t http_renderer_submit(http_renderer_t *renderer, const http_render_request_t *request, void *user_data, http_renderer_job_t **out_job)
asciichat_error_t http_renderer_render_file(const char *path, const http_render_request_t *request, http_render_result_t *result, atomic_t *cancelled)
void http_render_request_init(http_render_request_t *request)
void http_renderer_job_reset(http_renderer_job_t *job)
void http_renderer_stop(http_renderer_t *renderer)
void(* http_renderer_job_fn)(void *context, atomic_t *cancelled)
http_render_source_type_t
@ HTTP_RENDER_SOURCE_WEBCAM
@ HTTP_RENDER_SOURCE_FILE
@ HTTP_RENDER_SOURCE_UPLOAD
@ HTTP_RENDER_SOURCE_VISUALIZATION
@ HTTP_RENDER_SOURCE_URL
http_render_output_type_t
@ HTTP_RENDER_OUTPUT_FILES
@ HTTP_RENDER_OUTPUT_HTML
@ HTTP_RENDER_OUTPUT_FILE
@ HTTP_RENDER_OUTPUT_TEXT
@ HTTP_RENDER_OUTPUT_JSON
void http_renderer_job_wait(http_renderer_job_t *job)
void http_renderer_job_join(http_renderer_job_t *job)
void http_renderer_reap(http_renderer_t *renderer, bool all)
asciichat_error_t http_render_result_add_file_frame(http_render_result_t *result, const char *path, uint64_t timestamp_ms)
asciichat_error_t http_renderer_cancel(http_renderer_job_t *job)
asciichat_error_t http_renderer_init(http_renderer_t **out, const http_renderer_config_t *config)
void http_renderer_process_result_destroy(http_renderer_process_result_t *result)
void http_render_result_destroy(http_render_result_t *result)
bool http_renderer_job_is_done(const http_renderer_job_t *job)
struct http_renderer http_renderer_t
asciichat_error_t http_renderer_job_start(http_renderer_job_t *job, const char *name, http_renderer_job_fn execute, void *context)
void http_renderer_job_cancel(http_renderer_job_t *job)
void http_renderer_destroy(http_renderer_t **renderer)
asciichat_error_t http_render_result_add_text_frame(http_render_result_t *result, const char *text, size_t length, uint64_t timestamp_ms)
⚙️ Unified options parsing system for ascii-chat with builder pattern and lock-free access
static bool size_t gotel_query_t * out
Definition queries.h:8
char path[PLATFORM_MAX_PATH_LENGTH]
char render_theme[OPTIONS_BUFF_SIZE]
char palette_chars[OPTIONS_BUFF_SIZE]
char palette[OPTIONS_BUFF_SIZE]
http_render_source_t source
http_render_output_type_t output_type
http_render_options_t options
http_render_frame_t * frames
asciichat_error_t error
char output_path[PLATFORM_MAX_PATH_LENGTH]
char path[PLATFORM_MAX_PATH_LENGTH]
http_render_source_type_t type
char url[OPTIONS_BUFF_SIZE]
const char * renderer_executable
void(* on_complete)(http_renderer_job_t *job, const http_render_result_t *result, void *user_data)
void(* on_error)(http_renderer_job_t *job, asciichat_error_t error, void *user_data)
http_renderer_t * renderer
http_render_result_t result
http_renderer_job_fn execute
http_render_request_t request
platform_thread_t thread
struct http_renderer_job * next
char upload_dir[PLATFORM_MAX_PATH_LENGTH]
http_render_output_type_t output_type
char stage_file[PLATFORM_MAX_PATH_LENGTH]
char stage_dir[PLATFORM_MAX_PATH_LENGTH]
http_render_options_t options
char source_path[PLATFORM_MAX_PATH_LENGTH]
char source_url[OPTIONS_BUFF_SIZE]
char output_path[PLATFORM_MAX_PATH_LENGTH]
char output_path[PLATFORM_MAX_PATH_LENGTH]
http_render_frame_t * frames