Mapper: move map_song_detach() to db/DatabaseSong.cxx

Use Storage::MapUTF8() internally, don't use global variables.
This commit is contained in:
Max Kellermann
2014-02-07 00:29:07 +01:00
parent 19a982cf69
commit c13810ebaa
17 changed files with 97 additions and 55 deletions

View File

@@ -19,24 +19,26 @@
#include "config.h"
#include "DatabasePlaylist.hxx"
#include "DatabaseSong.hxx"
#include "Selection.hxx"
#include "PlaylistFile.hxx"
#include "DatabasePlugin.hxx"
#include "DetachedSong.hxx"
#include "Mapper.hxx"
#include "storage/StorageInterface.hxx"
#include <functional>
static bool
AddSong(const char *playlist_path_utf8,
AddSong(const Storage &storage, const char *playlist_path_utf8,
const LightSong &song, Error &error)
{
return spl_append_song(playlist_path_utf8, map_song_detach(song),
return spl_append_song(playlist_path_utf8,
DatabaseDetachSong(storage, song),
error);
}
bool
search_add_to_playlist(const Database &db,
search_add_to_playlist(const Database &db, const Storage &storage,
const char *uri, const char *playlist_path_utf8,
const SongFilter *filter,
Error &error)
@@ -44,6 +46,7 @@ search_add_to_playlist(const Database &db,
const DatabaseSelection selection(uri, true, filter);
using namespace std::placeholders;
const auto f = std::bind(AddSong, playlist_path_utf8, _1, _2);
const auto f = std::bind(AddSong, std::ref(storage),
playlist_path_utf8, _1, _2);
return db.Visit(selection, f, error);
}