went from callback lambda to class with update function (command pattern?) so it can keep state. (to bypass for loop by counting iterations)
implemented reversing array and "animating" it
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
#include "timer.hpp"
|
||||
#include <algorithm>
|
||||
#include <chrono>
|
||||
#include <clocale>
|
||||
@@ -10,7 +11,7 @@
|
||||
#include <string>
|
||||
#include <thread>
|
||||
#include <unistd.h>
|
||||
#include "timer.hpp"
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
/*
|
||||
@@ -24,15 +25,32 @@
|
||||
|
||||
void myupdatedisplay(const timer &timer_input) {
|
||||
int x_offset = COLS / 4;
|
||||
mvprintw(timer_input.triggercounter, timer_input.triggercounter+x_offset, "test: █");
|
||||
mvprintw(timer_input.triggercounter, timer_input.triggercounter + x_offset,
|
||||
"test: █");
|
||||
}
|
||||
|
||||
std::vector<int> mynumbers = {1, 2, 3, 4, 5, 6, 7, 8, 9};
|
||||
|
||||
void swapnumbers(std::vector<int> &input_numbers) {
|
||||
for (size_t i = 0; i < input_numbers.size() / 2; ++i) {
|
||||
int temp = input_numbers[i];
|
||||
input_numbers[i] = input_numbers[input_numbers.size() -1 - i];
|
||||
input_numbers[input_numbers.size() -1 - i] = temp;
|
||||
}
|
||||
}
|
||||
|
||||
void displaynumbers(int myy, std::vector<int> &input_numbers){
|
||||
for (size_t i = 0; i < input_numbers.size(); i++) {
|
||||
mvprintw(myy, 10+i, "%d,", input_numbers[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void createbalk(const timer &timer_input, cchar_t &input_char) {
|
||||
int ticnt = timer_input.triggercounter;
|
||||
mvwvline_set(stdscr, LINES-ticnt, ticnt, &input_char, ticnt);
|
||||
mvwvline_set(stdscr, LINES - ticnt, ticnt, &input_char, ticnt);
|
||||
}
|
||||
|
||||
int main() {
|
||||
void myinitialize(){
|
||||
setlocale(LC_ALL, "");
|
||||
initscr();
|
||||
nodelay(stdscr, FALSE);
|
||||
@@ -41,16 +59,24 @@ int main() {
|
||||
init_pair(1, COLOR_BLUE, COLOR_WHITE);
|
||||
attron(COLOR_PAIR(1));
|
||||
printw("Hello World! 🌍 テスト 测试");
|
||||
}
|
||||
|
||||
int main() {
|
||||
myinitialize();
|
||||
const wchar_t mywch = L'█';
|
||||
cchar_t myc_char;
|
||||
setcchar(&myc_char, &mywch, A_NORMAL, 0, NULL);
|
||||
// printf("verification\n");
|
||||
|
||||
auto starttime = std::chrono::steady_clock::now(); // initial starttime
|
||||
auto clocktimer = std::make_unique<timer>("secondsprinter", 1, 10, [&myc_char](const timer& t){createbalk(t,myc_char);});
|
||||
timermanager mytimermanager;
|
||||
|
||||
auto myaction = std::make_unique<swapaction>(mynumbers);
|
||||
auto clocktimer = std::make_unique<timer>(
|
||||
"secondsprinter", 1, 10,
|
||||
std::move(myaction));
|
||||
timermanager mytimermanager;
|
||||
mytimermanager.addtimer(std::move(clocktimer));
|
||||
|
||||
//swapnumbers(mynumbers);
|
||||
displaynumbers(2,mynumbers);
|
||||
mvprintw(5, 5, "timer added");
|
||||
// calculate delta between current and previous time
|
||||
while (true) {
|
||||
@@ -58,7 +84,7 @@ int main() {
|
||||
std::chrono::duration<double> myDeltaTime = currenttime - starttime;
|
||||
double dtime = myDeltaTime.count();
|
||||
mytimermanager.updatetimers(dtime);
|
||||
|
||||
displaynumbers(3,mynumbers);
|
||||
starttime = currenttime;
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(500));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user