1 #ifndef SCREEN_H
2 #define SCREEN_H
3 #include <ncurses.h>
4 #include "screen_utils.h"
6 #define TOP_HEADER_PREFIX "Music Player Client - "
7 #define TOP_HEADER_PLAY TOP_HEADER_PREFIX "Playlist"
8 #define TOP_HEADER_FILE TOP_HEADER_PREFIX "Browse"
9 #define TOP_HEADER_HELP TOP_HEADER_PREFIX "Help"
10 #define TOP_HEADER_SEARCH TOP_HEADER_PREFIX "Search"
12 #define SCREEN_MIN_COLS 14
13 #define SCREEN_MIN_ROWS 5
15 #define IS_PLAYING(s) (s==MPD_STATUS_STATE_PLAY)
17 typedef enum
18 {
19 SCREEN_PLAY_WINDOW = 0,
20 SCREEN_FILE_WINDOW,
21 SCREEN_HELP_WINDOW,
22 SCREEN_SEARCH_WINDOW
24 } screen_mode_t;
28 typedef struct
29 {
30 WINDOW *w;
31 int rows, cols;
33 } window_t;
37 typedef struct
38 {
39 window_t top_window;
40 window_t main_window;
41 window_t progress_window;
42 window_t status_window;
43 time_t status_timestamp;
45 list_window_t *playlist;
46 list_window_t *filelist;
47 list_window_t *helplist;
49 int cols, rows;
51 screen_mode_t mode;
53 char *buf;
54 size_t buf_size;
56 int painted;
58 } screen_t;
62 int screen_init(void);
63 int screen_exit(void);
64 void screen_resized(int sig);
65 void screen_status_message(mpd_client_t *c, char *msg);
66 char *screen_error(void);
67 void screen_paint(mpd_client_t *c);
68 void screen_update(mpd_client_t *c);
69 void screen_cmd(mpd_client_t *c, command_t cmd);
71 #endif