Playlist: pass Database to DatabaseModified()

Don't use global variable.
This commit is contained in:
Max Kellermann 2014-02-01 00:45:58 +01:00
parent 1769ae54e4
commit 8cf4fb53aa
5 changed files with 9 additions and 13 deletions

View File

@ -22,6 +22,7 @@
#include "Partition.hxx"
#include "Idle.hxx"
#include "Stats.hxx"
#include "db/DatabaseGlue.hxx"
#ifdef ENABLE_DATABASE
@ -35,7 +36,7 @@ void
Instance::DatabaseModified()
{
stats_invalidate();
partition->DatabaseModified();
partition->DatabaseModified(*GetDatabase());
idle_add(IDLE_DATABASE);
}

View File

@ -25,9 +25,9 @@
#ifdef ENABLE_DATABASE
void
Partition::DatabaseModified()
Partition::DatabaseModified(const Database &db)
{
playlist.DatabaseModified();
playlist.DatabaseModified(db);
}
#endif

View File

@ -178,7 +178,7 @@ struct Partition {
* The database has been modified. Propagate the change to
* all subsystems.
*/
void DatabaseModified();
void DatabaseModified(const Database &db);
#endif
/**

View File

@ -26,6 +26,7 @@
enum TagType : uint8_t;
struct PlayerControl;
class DetachedSong;
class Database;
class Error;
struct playlist {
@ -141,7 +142,7 @@ public:
/**
* The database has been modified. Pull all updates.
*/
void DatabaseModified();
void DatabaseModified(const Database &db);
#endif
PlaylistResult AppendSong(PlayerControl &pc,

View File

@ -19,7 +19,6 @@
#include "config.h"
#include "Playlist.hxx"
#include "db/DatabaseGlue.hxx"
#include "db/DatabasePlugin.hxx"
#include "db/LightSong.hxx"
#include "DetachedSong.hxx"
@ -56,17 +55,12 @@ UpdatePlaylistSong(const Database &db, DetachedSong &song)
}
void
playlist::DatabaseModified()
playlist::DatabaseModified(const Database &db)
{
const Database *db = GetDatabase();
if (db == nullptr)
/* how can this ever happen? */
return;
bool modified = false;
for (unsigned i = 0, n = queue.GetLength(); i != n; ++i) {
if (UpdatePlaylistSong(*db, queue.Get(i))) {
if (UpdatePlaylistSong(db, queue.Get(i))) {
queue.ModifyAtPosition(i);
modified = true;
}