aboutsummaryrefslogtreecommitdiffstats
path: root/screen.h
diff options
context:
space:
mode:
Diffstat (limited to 'screen.h')
-rw-r--r--screen.h34
1 files changed, 28 insertions, 6 deletions
diff --git a/screen.h b/screen.h
index b23a1da0e..f367d855d 100644
--- a/screen.h
+++ b/screen.h
@@ -32,17 +32,17 @@
#define IS_PAUSED(s) (s==MPD_STATUS_STATE_PAUSE)
#define IS_STOPPED(s) (!(IS_PLAYING(s) | IS_PAUSED(s)))
+
typedef enum
{
SCREEN_PLAY_WINDOW = 0,
SCREEN_FILE_WINDOW,
SCREEN_HELP_WINDOW,
+ SCREEN_KEYDEF_WINDOW,
SCREEN_SEARCH_WINDOW
} screen_mode_t;
-
-
typedef struct
{
WINDOW *w;
@@ -59,14 +59,12 @@ typedef struct
window_t progress_window;
window_t status_window;
+ GList *screen_list;
+
time_t status_timestamp;
time_t input_timestamp;
command_t last_cmd;
- list_window_t *playlist;
- list_window_t *filelist;
- list_window_t *helplist;
-
int cols, rows;
screen_mode_t mode;
@@ -81,6 +79,30 @@ typedef struct
} screen_t;
+typedef void (*screen_init_fn_t) (WINDOW *w, int cols, int rows);
+typedef void (*screen_exit_fn_t) (void);
+typedef void (*screen_open_fn_t) (screen_t *screen, mpd_client_t *c);
+typedef void (*screen_close_fn_t) (void);
+typedef void (*screen_paint_fn_t) (screen_t *screen, mpd_client_t *c);
+typedef void (*screen_update_fn_t) (screen_t *screen, mpd_client_t *c);
+typedef int (*screen_cmd_fn_t) (screen_t *scr, mpd_client_t *c, command_t cmd);
+typedef char * (*screen_title_fn_t) (void);
+typedef list_window_t * (*screen_get_lw_fn_t) (void);
+
+typedef struct
+{
+ screen_init_fn_t init;
+ screen_exit_fn_t exit;
+ screen_open_fn_t open;
+ screen_close_fn_t close;
+ screen_paint_fn_t paint;
+ screen_update_fn_t update;
+ screen_cmd_fn_t cmd;
+ screen_title_fn_t get_title;
+ screen_get_lw_fn_t get_lw;
+
+} screen_functions_t;
+
int screen_init(void);
int screen_exit(void);