do not fetch mpd_Stats from mpd as it's unneded

This commit is contained in:
Andrzej Rybczak
2009-03-22 17:52:27 +01:00
parent ffbcfb7e18
commit ab265f2fdf
3 changed files with 20 additions and 37 deletions

View File

@@ -29,31 +29,25 @@ const char *MPD::Message::PartOfSongsAdded = "Only part of requested songs' list
const char *MPD::Message::FullPlaylist = "Playlist is full!"; const char *MPD::Message::FullPlaylist = "Playlist is full!";
const char *MPD::Message::FunctionDisabledFilteringEnabled = "Function disabled due to enabled filtering in playlist"; const char *MPD::Message::FunctionDisabledFilteringEnabled = "Function disabled due to enabled filtering in playlist";
Connection::Connection() : isConnected(0), Connection::Connection() : itsConnection(0),
isCommandsListEnabled(0), isConnected(0),
itsErrorCode(0), isCommandsListEnabled(0),
itsMaxPlaylistLength(-1), itsErrorCode(0),
itsHost("localhost"), itsMaxPlaylistLength(-1),
itsPort(6600), itsHost("localhost"),
itsTimeout(15), itsPort(6600),
itsUpdater(0), itsTimeout(15),
itsErrorHandler(0) itsCurrentStatus(0),
itsOldStatus(0),
itsUpdater(0),
itsErrorHandler(0)
{ {
itsConnection = 0;
itsCurrentStats = 0;
itsOldStats = 0;
itsCurrentStatus = 0;
itsOldStatus = 0;
} }
Connection::~Connection() Connection::~Connection()
{ {
if (itsConnection) if (itsConnection)
mpd_closeConnection(itsConnection); mpd_closeConnection(itsConnection);
if (itsOldStats)
mpd_freeStats(itsOldStats);
if (itsCurrentStats)
mpd_freeStats(itsCurrentStats);
if (itsOldStatus) if (itsOldStatus)
mpd_freeStatus(itsOldStatus); mpd_freeStatus(itsOldStatus);
if (itsCurrentStatus) if (itsCurrentStatus)
@@ -85,17 +79,11 @@ void Connection::Disconnect()
{ {
if (itsConnection) if (itsConnection)
mpd_closeConnection(itsConnection); mpd_closeConnection(itsConnection);
if (itsOldStats)
mpd_freeStats(itsOldStats);
if (itsCurrentStats)
mpd_freeStats(itsCurrentStats);
if (itsOldStatus) if (itsOldStatus)
mpd_freeStatus(itsOldStatus); mpd_freeStatus(itsOldStatus);
if (itsCurrentStatus) if (itsCurrentStatus)
mpd_freeStatus(itsCurrentStatus); mpd_freeStatus(itsCurrentStatus);
itsConnection = 0; itsConnection = 0;
itsCurrentStats = 0;
itsOldStats = 0;
itsCurrentStatus = 0; itsCurrentStatus = 0;
itsOldStatus = 0; itsOldStatus = 0;
isConnected = 0; isConnected = 0;
@@ -163,15 +151,9 @@ void Connection::UpdateStatus()
if (CheckForErrors()) if (CheckForErrors())
return; return;
if (itsOldStats) if (itsCurrentStatus && itsUpdater)
mpd_freeStats(itsOldStats);
itsOldStats = itsCurrentStats;
mpd_sendStatsCommand(itsConnection);
itsCurrentStats = mpd_getStats(itsConnection);
if (itsCurrentStatus && itsCurrentStats && itsUpdater)
{ {
if (itsOldStatus == NULL || itsOldStats == NULL) if (!itsOldStatus)
{ {
itsChanges.Playlist = 1; itsChanges.Playlist = 1;
itsChanges.SongID = 1; itsChanges.SongID = 1;
@@ -189,7 +171,7 @@ void Connection::UpdateStatus()
{ {
itsChanges.Playlist = itsOldStatus->playlist != itsCurrentStatus->playlist; itsChanges.Playlist = itsOldStatus->playlist != itsCurrentStatus->playlist;
itsChanges.SongID = itsOldStatus->songid != itsCurrentStatus->songid; itsChanges.SongID = itsOldStatus->songid != itsCurrentStatus->songid;
itsChanges.Database = itsOldStats->dbUpdateTime != itsCurrentStats->dbUpdateTime; itsChanges.Database = itsOldStatus->updatingDb && !itsCurrentStatus->updatingDb;
itsChanges.DBUpdating = itsOldStatus->updatingDb != itsCurrentStatus->updatingDb; itsChanges.DBUpdating = itsOldStatus->updatingDb != itsCurrentStatus->updatingDb;
itsChanges.Volume = itsOldStatus->volume != itsCurrentStatus->volume; itsChanges.Volume = itsOldStatus->volume != itsCurrentStatus->volume;
itsChanges.ElapsedTime = itsOldStatus->elapsedTime != itsCurrentStatus->elapsedTime; itsChanges.ElapsedTime = itsOldStatus->elapsedTime != itsCurrentStatus->elapsedTime;
@@ -203,12 +185,14 @@ void Connection::UpdateStatus()
} }
} }
void Connection::UpdateDirectory(const string &path) const void Connection::UpdateDirectory(const string &path)
{ {
if (isConnected) if (isConnected)
{ {
mpd_sendUpdateCommand(itsConnection, path.c_str()); mpd_sendUpdateCommand(itsConnection, path.c_str());
mpd_finishCommand(itsConnection); mpd_finishCommand(itsConnection);
if (!itsConnection->error)
itsCurrentStatus->updatingDb = 1;
} }
} }

View File

@@ -96,7 +96,7 @@ namespace MPD
void SetStatusUpdater(StatusUpdater, void *); void SetStatusUpdater(StatusUpdater, void *);
void SetErrorHandler(ErrorHandler, void *); void SetErrorHandler(ErrorHandler, void *);
void UpdateStatus(); void UpdateStatus();
void UpdateDirectory(const std::string &) const; void UpdateDirectory(const std::string &);
void Execute(const std::string &) const; void Execute(const std::string &) const;
@@ -186,8 +186,6 @@ namespace MPD
int itsTimeout; int itsTimeout;
std::string itsPassword; std::string itsPassword;
mpd_Stats *itsOldStats;
mpd_Stats *itsCurrentStats;
mpd_Status *itsCurrentStatus; mpd_Status *itsCurrentStatus;
mpd_Status *itsOldStatus; mpd_Status *itsOldStatus;

View File

@@ -1061,6 +1061,7 @@ int main(int argc, char *argv[])
# endif // HAVE_TAGLIB_H # endif // HAVE_TAGLIB_H
else else
Mpd->UpdateDirectory("/"); Mpd->UpdateDirectory("/");
Mpd->UpdateStatus();
} }
else if (Keypressed(input, Key.GoToNowPlaying)) else if (Keypressed(input, Key.GoToNowPlaying))
{ {