#include "timer.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* todo figure out namespaces, using, and auto formalize timer struct read about std function and std bind try to do with objects / classes instead centralize into event sender and subscriber */ void myupdatedisplay(const timer &timer_input) { int x_offset = COLS / 4; mvprintw(timer_input.triggercounter, timer_input.triggercounter + x_offset, "test: โ–ˆ"); } std::vector mynumbers = {1, 2, 3, 4, 5, 6, 7, 8, 9}; void swapnumbers(std::vector &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 &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); } void myinitialize(){ setlocale(LC_ALL, ""); initscr(); nodelay(stdscr, FALSE); refresh(); start_color(); 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 myaction = std::make_unique(mynumbers); auto clocktimer = std::make_unique( "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) { auto currenttime = std::chrono::steady_clock::now(); std::chrono::duration myDeltaTime = currenttime - starttime; double dtime = myDeltaTime.count(); mytimermanager.updatetimers(dtime); displaynumbers(3,mynumbers); starttime = currenttime; std::this_thread::sleep_for(std::chrono::milliseconds(500)); } getch(); endwin(); return 0; }