AuroraRuntime/Source/Console/ConsoleStd/ConsoleStd.hpp

65 lines
1.3 KiB
C++

/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: ConsoleStd.hpp
Date: 2021-6-8
Author: Reece
***/
#pragma once
namespace Aurora::Console::ConsoleStd
{
void Init();
void Pump();
void Exit();
void Flush();
void Start();
AuSPtr<AuLoop::ILoopSource> GetLoopSource();
AuUInt32 WriteStdOutBlocking2(const void *data, AuUInt32 length);
void Lock();
void Unlock();
AuUInt32 WriteStdOutNonBlocking(const void *data, AuUInt32 length);
void FlushStdOutNb();
AuUInt32 ReadStdIn(void *data, AuUInt32 length);
AuUInt32 WriteStdOut(const void *data, AuUInt32 length);
void WriteStdOut(AuUInt8 level, const ConsoleMessage &msg);
AUE_DEFINE(ECanonicalInput,
(
eInput,
eArrowUp,
eArrowDown,
eArrowRight,
eArrowLeft,
eHome,
eBackspace,
ePageUp,
ePageDown,
eScroll,
eEnter
));
struct CanonicalInput
{
ECanonicalInput type;
AuString keyUp;
int scrollDeltaY;
};
bool EnterCanMode();
void LeaveCanMode();
AuList<CanonicalInput> DebufferCanonicalInput();
void ProcessCanonical();
#if defined(AURORA_IS_MODERNNT_DERIVED)
void ProcessCanonical(HANDLE h);
#endif
}