Code

Imported ncmpc (mpc-ncures).
[ncmpc.git] / screen.h
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