[+] Added AuConsole example

[*] Update (ROXTL and) Runtime

Git fucked up and wont let me stage ROXTL. Fuck recloning bc git sucks.
This commit is contained in:
Reece Wilson 2022-05-03 07:34:01 +01:00
parent 6a430b5f3f
commit 2facfac20d
2 changed files with 70 additions and 1 deletions

@ -1 +1 @@
Subproject commit a66fb2c5107487287fd6a7c2223efd92c63813f8
Subproject commit 45975e475571bf76dace0aab9bd30b263eec0192

View File

@ -0,0 +1,69 @@
/***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Main.cpp
Date: 2022-2-18
Author: Reece
***/
#include <AuroraRuntime.hpp>
#include <gtest/gtest.h>
static void PrintDebug()
{
AuConsole::TTYFill(' ', AuConsole::EAnsiColor::eBoldMagenta, AuConsole::EAnsiColor::eBoldMagenta);
AuConsole::TTYWrite("Hello Red and Blue\r\n", AuConsole::EAnsiColor::eRed, AuConsole::EAnsiColor::eBlue);
AuConsole::TTYWrite("To blank\r\n");
AuConsole::TTYMoveY(1);
AuConsole::TTYClearLine(AuConsole::EAnsiColor::eBoldMagenta);
AuConsole::TTYWrite("Overwritten\r\n");
AuConsole::TTYWrite("Hello Red and Blue\r\n", AuConsole::EAnsiColor::eRed, AuConsole::EAnsiColor::eBoldGreen);
AuConsole::TTYWrite("Hello Bold Red and Blue\r\n", AuConsole::EAnsiColor::eBoldRed, AuConsole::EAnsiColor::eBoldGreen);
AuConsole::TTYWrite("Hello Green and Blue\r\n", AuConsole::EAnsiColor::eGreen, AuConsole::EAnsiColor::eBoldGreen);
AuConsole::TTYWrite("Hello Bold Green and Blue\r\n", AuConsole::EAnsiColor::eBoldGreen, AuConsole::EAnsiColor::eBlue);
AuConsole::TTYWrite("Hello Yellow and Blue\r\n", AuConsole::EAnsiColor::eYellow, AuConsole::EAnsiColor::eBoldGreen);
AuConsole::TTYWrite("Hello Bold Yellow and Blue\r\n", AuConsole::EAnsiColor::eBoldYellow, AuConsole::EAnsiColor::eBoldGreen);
AuConsole::TTYWrite("Hello Blue and Blue\r\n", AuConsole::EAnsiColor::eBlue, AuConsole::EAnsiColor::eBoldGreen);
AuConsole::TTYWrite("Hello Bold Blue and Blue\r\n", AuConsole::EAnsiColor::eBoldBlue, AuConsole::EAnsiColor::eBoldGreen);
AuConsole::TTYWrite("Hello Magenta and Blue\r\n", AuConsole::EAnsiColor::eMagenta, AuConsole::EAnsiColor::eBoldGreen);
AuConsole::TTYWrite("Hello Bold Magenta and Blue\r\n", AuConsole::EAnsiColor::eBoldMagenta, AuConsole::EAnsiColor::eBoldGreen);
AuConsole::TTYWrite("Hello Cyan and Blue\r\n", AuConsole::EAnsiColor::eCyan, AuConsole::EAnsiColor::eBoldGreen);
AuConsole::TTYWrite("Hello Bold Cyan and Blue\r\n", AuConsole::EAnsiColor::eBoldCyan, AuConsole::EAnsiColor::eBoldGreen);
}
static void ReadStdInNonBlocking()
{
AuLogInfo("Awaiting input (10s)");
auto loop = Aurora::Loop::NewLoopQueue();
auto source = AuConsole::StdInBufferLoopSource();
ASSERT_TRUE(loop->SourceAdd(source));
ASSERT_TRUE(loop->Commit());
if (loop->WaitAll(10 * 1000))
{
char binary[512];
int length = AuConsole::ReadStdIn(binary, AuArraySize(binary));
AuLogInfo("Got input binary (!!!): {}", AuString(binary, binary + length));
ASSERT_FALSE(source->IsSignaled());
ASSERT_FALSE(source->WaitOn(100));
}
else
{
AuLogInfo("Got nothing");
}
}
void RunTests()
{
Aurora::RuntimeStartInfo info;
info.console.fio.enableLogging = false;
info.console.enableStdPassthrough = true; // for ReadStdIn
info.console.enableStdOut = false; // give back stdout to the logger
Aurora::RuntimeStart(info);
PrintDebug();
ReadStdInNonBlocking();
}