29#define CONBUF_DEFAULT_SIZE 4096
56bool _conWriteLocked(_Inout_ ConStream* con, _In_reads_bytes_(sz)
const uint8* buf,
size_t sz);
60uint32 _conUtf8Encode(_Out_writes_(4) uint8 out[4], int32 cp);
67uint32 _conUtf8Decode(_In_reads_bytes_(len)
const uint8* buf, uint32 len, _Out_ int32* cp);
73uint32 _conAppendDec(
char* buf, uint32 pos, uint32 v);
74uint32 _conAppendCode(
char* buf, uint32 pos, uint32 code);
83void _conPlatInit(_Inout_ ConStream* con, ConKind kind);
87bool _conPlatWrite(_Inout_ ConStream* con, _In_reads_bytes_(sz)
const void* buf,
size_t sz);
91void _conPlatQuerySize(_Inout_ ConStream* con);
95void _conPlatShutdown(_Inout_ ConStream* con);
106bool _conPlatSetStyleLegacy(_Inout_ ConStream* con,
ConStyle style);
120bool _conPlatCursorSet(_Inout_ ConStream* con, uint16 row, uint16 col);
121bool _conPlatCursorGet(_Inout_ ConStream* con, _Out_ uint16* row, _Out_ uint16* col);
122bool _conPlatCursorShow(_Inout_ ConStream* con,
bool show);
126bool _conPlatCursorSave(_Inout_ ConStream* con);
127bool _conPlatCursorRestore(_Inout_ ConStream* con);
129bool _conPlatEraseLine(_Inout_ ConStream* con,
ConEraseMode mode);
130bool _conPlatEraseScreen(_Inout_ ConStream* con,
ConEraseMode mode);
134bool _conPlatScroll(_Inout_ ConStream* con, int16 lines);
149 _In_opt_z_
const char* term, _In_opt_z_
const char* colorterm,
150 _In_opt_z_
const char* no_color, _In_opt_z_
const char* force_color,
151 _In_opt_z_
const char* clicolor_force, _In_opt_z_
const char* wt_session,
152 _In_opt_z_
const char* conemuansi, _In_opt_z_
const char* term_program,
153 _In_opt_z_
const char* lang);
164typedef enum ConDecodeResult {
165 CON_Decode_Incomplete,
173ConDecodeResult _conDecodeEscape(_In_reads_bytes_(len)
const uint8* buf, uint32 len,
185bool _conPlatSetMode(_Inout_ ConStream* con,
ConInputMode mode);
186bool _conPlatSetEcho(_Inout_ ConStream* con,
bool echo);
187bool _conPlatInWait(_Inout_ ConStream* con, int64 timeout);
188bool _conPlatReadKey(_Inout_ ConStream* con, _Out_
ConKeyEvent* out, int64 timeout);
197bool _conPlatReadRawByte(_Inout_ ConStream* con, _Out_ uint8* out);
Cursor positioning and screen erase/scroll operations.
Keyboard input: raw mode, key decoding, line/password reading.
Console text styling: colors, attributes, and styled writes.
struct ConStream ConStream
ConColorDepth
Color depth a stream is able to render.
ConEraseMode
Which portion of a line or screen to erase, relative to the current cursor position.
Mutex synchronization primitive.
A single decoded key press.