Commit 400ff1c8 authored by Max Kellermann's avatar Max Kellermann

DatabaseQueue: pass DatabaseSelection to Add...()

parent d360f17a
......@@ -91,9 +91,9 @@ handle_match_add(Client *client, int argc, char *argv[], bool fold_case)
return COMMAND_RETURN_ERROR;
}
const DatabaseSelection selection("", true, &filter);
GError *error = NULL;
return AddFromDatabase(client->partition,
"", &filter, &error)
return AddFromDatabase(client->partition, selection, &error)
? COMMAND_RETURN_OK
: print_error(client, error);
}
......
......@@ -42,16 +42,13 @@ AddToQueue(Partition &partition, song &song, GError **error_r)
}
bool
AddFromDatabase(Partition &partition,
const char *uri,
const SongFilter *filter, GError **error_r)
AddFromDatabase(Partition &partition, const DatabaseSelection &selection,
GError **error_r)
{
const Database *db = GetDatabase(error_r);
if (db == nullptr)
return false;
const DatabaseSelection selection(uri, true, filter);
using namespace std::placeholders;
const auto f = std::bind(AddToQueue, std::ref(partition), _1, _2);
return db->Visit(selection, f, error_r);
......
......@@ -20,16 +20,13 @@
#ifndef MPD_DATABASE_QUEUE_HXX
#define MPD_DATABASE_QUEUE_HXX
#include "gcc.h"
#include "gerror.h"
class SongFilter;
struct Partition;
struct DatabaseSelection;
gcc_nonnull(2)
bool
AddFromDatabase(Partition &partition,
const char *name,
const SongFilter *filter, GError **error_r);
AddFromDatabase(Partition &partition, const DatabaseSelection &selection,
GError **error_r);
#endif
......@@ -22,6 +22,7 @@
#include "CommandError.hxx"
#include "DatabaseQueue.hxx"
#include "SongFilter.hxx"
#include "DatabaseSelection.hxx"
#include "Playlist.hxx"
#include "PlaylistPrint.hxx"
#include "ClientFile.hxx"
......@@ -69,9 +70,9 @@ handle_add(Client *client, G_GNUC_UNUSED int argc, char *argv[])
return print_playlist_result(client, result);
}
const DatabaseSelection selection(uri, true);
GError *error = NULL;
return AddFromDatabase(client->partition,
uri, nullptr, &error)
return AddFromDatabase(client->partition, selection, &error)
? COMMAND_RETURN_OK
: print_error(client, error);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment