From aca219c3c0abd2617671350d5671aca4053db42d Mon Sep 17 00:00:00 2001 From: Andreas Obergrusberger Date: Fri, 8 Sep 2006 14:06:59 +0000 Subject: oppps forgot 2 files... git-svn-id: https://svn.musicpd.org/ncmpc/branches/tradiaz@4742 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- src/splash.c | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 src/splash.c (limited to 'src/splash.c') diff --git a/src/splash.c b/src/splash.c new file mode 100644 index 000000000..fbd545777 --- /dev/null +++ b/src/splash.c @@ -0,0 +1,125 @@ + + +#include +#include +#include +#include +#include + +#include "ncmpc.h" +#include "colors.h" + + +gpointer get_input(void *null) +{ + int key; + while(key = getch()) + { + if(key == 'q') + { + exit(0); + } + } + return; +} + +void draw_message(char *msg) +{ + int rows, cols; + getmaxyx(stdscr, rows, cols); + mvaddstr(rows-1, (cols/2)-(strlen(msg)/2), msg); + refresh(); +} + + +/*void draw_title() +{ + colors_use(stdscr, COLOR_TITLE_BOLD); + mvaddstr(rows/2+1, COLS/2, VERSION); + colors_use(stdscr, COLOR_TITLE_BOLD); + mvaddstr(rows/2-1, x, PACKAGE); + refresh(); +} +*/ +gboolean advance_version() +{ + int rows, cols; + getmaxyx(stdscr, rows, cols); + static int x = 0; + if(x == 0) + { + x = cols - strlen(VERSION); + } + colors_use(stdscr, COLOR_TITLE_BOLD); + mvaddstr(rows/2+1, x--, VERSION); + mvhline(rows/2+1, x+strlen(VERSION)+1, ' ', cols); + refresh(); + if(x == cols/2) return FALSE; + return TRUE; +} + + +gboolean advance_name() +{ + int rows, cols; + getmaxyx(stdscr, rows, cols); + static int x = 0; + colors_use(stdscr, COLOR_TITLE_BOLD); + mvaddstr(rows/2-1, x, PACKAGE); + mvhline(rows/2-1, 0, ' ', x); + refresh(); + if(x + strlen(PACKAGE) == cols/2) return FALSE; + x++; + return TRUE; +} + +gboolean draw_animation(gpointer *data) +{ //need this to execute both functions, even if one of them return TRUE + if(advance_name() == FALSE && advance_version() == FALSE || advance_name() == TRUE && advance_version() == FALSE) + { + // system("sleep 8"); + g_main_loop_quit((GMainLoop*) data); + // g_source_attach(((int*)data)[1], data); + return FALSE; + } + + return TRUE; +} + +void drawx() +{ + // g_thread_create(get_input, NULL, FALSE, NULL); + int rows, cols; + getmaxyx(stdscr, rows, cols); + + fprintf(stderr, "%d", rows/2); + + mvhline(rows/2, 0, ACS_HLINE , cols); + draw_message("Connecting..."); + //advance_version(); + refresh(); + + GMainContext *cont = g_main_context_new(); + GMainLoop *loop = g_main_loop_new(cont, FALSE); + + GSource *frame = g_timeout_source_new(3); + GSource *state = g_timeout_source_new(100); + GSource *stopper = g_timeout_source_new(200); + + void *blubb = malloc(sizeof(GMainLoop*)+sizeof(GSource*)); + blubb = loop; + ((int*)blubb)[1] = stopper; + + g_source_set_callback(frame, draw_animation ,blubb, NULL); + g_source_attach(frame, g_main_loop_get_context(loop)); + + g_main_loop_run(loop); +} + + +void draw_splash() +{ + drawx(); +} + +//int draw_frame -- cgit v1.2.3