From 863c5174b2f00c372cfb1173e88caab7e36210f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=88=D0=BE=D0=B2=D0=B0=D0=BD=20=D0=82=D0=BE=D0=BA=D0=B8?= =?UTF-8?q?=D1=9B-=D0=A8=D1=83=D0=BC=D0=B0=D1=80=D0=B0=D1=86?= Date: Mon, 27 Sep 2021 20:31:27 +0200 Subject: [PATCH] Initial commit --- config.h | 10 ++++ p | Bin 0 -> 16848 bytes pomodoro.c | 134 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 144 insertions(+) create mode 100644 config.h create mode 100755 p create mode 100644 pomodoro.c diff --git a/config.h b/config.h new file mode 100644 index 0000000..d0f54aa --- /dev/null +++ b/config.h @@ -0,0 +1,10 @@ + + +#define STUDY_SESSION_25 1 + +#define STUDY_SESSION_50 0 + +#define BREAK_TIME_5 1 + +#define BREAK_TIME_10 0 + diff --git a/p b/p new file mode 100755 index 0000000000000000000000000000000000000000..6195afa8922f9f9a1fe5f1a65ed398e981542f30 GIT binary patch literal 16848 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 c|5#9N^$59LC8cNa#qICfsx)r$7 +#include +#include +#include +#include "config.h" + +#if STUDY_SESSION_25 +#define TIMER_S 25 +#endif + + +#if STUDY_SESSION_50 +#define TIMER_S 50 +#endif + + +#if BREAK_TIME_5 +#define TIMER_B 5 +#endif + + +#if BREAK_TIME_10 +#define TIMER_B 10 +#endif + +#define STUDY 0 +#define BREAK 1 + + + +int n_repeat = 0, time_elapsed = 0, timer_s = TIMER_S, timer_b = TIMER_B, check = 0; +long time_started = 0; + + +void get_stuff(void); +void start_timer(int); +void countdown(long, short, char*); + + + +int main(int argc, char *argv[]){ + + if( argv[1] != NULL ){ + + for(int i = 1; i < argc ; i++){ + + if( *(argv[i]+1) == 's') + timer_s = atoi(argv[i+1]); + + if( *(argv[i]+1) == 'b' ) + timer_b = atoi(argv[i+1]); + + } + } + + get_stuff(); + + + system("clear"); + + for(int i = 1; i <= n_repeat; i++){ + + printf("Session %d\n\n", i); + + start_timer(STUDY); + start_timer(BREAK); + + printf("%c[3F%c[2K%c[G", 27, 27, 27); + } + + + return 0; +} + + + + + +void get_stuff(void){ + + printf("Enter number of pomodoro sessions (%d minute periods with %d minute breaks) : ", timer_s, timer_b); + + if ( !(scanf("%d", &n_repeat)) ){ + printf("\n\nThat's not a number you globussaire\n\n"); + fprintf(stderr, 0); + } + +} + + +void start_timer(int x){ + + time_started = time(0); + + if(x == STUDY) + countdown(time_started, timer_s, "STUDY SESSION"); + + if(x == BREAK) + countdown(time_started, timer_b, "BREAK"); + + +} + + +void countdown(long time_started, short timer, char *type){ + + struct timespec tim; + tim.tv_sec = 0; + tim.tv_nsec = 333000000; + + int count_timer = 1; + short mins = 0, secs = 0; + + + while(count_timer > 0){ + + nanosleep(&tim, NULL); + short old_secs = secs; + + time_elapsed = time(0) - time_started; + + count_timer = (timer * 60) - time_elapsed; + + mins = count_timer / 60; + secs = count_timer - mins * 60; + + + if(old_secs != secs){ + printf("%s => %d:%02d\n", type, mins, secs); + printf("%c[1F%c[2K%c[G", 27, 27, 27); + } + + } +}