diff options
| author | Aakarsh Kashyap <[email protected]> | 2026-07-02 21:30:21 +0530 |
|---|---|---|
| committer | Aakarsh Kashyap <[email protected]> | 2026-07-02 21:30:21 +0530 |
| commit | e5c68752aab3f63f268d30ce981b29cb4dd42348 (patch) | |
| tree | 56deb6d2fcec92a6eefce97df796c26421c9101a /src | |
| parent | 3d548a8de76c662447d3bff438c96b9f38e51cd2 (diff) | |
[feat]: Added pause support activated using C-p
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.cpp | 26 | ||||
| -rw-r--r-- | src/reader.cpp | 6 |
2 files changed, 24 insertions, 8 deletions
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; + } } } |
