From 733d6a6b16686c852b6d0fc0e4e9197add501a2f Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 7 Aug 2012 23:22:37 +0200 Subject: DatabaseSelection: add "match" attribute Let the database plugin do the match. --- src/DatabasePlaylist.cxx | 30 ++++++++---------------------- 1 file changed, 8 insertions(+), 22 deletions(-) (limited to 'src/DatabasePlaylist.cxx') diff --git a/src/DatabasePlaylist.cxx b/src/DatabasePlaylist.cxx index bdd55fc5..c6ad9c54 100644 --- a/src/DatabasePlaylist.cxx +++ b/src/DatabasePlaylist.cxx @@ -23,7 +23,6 @@ extern "C" { #include "dbUtils.h" -#include "locate.h" #include "stored_playlist.h" } @@ -40,34 +39,21 @@ AddSong(const char *playlist_path_utf8, } bool -addAllInToStoredPlaylist(const char *uri_utf8, const char *playlist_path_utf8, - GError **error_r) +search_add_to_playlist(const char *uri, const char *playlist_path_utf8, + const struct locate_item_list *criteria, + GError **error_r) { - const DatabaseSelection selection(uri_utf8, true); + const DatabaseSelection selection(uri, true, criteria); using namespace std::placeholders; const auto f = std::bind(AddSong, playlist_path_utf8, _1, _2); return GetDatabase()->Visit(selection, f, error_r); } -static bool -SearchAddSong(const char *playlist_path_utf8, - const struct locate_item_list *criteria, - song &song, GError **error_r) -{ - return !locate_list_song_match(&song, criteria) || - spl_append_song(playlist_path_utf8, &song, error_r); -} - bool -search_add_to_playlist(const char *uri, const char *playlist_path_utf8, - const struct locate_item_list *criteria, - GError **error_r) +addAllInToStoredPlaylist(const char *uri_utf8, const char *playlist_path_utf8, + GError **error_r) { - const DatabaseSelection selection(uri, true); - - using namespace std::placeholders; - const auto f = std::bind(SearchAddSong, playlist_path_utf8, - criteria, _1, _2); - return GetDatabase()->Visit(selection, f, error_r); + return search_add_to_playlist(uri_utf8, playlist_path_utf8, nullptr, + error_r); } -- cgit v1.2.3