X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsystemd-terminal%2Fterm.h;h=a3ca252e31fd9a392dc8c84e5a42c5cf25cac77f;hb=fe741a85c1912ead26c1a78251e1d490a8a432b3;hp=2f2bb479cbcfac3d8a93ac01b37d6c83c1fd64d5;hpb=a30f1425133d2b64a1c3f0113a710528872a3cbb;p=elogind.git diff --git a/src/libsystemd-terminal/term.h b/src/libsystemd-terminal/term.h index 2f2bb479c..a3ca252e3 100644 --- a/src/libsystemd-terminal/term.h +++ b/src/libsystemd-terminal/term.h @@ -111,7 +111,7 @@ struct term_utf8 { }; size_t term_utf8_encode(char *out_utf8, uint32_t g); -const uint32_t *term_utf8_decode(term_utf8 *p, size_t *out_len, char c); +size_t term_utf8_decode(term_utf8 *p, uint32_t **out_buf, char c); /* * Parsers @@ -137,6 +137,9 @@ term_screen *term_screen_unref(term_screen *screen); DEFINE_TRIVIAL_CLEANUP_FUNC(term_screen*, term_screen_unref); +unsigned int term_screen_get_width(term_screen *screen); +unsigned int term_screen_get_height(term_screen *screen); + int term_screen_feed_text(term_screen *screen, const uint8_t *in, size_t size); int term_screen_feed_keyboard(term_screen *screen, uint32_t keysym, uint32_t ascii, uint32_t ucs4, unsigned int mods); int term_screen_resize(term_screen *screen, unsigned int width, unsigned int height); @@ -144,3 +147,15 @@ void term_screen_soft_reset(term_screen *screen); void term_screen_hard_reset(term_screen *screen); int term_screen_set_answerback(term_screen *screen, const char *answerback); + +int term_screen_draw(term_screen *screen, + int (*draw_fn) (term_screen *screen, + void *userdata, + unsigned int x, + unsigned int y, + const term_attr *attr, + const uint32_t *ch, + size_t n_ch, + unsigned int ch_width), + void *userdata, + uint64_t *fb_age);