From 5fa6d11cc8b1a22456ec90416089e2f40a9f1763 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 18 Sep 2008 23:35:12 +0200 Subject: [PATCH] removed the clock screen Why should an audio player display a large clock? --- configure.ac | 12 --- src/Makefile.am | 1 - src/command.c | 4 - src/command.h | 1 - src/ncmpc.h | 3 - src/options.c | 3 - src/screen.c | 10 -- src/screen_clock.c | 225 --------------------------------------------- src/screen_help.c | 3 - 9 files changed, 262 deletions(-) delete mode 100644 src/screen_clock.c diff --git a/configure.ac b/configure.ac index 57e7bb5..bf9b4e5 100644 --- a/configure.ac +++ b/configure.ac @@ -257,18 +257,6 @@ if test "x$keydef_screen" != "xyes" ; then AC_DEFINE(DISABLE_KEYDEF_SCREEN, 1, [Disable key editor screen]) fi -dnl Optional screen - clock -AC_MSG_CHECKING([whether to include the clock screen]) -AC_ARG_ENABLE([clock-screen], - AC_HELP_STRING([--enable-clock-screen], - [Enable clock screen @<:@default=yes@:>@]), - [clock_screen="$enableval"], - [clock_screen=yes]) -AC_MSG_RESULT([$clock_screen]) -if test "x$clock_screen" != "xyes" ; then - AC_DEFINE(DISABLE_CLOCK_SCREEN, 1, [Disable clock screen]) -fi - dnl Optional screen - lyrics AC_MSG_CHECKING([whether to include the lyrics screen]) AC_ARG_ENABLE([lyrics-screen], diff --git a/src/Makefile.am b/src/Makefile.am index 55f42eb..fc0160e 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -59,7 +59,6 @@ ncmpc_SOURCES = \ screen_help.c\ screen_lyrics.c\ screen_keydef.c\ - screen_clock.c\ list_window.c\ colors.c\ support.c\ diff --git a/src/command.c b/src/command.c index 93afe42..afb7e42 100644 --- a/src/command.c +++ b/src/command.c @@ -188,10 +188,6 @@ static command_definition_t cmds[] = N_("Change search mode") }, #endif -#ifdef ENABLE_CLOCK_SCREEN - { {'6', F6, 0 }, 0, CMD_SCREEN_CLOCK, "screen-clock", - N_("Clock screen") }, -#endif #ifdef ENABLE_LYRICS_SCREEN { {'7', F7, 0 }, 0, CMD_SCREEN_LYRICS, "screen-lyrics", N_("Lyrics screen") }, diff --git a/src/command.h b/src/command.h index 4b20a59..dab6c99 100644 --- a/src/command.h +++ b/src/command.h @@ -55,7 +55,6 @@ typedef enum CMD_SCREEN_ARTIST, CMD_SCREEN_SEARCH, CMD_SCREEN_KEYDEF, - CMD_SCREEN_CLOCK, CMD_SCREEN_HELP, CMD_SCREEN_LYRICS, CMD_LYRICS_UPDATE, diff --git a/src/ncmpc.h b/src/ncmpc.h index 0d87eba..c87c84d 100644 --- a/src/ncmpc.h +++ b/src/ncmpc.h @@ -14,9 +14,6 @@ #ifndef DISABLE_KEYDEF_SCREEN #define ENABLE_KEYDEF_SCREEN 1 #endif -#ifndef DISABLE_CLOCK_SCREEN -#define ENABLE_CLOCK_SCREEN 1 -#endif #ifndef DISABLE_LYRICS_SCREEN #define ENABLE_LYRICS_SCREEN 1 #endif diff --git a/src/options.c b/src/options.c index 7426a55..3477246 100644 --- a/src/options.c +++ b/src/options.c @@ -166,9 +166,6 @@ handle_option(int c, const char *arg) #endif #ifdef ENABLE_KEYDEF_SCREEN printf(" key-screen"); -#endif -#ifdef ENABLE_CLOCK_SCREEN - printf(" clock-screen"); #endif printf("\n"); exit(EXIT_SUCCESS); diff --git a/src/screen.c b/src/screen.c index 62781fb..e510b16 100644 --- a/src/screen.c +++ b/src/screen.c @@ -43,7 +43,6 @@ #define SCREEN_ARTIST_ID 2 #define SCREEN_HELP_ID 100 #define SCREEN_KEYDEF_ID 101 -#define SCREEN_CLOCK_ID 102 #define SCREEN_SEARCH_ID 103 #define SCREEN_LYRICS_ID 104 @@ -62,9 +61,6 @@ extern const struct screen_functions screen_search; #ifdef ENABLE_KEYDEF_SCREEN extern const struct screen_functions screen_keydef; #endif -#ifdef ENABLE_CLOCK_SCREEN -extern const struct screen_functions screen_clock; -#endif extern const struct screen_functions screen_lyrics; typedef struct screen_functions * (*screen_get_mode_functions_fn_t) (void); @@ -87,9 +83,6 @@ static const struct #ifdef ENABLE_KEYDEF_SCREEN { SCREEN_KEYDEF_ID, "keydef", &screen_keydef }, #endif -#ifdef ENABLE_CLOCK_SCREEN - { SCREEN_CLOCK_ID, "clock", &screen_clock }, -#endif #ifdef ENABLE_LYRICS_SCREEN { SCREEN_LYRICS_ID, "lyrics", &screen_lyrics }, #endif @@ -950,9 +943,6 @@ screen_cmd(mpdclient_t *c, command_t cmd) case CMD_SCREEN_KEYDEF: switch_screen_mode(SCREEN_KEYDEF_ID, c); break; - case CMD_SCREEN_CLOCK: - switch_screen_mode(SCREEN_CLOCK_ID, c); - break; case CMD_SCREEN_LYRICS: switch_screen_mode(SCREEN_LYRICS_ID, c); break; diff --git a/src/screen_clock.c b/src/screen_clock.c deleted file mode 100644 index cba8acd..0000000 --- a/src/screen_clock.c +++ /dev/null @@ -1,225 +0,0 @@ -/* - * $Id$ - * - * This file is based on the 'Grand digital clock' (gdc.c) shipped with - * ncurses. - */ - -#include "config.h" - -#ifndef DISABLE_CLOCK_SCREEN -#include "ncmpc.h" -#include "mpdclient.h" -#include "options.h" -#include "command.h" -#include "screen.h" -#include "screen_utils.h" -#include "gcc.h" - -#include -#include -#include -#include -#include - - -#define YDEPTH 5 -#define BUFSIZE 64 - -#define ENABLE_SECONDS 0 - -static struct window win; -static gboolean enable_seconds = ENABLE_SECONDS; - -/* orginal variables from gdc.c */ -static short disp[11] = - { - 075557, 011111, 071747, 071717, 055711, - 074717, 074757, 071111, 075757, 075717, 002020 - }; - -static long older[6], next[6], newer[6], mask; - -static int YBASE = 10; -static int XBASE = 10; -static int XLENGTH = 54; - -/* orginal functions */ -static void -set(int t, int n) -{ - int i, m; - - m = 7 << n; - for (i = 0; i < 5; i++) { - next[i] |= ((disp[t] >> ((4 - i) * 3)) & 07) << n; - mask |= (next[i] ^ older[i]) & m; - } - if (mask & m) - mask |= m; -} - -static void -drawbox(void) -{ - chtype bottom[XLENGTH + 1]; - int n; - - mvwaddch(win.w, YBASE - 1, XBASE - 1, ACS_ULCORNER); - whline(win.w, ACS_HLINE, XLENGTH); - mvwaddch(win.w, YBASE - 1, XBASE + XLENGTH, ACS_URCORNER); - - mvwaddch(win.w, YBASE + YDEPTH, XBASE - 1, ACS_LLCORNER); - mvwinchnstr(win.w, YBASE + YDEPTH, XBASE, bottom, XLENGTH); - for (n = 0; n < XLENGTH; n++) - bottom[n] = ACS_HLINE | (bottom[n] & (A_ATTRIBUTES | A_COLOR)); - mvwaddchnstr(win.w, YBASE + YDEPTH, XBASE, bottom, XLENGTH); - mvwaddch(win.w, YBASE + YDEPTH, XBASE + XLENGTH, ACS_LRCORNER); - - wmove(win.w, YBASE, XBASE - 1); - wvline(win.w, ACS_VLINE, YDEPTH); - - wmove(win.w, YBASE, XBASE + XLENGTH); - wvline(win.w, ACS_VLINE, YDEPTH); -} - - -static void -standt(int on) -{ - if (on) - wattron(win.w, A_REVERSE); - else - wattroff(win.w, A_REVERSE); -} - -/* ncmpc screen functions */ - -static void -clock_resize(int cols, int rows) -{ - int j; - - for (j = 0; j < 5; j++) - older[j] = newer[j] = next[j] = 0; - - win.cols = cols; - win.rows = rows; - - if (cols < 60) - enable_seconds = FALSE; - else - enable_seconds = ENABLE_SECONDS; - - if (enable_seconds) - XLENGTH = 54; - else - XLENGTH = 54-18; - - - XBASE = (cols-XLENGTH)/2; - YBASE = (rows-YDEPTH)/2-(YDEPTH/2)+2; -} - -static void -clock_init(WINDOW *w, int cols, int rows) -{ - win.w = w; - clock_resize(cols, rows); -} - -static const char * -clock_title(mpd_unused char *str, mpd_unused size_t size) -{ - return _("Clock"); -} - -static void -clock_update(mpd_unused screen_t *screen, mpd_unused mpdclient_t *c) -{ - time_t now; - struct tm *tm; - long t, a; - int i, j, s, k; - char buf[BUFSIZE]; - - time(&now); - tm = localtime(&now); - - if (win.rows<=YDEPTH+1 || win.cols<=XLENGTH+1) { - strftime(buf, BUFSIZE, "%X ",tm); - mvwaddstr(win.w, win.rows ? win.rows/2:0, (win.cols-strlen(buf))/2, buf); - wrefresh(win.w); - return; - } - - mask = 0; - set(tm->tm_sec % 10, 0); - set(tm->tm_sec / 10, 4); - set(tm->tm_min % 10, 10); - set(tm->tm_min / 10, 14); - set(tm->tm_hour % 10, 20); - set(tm->tm_hour / 10, 24); - set(10, 7); - set(10, 17); - - for (k = 0; k < 6; k++) { - newer[k] = (newer[k] & ~mask) | (next[k] & mask); - next[k] = 0; - for (s = 1; s >= 0; s--) { - standt(s); - for (i = 0; i < 6; i++) { - if ((a = (newer[i] ^ older[i]) & (s ? newer : older)[i]) - != 0) { - for (j = 0, t = 1 << 26; t; t >>= 1, j++) { - if (a & t) { - if (!(a & (t << 1))) { - wmove(win.w, YBASE + i, XBASE + 2 * j); - } - if( enable_seconds || j<18 ) - waddstr(win.w, " "); - } - } - } - if (!s) { - older[i] = newer[i]; - } - } - if (!s) { - wrefresh(win.w); - } - } - } - -#ifdef HAVE_LOCALE_H - strftime(buf, BUFSIZE, "%x", tm); -# else - /* this depends on the detailed format of ctime(3) */ - strcpy(buf, ctime(&now)); - strcpy(buf + 10, buf + 19); -#endif - mvwaddstr(win.w, YBASE+YDEPTH+1, (win.cols-strlen(buf))/2, buf); - - wmove(win.w, 6, 0); - drawbox(); - wrefresh(win.w); -} - -static void -clock_paint(screen_t *screen, mpdclient_t *c) -{ - /* this seems to be a better way to clear the window than wclear() ?! */ - wmove(win.w, 0, 0); - wclrtobot(win.w); - clock_update(screen, c); -} - -const struct screen_functions screen_clock = { - .init = clock_init, - .resize = clock_resize, - .paint = clock_paint, - .update = clock_update, - .get_title = clock_title, -}; - -#endif diff --git a/src/screen_help.c b/src/screen_help.c index 58ca6e1..07e3375 100644 --- a/src/screen_help.c +++ b/src/screen_help.c @@ -57,9 +57,6 @@ static help_text_row_t help_text[] = #ifdef ENABLE_SEARCH_SCREEN { 0, CMD_SCREEN_SEARCH, NULL }, #endif -#ifdef ENABLE_CLOCK_SCREEN - { 0, CMD_SCREEN_CLOCK, NULL }, -#endif #ifdef ENABLE_KEYDEF_SCREEN { 0, CMD_SCREEN_KEYDEF, NULL }, #endif -- 2.30.2