From e5c68752aab3f63f268d30ce981b29cb4dd42348 Mon Sep 17 00:00:00 2001 From: Aakarsh Kashyap Date: Thu, 2 Jul 2026 21:30:21 +0530 Subject: [feat]: Added pause support activated using C-p --- src/main.cpp | 26 ++++++++++++++++++-------- src/reader.cpp | 6 ++++++ 2 files changed, 24 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/main.cpp b/src/main.cpp index 4695d62..9b924ec 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -29,9 +29,12 @@ main(int argc, char *argv[]) if (!cfg) die("[err]: malloc failed\n"); + /* Setting up a default readable speed */ cfg->speed = 250000; int& speed = cfg->speed; + /* Initially application not paused */ + cfg->pause = 1; enable_raw(cfg); init_editor(cfg); @@ -69,26 +72,33 @@ main(int argc, char *argv[]) continue; window_size_callback(cfg); editor_refresh_scrn(cfg); - consumer(queue, cfg); + consumer(queue, cfg); + if (0 == cfg->pause) { + for (;;) { + consumer(queue, cfg); + if (1 == cfg->pause) { + break; + + } + } + } { - int mid = (int)k->size() / 2; - int remaining = (int)k->size() - mid - 1; - const char *cstr = k->c_str(); + int mid = (int)k->size() / 2; + int remaining = (int)k->size() - mid - 1; + const char *cstr = k->c_str(); const char message[] = "Current delay: "; char buf[32]; - int len{}; - + int len = snprintf(buf, sizeof(buf), "%d", cfg->speed); write(STDOUT_FILENO, cstr, mid); write(STDOUT_FILENO, "\x1b[31m", 5); write(STDOUT_FILENO, cstr + mid, 1); write(STDOUT_FILENO, "\x1b[m", 3); write(STDOUT_FILENO, cstr + mid + 1, remaining); - write(STDOUT_FILENO, "\x1b[H", 3); write(STDOUT_FILENO, message, sizeof(message)-1); - len = snprintf(buf, sizeof(buf), "%d", cfg->speed); write(STDOUT_FILENO, buf, len); + write(STDOUT_FILENO, "\n\r", 2); } usleep(speed); } diff --git a/src/reader.cpp b/src/reader.cpp index eec7478..1ca1f04 100644 --- a/src/reader.cpp +++ b/src/reader.cpp @@ -245,6 +245,12 @@ editor_process_key_process(char c, EditorCfg *cfg) case CTRL_KEY('k'): cfg->speed -= 10000; break; + case CTRL_KEY('p'): + if (0 == cfg->pause) { + cfg->pause = 1; + } else { + cfg->pause = 0; + } } } -- cgit v1.2.3