ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
mirror_session.cpp
Go to the documentation of this file.
1#include <emscripten/bind.h>
2#include "../common/opts.h"
3#include <string>
4extern "C" {
5#include "../mirror.h"
7}
8
9static int init_mirror(OptionsPatch options) {
10 int result = mirror_init();
11 if (result)
12 SET_ERRNO(ERROR_INIT, "Browser mirror initialization failed");
13 if (result)
14 return result;
15 result = initial_options(options);
16 if (result) {
17 asciichat_error_context_t context = {};
18 bool has_context = HAS_ERRNO(&context);
20 return SET_ERRNO(static_cast<asciichat_error_t>(result), "%s",
21 has_context ? context.context_message : "Invalid initial mirror options");
22 }
23 return 0;
24}
25
26EMSCRIPTEN_BINDINGS(ascii_chat_mirror_session) {
27 emscripten::function("initMirror", &init_mirror);
28 emscripten::function("sessionRenderCleanup", &session_render_cleanup);
29 emscripten::function("mirror_cleanup", &mirror_cleanup);
30}
Synchronized per-thread pending error stacks and value snapshots. SET_ERRNO pushes,...
#define SET_ERRNO(code,...)
#define HAS_ERRNO(context)
asciichat_error_t
Error and exit codes - unified status values (0-255).
Definition error_codes.h:44
@ ERROR_INIT
Definition error_codes.h:56
void mirror_cleanup(void)
Definition mirror.c:96
void session_render_cleanup(void)
Definition mirror.c:86
int mirror_init(void)
Definition mirror.c:51
EMSCRIPTEN_BINDINGS(ascii_chat_mirror_session)
int initial_options(OptionsPatch patch)
Definition opts.cpp:28