From e0aed95b7b61fee379c286678ffb956099cef451 Mon Sep 17 00:00:00 2001 From: structix Date: Mon, 27 Nov 2017 09:54:08 +0000 Subject: [PATCH] Initial commit --- .gitignore | 2 ++ makefile | 20 +++++++++++++ nclock | Bin 0 -> 12896 bytes nclock.c | 44 ++++++++++++++++++++++++++++ nclock.h | 15 ++++++++++ numbers.h | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 164 insertions(+) create mode 100644 .gitignore create mode 100644 makefile create mode 100755 nclock create mode 100644 nclock.c create mode 100644 nclock.h create mode 100644 numbers.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d6ff91a --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*~ +*.o diff --git a/makefile b/makefile new file mode 100644 index 0000000..0b7fcf4 --- /dev/null +++ b/makefile @@ -0,0 +1,20 @@ +#Infos: http://www.ijon.de/comp/tutorials/makefile.html + + +VERSION = 1.0 +CC = cc +CFLAGS = -Wall -O3 -D_REENTRANT -DVERSION=\"$(VERSION)\" +#LDFLAGS = -lm -lpthread `gtk-config --cflags` `gtk-config --libs` -lgthread +LDFLAGS = -lncurses + +OBJ = nclock.o + +all: $(OBJ) + $(CC) $(CFLAGS) -o nclock $(OBJ) $(LDFLAGS) + +%.o: %.c + $(CC) $(CFLAGS) -c $< + +.PHONY: clean +clean: + rm -r *.o diff --git a/nclock b/nclock new file mode 100755 index 0000000000000000000000000000000000000000..53ac569c1c1f8060af6f646cb25a36dd3d3c82f9 GIT binary patch literal 12896 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 ZRCP3PzYNj)V?O<{MM|Q?rQl-4zX5nws|o-B literal 0 HcmV?d00001 diff --git a/nclock.c b/nclock.c new file mode 100644 index 0000000..f915e64 --- /dev/null +++ b/nclock.c @@ -0,0 +1,44 @@ +#include //ncurses windows +#include //atexit +#include +#include +#include "nclock.h" +#include "numbers.h" +#include + +int main(int argc, char **argv) { + /* enable ncurses standard screen */ + initscr(); + atexit(quitProgram); //cleanup at exit + + state s = {0}; + + initState(&s); + //mvprintw(s.centery, s.centerx, number[5][0]); + //mvprintw(20, 30, number[0][3]); + drawNumber(10,10,4); + getch(); + drawNumber(10,16,2); + getch(); +} + +void quitProgram(void) { + endwin(); +} + +void initState(state *s) { + getmaxyx(stdscr, s->maxy, s->maxx); + s->centery = --s->maxy / 2; + s->centerx = --s->maxx / 2; +} + +void drawNumber(int starty, int startx, int num) { + int i; + for (i = 0; i < 5; i++) { + mvprintw(starty + i, startx, number[num][i]); + } +} + + + + diff --git a/nclock.h b/nclock.h new file mode 100644 index 0000000..d145150 --- /dev/null +++ b/nclock.h @@ -0,0 +1,15 @@ +typedef struct { + int centerx; + int centery; + int maxy; + int maxx; +} state; + + + + +/* Function prototypes */ +void quitProgram(void); +void initState(state *s); +void drawNumber(int starty, int startx, int num); +void drawTime(state *s); diff --git a/numbers.h b/numbers.h new file mode 100644 index 0000000..1bd7447 --- /dev/null +++ b/numbers.h @@ -0,0 +1,83 @@ +const char number[10][5][6] = \ + {\ + { \ + "#####", \ + "# #", \ + "# #", \ + "# #", \ + "#####", \ + }, \ + { \ + " #", \ + " #", \ + " #", \ + " #", \ + " #", + }, \ + { \ + "#####",\ + " #",\ + "#####",\ + "# ",\ + "#####"\ + }, \ + {\ + "#####",\ + " #",\ + " ####",\ + " #",\ + "#####"\ + }, \ + {\ + "# #",\ + "# #", \ + "#####",\ + " #",\ + " #"\ + },\ + {\ + "#####",\ + "# ",\ + "#####",\ + " #",\ + "#####"\ + },\ + {\ + "#####",\ + "# ",\ + "#####",\ + "# #",\ + "#####"\ + },\ + {\ + "#####",\ + " #",\ + " #",\ + " #",\ + " #"\ + }, \ + {\ + "#####",\ + "# #",\ + "#####",\ + "# #",\ + "#####"\ + },\ + {\ + "#####",\ + "# #",\ + "#####",\ + " #",\ + "#####"\ + }\ + }; + + +const char *colon[5] = \ + {\ + " ",\ + " # ",\ + " ",\ + " # ",\ + " "\ + };