Code

increment version number to 0.28
[ncmpc.git] / src / screen_artist.c
index 077fca52bd61ccf442e88d1cafba8229feb347ad..2190cbbff54a7f3b4aed0068a47f9cb7d4c52df0 100644 (file)
@@ -1,5 +1,5 @@
 /* ncmpc (Ncurses MPD Client)
- * (c) 2004-2010 The Music Player Daemon Project
+ * (c) 2004-2017 The Music Player Daemon Project
  * Project homepage: http://musicpd.org
  *
  * This program is free software; you can redistribute it and/or modify
@@ -28,6 +28,7 @@
 #include "mpdclient.h"
 #include "screen_browser.h"
 #include "filelist.h"
+#include "options.h"
 
 #include <assert.h>
 #include <string.h>
@@ -87,16 +88,6 @@ screen_artist_lw_callback(unsigned idx, void *data)
        return buf;
 }
 
-static void
-screen_artist_paint(void);
-
-static void
-artist_repaint(void)
-{
-       screen_artist_paint();
-       wrefresh(browser.lw->w);
-}
-
 static void
 string_array_free(GPtrArray *array)
 {
@@ -298,9 +289,10 @@ reload_lists(struct mpdclient *c)
 }
 
 static void
-screen_artist_init(WINDOW *w, int cols, int rows)
+screen_artist_init(WINDOW *w, unsigned cols, unsigned rows)
 {
        browser.lw = list_window_init(w, cols, rows);
+       browser.song_format = options.list_format;
        artist = NULL;
        album = NULL;
 }
@@ -321,7 +313,7 @@ screen_artist_open(struct mpdclient *c)
 }
 
 static void
-screen_artist_resize(int cols, int rows)
+screen_artist_resize(unsigned cols, unsigned rows)
 {
        list_window_resize(browser.lw, cols, rows);
 }
@@ -332,9 +324,9 @@ screen_artist_resize(int cols, int rows)
 static void
 paint_artist_callback(WINDOW *w, unsigned i,
                      gcc_unused unsigned y, unsigned width,
-                     bool selected, void *data)
+                     bool selected, const void *data)
 {
-       GPtrArray *list = data;
+       const GPtrArray *list = data;
        char *p = utf8_to_locale(g_ptr_array_index(list, i));
 
        screen_browser_paint_directory(w, width, selected, p);
@@ -350,9 +342,9 @@ paint_artist_callback(WINDOW *w, unsigned i,
 static void
 paint_album_callback(WINDOW *w, unsigned i,
                     gcc_unused unsigned y, unsigned width,
-                    bool selected, void *data)
+                    bool selected, const void *data)
 {
-       GPtrArray *list = data;
+       const GPtrArray *list = data;
        const char *p;
        char *q = NULL;
 
@@ -438,7 +430,7 @@ screen_artist_update(struct mpdclient *c)
                         | MPD_IDLE_QUEUE
 #endif
                         ))
-               artist_repaint();
+               screen_artist_paint();
 }
 
 /* add_query - Add all songs satisfying specified criteria.
@@ -528,7 +520,7 @@ screen_artist_cmd(struct mpdclient *c, command_t cmd)
                        open_album_list(c, g_strdup(selected));
                        list_window_reset(browser.lw);
 
-                       artist_repaint();
+                       screen_artist_paint();
                        return true;
 
                case LIST_ALBUMS:
@@ -558,7 +550,7 @@ screen_artist_cmd(struct mpdclient *c, command_t cmd)
                                list_window_reset(browser.lw);
                        }
 
-                       artist_repaint();
+                       screen_artist_paint();
                        return true;
 
                case LIST_SONGS:
@@ -581,7 +573,7 @@ screen_artist_cmd(struct mpdclient *c, command_t cmd)
                                        list_window_center(browser.lw, idx);
                                }
 
-                               artist_repaint();
+                               screen_artist_paint();
                                return true;
                        }
                        break;
@@ -630,7 +622,7 @@ screen_artist_cmd(struct mpdclient *c, command_t cmd)
                        break;
                }
 
-               artist_repaint();
+               screen_artist_paint();
                break;
 
        case CMD_GO_ROOT_DIRECTORY:
@@ -647,7 +639,7 @@ screen_artist_cmd(struct mpdclient *c, command_t cmd)
                        break;
                }
 
-               artist_repaint();
+               screen_artist_paint();
                break;
 
        case CMD_SELECT:
@@ -699,13 +691,13 @@ screen_artist_cmd(struct mpdclient *c, command_t cmd)
                case LIST_ARTISTS:
                        screen_find(browser.lw, cmd,
                                    screen_artist_lw_callback, artist_list);
-                       artist_repaint();
+                       screen_artist_paint();
                        return true;
 
                case LIST_ALBUMS:
                        screen_find(browser.lw, cmd,
                                    screen_artist_lw_callback, album_list);
-                       artist_repaint();
+                       screen_artist_paint();
                        return true;
 
                case LIST_SONGS:
@@ -715,15 +707,17 @@ screen_artist_cmd(struct mpdclient *c, command_t cmd)
        case CMD_LIST_JUMP:
                switch (mode) {
                case LIST_ARTISTS:
-                       screen_jump(browser.lw, screen_artist_lw_callback,
+                       screen_jump(browser.lw,
+                                   screen_artist_lw_callback, artist_list,
                                    paint_artist_callback, artist_list);
-                       artist_repaint();
+                       screen_artist_paint();
                        return true;
 
                case LIST_ALBUMS:
-                       screen_jump(browser.lw, screen_artist_lw_callback,
+                       screen_jump(browser.lw,
+                                   screen_artist_lw_callback, album_list,
                                    paint_album_callback, album_list);
-                       artist_repaint();
+                       screen_artist_paint();
                        return true;
 
                case LIST_SONGS:
@@ -739,7 +733,7 @@ screen_artist_cmd(struct mpdclient *c, command_t cmd)
 
        if (screen_artist_lw_cmd(c, cmd)) {
                if (screen_is_visible(&screen_artist))
-                       artist_repaint();
+                       screen_artist_paint();
                return true;
        }