diff --git a/src/screen_artist.c b/src/screen_artist.c
index cf775b5d5daf6f75b21a3cbf4c94aa614a1b1449..0b460a186cde08b68434749061f53d9e8321b624 100644 (file)
--- a/src/screen_artist.c
+++ b/src/screen_artist.c
mpd_search_commit(connection);
recv_tag_values(connection, MPD_TAG_ARTIST, artist_list);
- if (!mpd_response_finish(connection))
- mpdclient_handle_error(c);
+ mpdclient_finish_command(c);
}
/* sort list */
recv_tag_values(connection, MPD_TAG_ALBUM, album_list);
- if (!mpd_response_finish(connection))
- mpdclient_handle_error(c);
+ mpdclient_finish_command(c);
}
/* sort list */
filelist_recv(browser.filelist, connection);
- if (!mpd_response_finish(connection))
- mpdclient_handle_error(c);
+ mpdclient_finish_command(c);
}
/* fix highlights */
artist_repaint();
}
+/* add_query - Add all songs satisfying specified criteria.
+ _artist is actually only used in the ALBUM case to distinguish albums with
+ the same name from different artists. */
static void
-add_query(struct mpdclient *c, enum mpd_tag_type table, char *_filter)
+add_query(struct mpdclient *c, enum mpd_tag_type table, const char *_filter,
+ const char *_artist)
{
struct mpd_connection *connection = mpdclient_get_connection(c);
char *str;
table, _filter);
if (table == MPD_TAG_ALBUM)
mpd_search_add_tag_constraint(connection, MPD_OPERATOR_DEFAULT,
- MPD_TAG_ARTIST, artist);
+ MPD_TAG_ARTIST, _artist);
mpd_search_commit(connection);
addlist = filelist_new_recv(connection);
- if (mpd_response_finish(connection))
+ if (mpdclient_finish_command(c))
mpdclient_filelist_add_all(c, addlist);
- else
- mpdclient_handle_error(c);
filelist_free(addlist);
}
list_window_get_range(browser.lw, &range);
for (unsigned i = range.start; i < range.end; ++i) {
selected = g_ptr_array_index(artist_list, i);
- add_query(c, MPD_TAG_ARTIST, selected);
+ add_query(c, MPD_TAG_ARTIST, selected, NULL);
cmd = CMD_LIST_NEXT; /* continue and select next item... */
}
break;
list_window_get_range(browser.lw, &range);
for (unsigned i = range.start; i < range.end; ++i) {
if(i == album_list->len + 1)
- add_query(c, MPD_TAG_ARTIST, artist);
+ add_query(c, MPD_TAG_ARTIST, artist, NULL);
else if (i > 0)
{
selected = g_ptr_array_index(album_list,
browser.lw->selected - 1);
- add_query(c, MPD_TAG_ALBUM, selected);
+ add_query(c, MPD_TAG_ALBUM, selected, artist);
cmd = CMD_LIST_NEXT; /* continue and select next item... */
}
}