DatabaseQueue: pass DatabaseSelection to Add...()
This commit is contained in:
parent
d360f17a59
commit
400ff1c812
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user