From 3629e6f2726b6221749fffb6e97096f472869964 Mon Sep 17 00:00:00 2001 From: niansa Date: Sat, 8 Apr 2023 18:43:23 +0200 Subject: [PATCH] Added fast scrolling using left/right --- NDSUI.cpp | 15 ++++++++++----- Runtime.hpp | 4 ---- main.cpp | 21 ++++++++++++++++++++- 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/NDSUI.cpp b/NDSUI.cpp index db4a246..9aacfe8 100644 --- a/NDSUI.cpp +++ b/NDSUI.cpp @@ -164,12 +164,17 @@ void NDSUI::scanButtons() { scanKeys(); int keys = keysDownRepeat(); // Scrolling - if (keys & KEY_DOWN) { - if (scrollOff != 0) { - scrollOff--; + if (scrollOff != 0) { + if (keys & KEY_DOWN) { + scrollOff -= 1; + } else if (keys & KEY_RIGHT) { + scrollOff -= 5; } - } else if (keys & KEY_UP) { - scrollOff++; + } + if (keys & KEY_UP) { + scrollOff += 1; + } else if (keys & KEY_LEFT) { + scrollOff += 5; } } diff --git a/Runtime.hpp b/Runtime.hpp index feca2f2..3530426 100644 --- a/Runtime.hpp +++ b/Runtime.hpp @@ -47,10 +47,6 @@ public: std::getline(std::cin, outstr); return outstr.c_str(); } - - static void clearScreen() { - consoleClear(); - } }; #define IPPROTO_TCP 0 diff --git a/main.cpp b/main.cpp index 48577c4..d8df7f4 100644 --- a/main.cpp +++ b/main.cpp @@ -33,18 +33,37 @@ basiccoro::AwaitableTask async_main(Runtime& rt, AsyncManager &aMan, NDSUI // Display prompt auto& msg = ui.addLogMessage(ui.createLogMessage("Bot", "Initializing...")); + // Hide keyboard + keyboardHide(); + + // Clear console + consoleClear(); + // Run inference std::string result; co_await client.ask(prompt, [&msg, &ui] (unsigned progress) -> basiccoro::AwaitableTask { msg = ui.createLogMessage("Bot", (std::to_string(progress)+"%")); + // Check if ready to generate + if (progress == 100) { + // Show help + std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" + "Stop now: [START] Abort \n" + "Stop soon: [SELECT] Cancel" << std::flush; + } co_return; }, [&result, &msg, &ui] (std::string_view token) -> basiccoro::AwaitableTask { + // Update message with current generation result result.append(token); msg = ui.createLogMessage("Bot", result+"..."); co_return; }); msg = ui.createLogMessage("Bot", result); - std::cout << "\n"; + + // Clear console + consoleClear(); + + // Show keyboard + keyboardShow(); } }