From b892adbb071e323c54088666a3565e9d651abe78 Mon Sep 17 00:00:00 2001 From: Alexander Barton Date: Sat, 1 Nov 2014 18:17:33 +0100 Subject: [PATCH] Add aclock-unix-curses.c --- .gitignore | 1 + Makefile | 3 ++ aclock-unix-curses.c | 106 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 110 insertions(+) create mode 100644 aclock-unix-curses.c diff --git a/.gitignore b/.gitignore index b92832d..cc853fc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ aclock aclock-termcap +aclock-curses diff --git a/Makefile b/Makefile index 39c9d4a..c85eb93 100644 --- a/Makefile +++ b/Makefile @@ -9,6 +9,9 @@ all: aclock aclock: aclock-termcap ln -s aclock-termcap aclock +aclock-curses: + cc aclock-unix-curses.c -o aclock-curses -lcurses -lm + aclock-termcap: cc aclock-unix-termcap.c -o aclock-termcap -ltermcap -lm diff --git a/aclock-unix-curses.c b/aclock-unix-curses.c new file mode 100644 index 0000000..2d25bdd --- /dev/null +++ b/aclock-unix-curses.c @@ -0,0 +1,106 @@ +/* + * aclock - ascii clock for UNIX Console + * + * Copyright (c) 2002 Antoni Sawicki + * Version 2.3 (unix-curses); Mountain View, July 2013 + * + * Compilation: cc aclock-unix-curses.c -o aclock -lcurses -lm + * + */ + +#include +#include +#include +#include + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +#define FontWH_Ratio 2 + +void draw_circle(int hand_max, int sYcen, int sXcen){ + int x,y,r; + char c; + + for(r=0;r<60;r++){ + x=cos(r*M_PI/180*6)*hand_max*FontWH_Ratio+sXcen; + y=sin(r*M_PI/180*6)*hand_max+sYcen; + switch (r) { + case 0: + case 5: + case 10: + case 15: + case 20: + case 25: + case 30: + case 35: + case 40: + case 45: + case 50: + case 55: + c='o'; + break; + default: + c='.'; + break; + } + mvaddch(y,x,c); + } +} + +void draw_hand(int minute, int hlenght, char c, int sXcen, int sYcen){ + int x,y,n; + float r=(minute-15)*(M_PI/180)*6; + + for(n=1; ntm_hour*5)+(ltime->tm_min/10), 2*hand_max/3, 'h', sXcen, sYcen); + draw_hand(ltime->tm_min, hand_max-2, 'm', sXcen, sYcen); + draw_hand(ltime->tm_sec, hand_max-1, '.', sXcen, sYcen); + + mvaddstr(sYcen-(3*hand_max/5), sXcen-5, ".:ACLOCK:."); + mvprintw(sYcen+(3*hand_max/5), sXcen-5, "[%02d:%02d:%02d]", ltime->tm_hour, ltime->tm_min, ltime->tm_sec); + + refresh(); + sleep(1); + } + endwin(); + return 0; +} -- 2.39.2