8#include <ascii-chat/platform/abstraction.h>
9#include <ascii-chat/platform/terminal.h>
10#include <ascii-chat/asciichat_errno.h>
19EM_JS(
int, js_get_terminal_cols, (), {
return Module.xterm ? Module.xterm.cols : 80; });
21EM_JS(
int, js_get_terminal_rows, (), {
return Module.xterm ? Module.xterm.rows : 24; });
23EM_JS(
void, js_terminal_write, (
const char *data,
int len), {
25 Module.xterm.write(UTF8ToString(data, len));
37 *cols = js_get_terminal_cols();
38 *rows = js_get_terminal_rows();
46 js_terminal_write(data, (
int)len);
81 if (!width || !height) {
82 return ERROR_INVALID_PARAM;
86 return ERROR_PLATFORM_INIT;
88 *width = (
unsigned short int)cols;
89 *height = (
unsigned short int)rows;
147 terminal_capabilities_t caps = {0};
148 caps.color_level = TERM_COLOR_256;
149 caps.capabilities = 0;
150 caps.color_count = 256;
151 caps.utf8_support =
true;
152 caps.detection_reliable =
true;
153 caps.render_mode = RENDER_MODE_FOREGROUND;
156 caps.wants_background =
true;
157 caps.palette_type = 0;
158 caps.desired_fps = 30;
159 caps.color_filter = COLOR_FILTER_NONE;