filter.c: Handle filter errors gracefully.
[paraslash.git] / gui_theme.c
index f965a9d44e9f9db485c73c5a5dbde66fb2a424b3..78f7aa071c32aeb8cdad489850bfb4e10f651700 100644 (file)
@@ -1,22 +1,11 @@
 /*
- * Copyright (C) 2005 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2008 Andre Noll <maan@systemlinux.org>
  *
- *     This program is free software; you can redistribute it and/or modify
- *     it under the terms of the GNU General Public License as published by
- *     the Free Software Foundation; either version 2 of the License, or
- *     (at your option) any later version.
- *
- *     This program is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public License
- *     along with this program; if not, write to the Free Software
- *     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
+ * Licensed under the GPL v2. For licencing details see COPYING.
  */
 
 #include "para.h"
+#include "gui.h"
 #include <curses.h>
 
 #define NUM_THEMES 2
@@ -51,14 +40,14 @@ static void init_theme_simple(struct gui_theme *t)
        t->default_bg = COLOR_BLUE;
        t->sep_str = "*";
 
-       d[SI_STATUS_BAR].prefix = "";
-       d[SI_STATUS_BAR].postfix = "";
-       d[SI_STATUS_BAR].fg = COLOR_WHITE;
-       d[SI_STATUS_BAR].bg = COLOR_BLUE;
-       d[SI_STATUS_BAR].align = CENTER;
-       d[SI_STATUS_BAR].x = 0;
-       d[SI_STATUS_BAR].y = 7;
-       d[SI_STATUS_BAR].len = 100;
+       d[SI_BASENAME].prefix = "";
+       d[SI_BASENAME].postfix = "";
+       d[SI_BASENAME].fg = COLOR_WHITE;
+       d[SI_BASENAME].bg = COLOR_BLUE;
+       d[SI_BASENAME].align = CENTER;
+       d[SI_BASENAME].x = 0;
+       d[SI_BASENAME].y = 7;
+       d[SI_BASENAME].len = 100;
 
        d[SI_STATUS].prefix = "para_server: ";
        d[SI_STATUS].postfix = "";
@@ -121,14 +110,14 @@ static void init_theme_colorful_blackness(struct gui_theme *t)
        d[SI_PLAY_TIME].y = 7;
        d[SI_PLAY_TIME].len = 35;
 
-       d[SI_STATUS_BAR].prefix = "";
-       d[SI_STATUS_BAR].postfix = "";
-       d[SI_STATUS_BAR].fg = COLOR_CYAN;
-       d[SI_STATUS_BAR].bg = COLOR_BLACK;
-       d[SI_STATUS_BAR].align = LEFT;
-       d[SI_STATUS_BAR].x = 35;
-       d[SI_STATUS_BAR].y = 7;
-       d[SI_STATUS_BAR].len = 65;
+       d[SI_BASENAME].prefix = "";
+       d[SI_BASENAME].postfix = "";
+       d[SI_BASENAME].fg = COLOR_CYAN;
+       d[SI_BASENAME].bg = COLOR_BLACK;
+       d[SI_BASENAME].align = LEFT;
+       d[SI_BASENAME].x = 35;
+       d[SI_BASENAME].y = 7;
+       d[SI_BASENAME].len = 65;
 
        d[SI_STATUS].prefix = "";
        d[SI_STATUS].postfix = " ";
@@ -148,14 +137,23 @@ static void init_theme_colorful_blackness(struct gui_theme *t)
        d[SI_STATUS_FLAGS].y = 17;
        d[SI_STATUS_FLAGS].len = 10;
 
-       d[SI_DBTOOL].prefix = "selector: ";
-       d[SI_DBTOOL].postfix = "";
-       d[SI_DBTOOL].fg = COLOR_RED;
-       d[SI_DBTOOL].bg = COLOR_BLACK;
-       d[SI_DBTOOL].align = CENTER;
-       d[SI_DBTOOL].x = 21;
-       d[SI_DBTOOL].y = 17;
-       d[SI_DBTOOL].len = 20;
+       d[SI_IMAGE_ID].prefix = "img: ";
+       d[SI_IMAGE_ID].postfix = "";
+       d[SI_IMAGE_ID].fg = COLOR_RED;
+       d[SI_IMAGE_ID].bg = COLOR_BLACK;
+       d[SI_IMAGE_ID].align = CENTER;
+       d[SI_IMAGE_ID].x = 21;
+       d[SI_IMAGE_ID].y = 17;
+       d[SI_IMAGE_ID].len = 10;
+
+       d[SI_LYRICS_ID].prefix = "lyr: ";
+       d[SI_LYRICS_ID].postfix = "";
+       d[SI_LYRICS_ID].fg = COLOR_RED;
+       d[SI_LYRICS_ID].bg = COLOR_BLACK;
+       d[SI_LYRICS_ID].align = CENTER;
+       d[SI_LYRICS_ID].x = 31;
+       d[SI_LYRICS_ID].y = 17;
+       d[SI_LYRICS_ID].len = 11;
 
        d[SI_FORMAT].prefix = "format: ";
        d[SI_FORMAT].postfix = "";
@@ -164,134 +162,175 @@ static void init_theme_colorful_blackness(struct gui_theme *t)
        d[SI_FORMAT].align = CENTER;
        d[SI_FORMAT].x = 42;
        d[SI_FORMAT].y = 17;
-       d[SI_FORMAT].len = 14;
-
+       d[SI_FORMAT].len = 18;
 
        d[SI_NUM_PLAYED].prefix = "#";
        d[SI_NUM_PLAYED].postfix = "";
        d[SI_NUM_PLAYED].fg = COLOR_RED;
        d[SI_NUM_PLAYED].bg = COLOR_BLACK;
-       d[SI_NUM_PLAYED].align = CENTER;
+       d[SI_NUM_PLAYED].align = LEFT;
        d[SI_NUM_PLAYED].x = 60;
        d[SI_NUM_PLAYED].y = 17;
-       d[SI_NUM_PLAYED].len = 15;
-
-       d[SI_UPTIME].prefix = "SUp: ";
-       d[SI_UPTIME].postfix = "";
-       d[SI_UPTIME].fg = COLOR_RED;
-       d[SI_UPTIME].bg = COLOR_BLACK;
-       d[SI_UPTIME].align = CENTER;
-       d[SI_UPTIME].x = 75;
-       d[SI_UPTIME].y = 17;
-       d[SI_UPTIME].len = 25;
-
-       d[SI_AUDIOD_STATUS].prefix = "audiod: ";
+       d[SI_NUM_PLAYED].len = 5;
+
+       d[SI_BITRATE].prefix = "";
+       d[SI_BITRATE].postfix = "";
+       d[SI_BITRATE].fg = COLOR_RED;
+       d[SI_BITRATE].bg = COLOR_BLACK;
+       d[SI_BITRATE].align = CENTER;
+       d[SI_BITRATE].x = 65;
+       d[SI_BITRATE].y = 17;
+       d[SI_BITRATE].len = 13;
+
+       d[SI_FREQUENCY].prefix = "";
+       d[SI_FREQUENCY].postfix = "";
+       d[SI_FREQUENCY].fg = COLOR_RED;
+       d[SI_FREQUENCY].bg = COLOR_BLACK;
+       d[SI_FREQUENCY].align = CENTER;
+       d[SI_FREQUENCY].x = 78;
+       d[SI_FREQUENCY].y = 17;
+       d[SI_FREQUENCY].len = 10;
+
+       d[SI_SCORE].prefix = "sc: ";
+       d[SI_SCORE].postfix = "";
+       d[SI_SCORE].fg = COLOR_RED;
+       d[SI_SCORE].bg = COLOR_BLACK;
+       d[SI_SCORE].align = CENTER;
+       d[SI_SCORE].x = 88;
+       d[SI_SCORE].y = 17;
+       d[SI_SCORE].len = 10;
+
+       d[SI_AUDIOD_STATUS].prefix = "";
        d[SI_AUDIOD_STATUS].postfix = "";
        d[SI_AUDIOD_STATUS].fg = COLOR_MAGENTA;
        d[SI_AUDIOD_STATUS].bg = COLOR_BLACK;
-       d[SI_AUDIOD_STATUS].align = RIGHT;
+       d[SI_AUDIOD_STATUS].align = CENTER;
        d[SI_AUDIOD_STATUS].x = 0;
        d[SI_AUDIOD_STATUS].y = 27;
-       d[SI_AUDIOD_STATUS].len = 13;
-
+       d[SI_AUDIOD_STATUS].len = 5;
 
        d[SI_DECODER_FLAGS].prefix = "[";
        d[SI_DECODER_FLAGS].postfix = "]";
        d[SI_DECODER_FLAGS].fg = COLOR_MAGENTA;
        d[SI_DECODER_FLAGS].bg = COLOR_BLACK;
-       d[SI_DECODER_FLAGS].align = LEFT;
-       d[SI_DECODER_FLAGS].x = 14;
+       d[SI_DECODER_FLAGS].align = CENTER;
+       d[SI_DECODER_FLAGS].x = 5;
        d[SI_DECODER_FLAGS].y = 27;
-       d[SI_DECODER_FLAGS].len = 8;
+       d[SI_DECODER_FLAGS].len = 10;
 
-       d[SI_MTIME].prefix = "Mtime: ";
+       d[SI_MTIME].prefix = "mod: ";
        d[SI_MTIME].postfix = "";
        d[SI_MTIME].fg = COLOR_MAGENTA;
        d[SI_MTIME].bg = COLOR_BLACK;
        d[SI_MTIME].align = CENTER;
-       d[SI_MTIME].x = 22;
+       d[SI_MTIME].x = 15;
        d[SI_MTIME].y = 27;
-       d[SI_MTIME].len = 30;
+       d[SI_MTIME].len = 22;
 
-       d[SI_FILE_SIZE].prefix = "Size: ";
-       d[SI_FILE_SIZE].postfix = " kb";
+       d[SI_FILE_SIZE].prefix = "";
+       d[SI_FILE_SIZE].postfix = "kb";
        d[SI_FILE_SIZE].fg = COLOR_MAGENTA;
        d[SI_FILE_SIZE].bg = COLOR_BLACK;
        d[SI_FILE_SIZE].align = CENTER;
-       d[SI_FILE_SIZE].x = 52;
+       d[SI_FILE_SIZE].x = 37;
        d[SI_FILE_SIZE].y = 27;
-       d[SI_FILE_SIZE].len = 26;
-
-       d[SI_AUDIOD_UPTIME].prefix = "AUp: ";
-       d[SI_AUDIOD_UPTIME].postfix = "";
-       d[SI_AUDIOD_UPTIME].fg = COLOR_MAGENTA;
-       d[SI_AUDIOD_UPTIME].bg = COLOR_BLACK;
-       d[SI_AUDIOD_UPTIME].align = CENTER;
-       d[SI_AUDIOD_UPTIME].x = 78;
-       d[SI_AUDIOD_UPTIME].y = 27;
-       d[SI_AUDIOD_UPTIME].len = 22;
-
-
-       d[SI_AUDIO_INFO1].prefix = "";
-       d[SI_AUDIO_INFO1].postfix = "";
-       d[SI_AUDIO_INFO1].fg = COLOR_GREEN;
-       d[SI_AUDIO_INFO1].bg = COLOR_BLACK;
-       d[SI_AUDIO_INFO1].align = CENTER;
-       d[SI_AUDIO_INFO1].x = 0;
-       d[SI_AUDIO_INFO1].y = 43;
-       d[SI_AUDIO_INFO1].len = 100;
-
-       d[SI_AUDIO_INFO2].prefix = "";
-       d[SI_AUDIO_INFO2].postfix = "";
-       d[SI_AUDIO_INFO2].fg = COLOR_GREEN;
-       d[SI_AUDIO_INFO2].bg = COLOR_BLACK;
-       d[SI_AUDIO_INFO2].align = CENTER;
-       d[SI_AUDIO_INFO2].x = 0;
-       d[SI_AUDIO_INFO2].y = 53;
-       d[SI_AUDIO_INFO2].len = 100;
-
-       d[SI_AUDIO_INFO3].prefix = "";
-       d[SI_AUDIO_INFO3].postfix = "";
-       d[SI_AUDIO_INFO3].fg = COLOR_GREEN;
-       d[SI_AUDIO_INFO3].bg = COLOR_BLACK;
-       d[SI_AUDIO_INFO3].align = CENTER;
-       d[SI_AUDIO_INFO3].x = 0;
-       d[SI_AUDIO_INFO3].y = 63;
-       d[SI_AUDIO_INFO3].len = 100;
-
-       d[SI_DBINFO1].prefix = "";
-       d[SI_DBINFO1].postfix = "";
-       d[SI_DBINFO1].fg = COLOR_YELLOW;
-       d[SI_DBINFO1].bg = COLOR_BLACK;
-       d[SI_DBINFO1].align = CENTER;
-       d[SI_DBINFO1].x = 0;
-       d[SI_DBINFO1].y = 77;
-       d[SI_DBINFO1].len = 100;
-
-       d[SI_DBINFO2].prefix = "";
-       d[SI_DBINFO2].postfix = "";
-       d[SI_DBINFO2].fg = COLOR_YELLOW;
-       d[SI_DBINFO2].bg = COLOR_BLACK;
-       d[SI_DBINFO2].align = CENTER;
-       d[SI_DBINFO2].x = 0;
-       d[SI_DBINFO2].y = 87;
-       d[SI_DBINFO2].len = 100;
-
-       d[SI_DBINFO3].prefix = "";
-       d[SI_DBINFO3].postfix = "";
-       d[SI_DBINFO3].fg = COLOR_YELLOW;
-       d[SI_DBINFO3].bg = COLOR_BLACK;
-       d[SI_DBINFO3].align = CENTER;
-       d[SI_DBINFO3].x = 0;
-       d[SI_DBINFO3].y = 97;
-       d[SI_DBINFO3].len = 100;
+       d[SI_FILE_SIZE].len = 10;
+
+       d[SI_CHANNELS].prefix = "";
+       d[SI_CHANNELS].postfix = "ch";
+       d[SI_CHANNELS].fg = COLOR_MAGENTA;
+       d[SI_CHANNELS].bg = COLOR_BLACK;
+       d[SI_CHANNELS].align = CENTER;
+       d[SI_CHANNELS].x = 47;
+       d[SI_CHANNELS].y = 27;
+       d[SI_CHANNELS].len = 5;
+
+       d[SI_LAST_PLAYED].prefix = "lp: ";
+       d[SI_LAST_PLAYED].postfix = "";
+       d[SI_LAST_PLAYED].fg = COLOR_MAGENTA;
+       d[SI_LAST_PLAYED].bg = COLOR_BLACK;
+       d[SI_LAST_PLAYED].align = CENTER;
+       d[SI_LAST_PLAYED].x = 52;
+       d[SI_LAST_PLAYED].y = 27;
+       d[SI_LAST_PLAYED].len = 21;
+
+       d[SI_NUM_CHUNKS].prefix = "";
+       d[SI_NUM_CHUNKS].postfix = "x";
+       d[SI_NUM_CHUNKS].fg = COLOR_MAGENTA;
+       d[SI_NUM_CHUNKS].bg = COLOR_BLACK;
+       d[SI_NUM_CHUNKS].align = RIGHT;
+       d[SI_NUM_CHUNKS].x = 73;
+       d[SI_NUM_CHUNKS].y = 27;
+       d[SI_NUM_CHUNKS].len = 12;
+
+       d[SI_CHUNK_TIME].prefix = " ";
+       d[SI_CHUNK_TIME].postfix = "ms";
+       d[SI_CHUNK_TIME].fg = COLOR_MAGENTA;
+       d[SI_CHUNK_TIME].bg = COLOR_BLACK;
+       d[SI_CHUNK_TIME].align = LEFT;
+       d[SI_CHUNK_TIME].x = 85;
+       d[SI_CHUNK_TIME].y = 27;
+       d[SI_CHUNK_TIME].len = 15;
+
+       d[SI_AUDIO_FILE_INFO].prefix = "";
+       d[SI_AUDIO_FILE_INFO].postfix = "";
+       d[SI_AUDIO_FILE_INFO].fg = COLOR_GREEN;
+       d[SI_AUDIO_FILE_INFO].bg = COLOR_BLACK;
+       d[SI_AUDIO_FILE_INFO].align = CENTER;
+       d[SI_AUDIO_FILE_INFO].x = 0;
+       d[SI_AUDIO_FILE_INFO].y = 43;
+       d[SI_AUDIO_FILE_INFO].len = 100;
+
+       d[SI_TAGINFO1].prefix = "";
+       d[SI_TAGINFO1].postfix = "";
+       d[SI_TAGINFO1].fg = COLOR_GREEN;
+       d[SI_TAGINFO1].bg = COLOR_BLACK;
+       d[SI_TAGINFO1].align = CENTER;
+       d[SI_TAGINFO1].x = 0;
+       d[SI_TAGINFO1].y = 53;
+       d[SI_TAGINFO1].len = 100;
+
+       d[SI_TAGINFO2].prefix = "";
+       d[SI_TAGINFO2].postfix = "";
+       d[SI_TAGINFO2].fg = COLOR_GREEN;
+       d[SI_TAGINFO2].bg = COLOR_BLACK;
+       d[SI_TAGINFO2].align = CENTER;
+       d[SI_TAGINFO2].x = 0;
+       d[SI_TAGINFO2].y = 63;
+       d[SI_TAGINFO2].len = 100;
+
+       d[SI_AFS_MODE].prefix = "";
+       d[SI_AFS_MODE].postfix = "";
+       d[SI_AFS_MODE].fg = COLOR_YELLOW;
+       d[SI_AFS_MODE].bg = COLOR_BLACK;
+       d[SI_AFS_MODE].align = CENTER;
+       d[SI_AFS_MODE].x = 0;
+       d[SI_AFS_MODE].y = 77;
+       d[SI_AFS_MODE].len = 100;
+
+       d[SI_ATTRIBUTES_TXT].prefix = "";
+       d[SI_ATTRIBUTES_TXT].postfix = "";
+       d[SI_ATTRIBUTES_TXT].fg = COLOR_YELLOW;
+       d[SI_ATTRIBUTES_TXT].bg = COLOR_BLACK;
+       d[SI_ATTRIBUTES_TXT].align = CENTER;
+       d[SI_ATTRIBUTES_TXT].x = 0;
+       d[SI_ATTRIBUTES_TXT].y = 87;
+       d[SI_ATTRIBUTES_TXT].len = 100;
+
+       d[SI_DIRECTORY].prefix = "dir: ";
+       d[SI_DIRECTORY].postfix = "";
+       d[SI_DIRECTORY].fg = COLOR_YELLOW;
+       d[SI_DIRECTORY].bg = COLOR_BLACK;
+       d[SI_DIRECTORY].align = CENTER;
+       d[SI_DIRECTORY].x = 0;
+       d[SI_DIRECTORY].y = 97;
+       d[SI_DIRECTORY].len = 100;
 }
 
 void init_theme(int num, struct gui_theme *t)
 {
        int i;
-
-       for (i = 0; i < NUM_STAT_ITEMS; i++)
+       FOR_EACH_STATUS_ITEM(i)
                t->data[i].len = 0;
        current_theme_num = num;