From ab265f2fdff3d9f5233f8d470a128c4db14bd957 Mon Sep 17 00:00:00 2001 From: Andrzej Rybczak Date: Sun, 22 Mar 2009 17:52:27 +0100 Subject: [PATCH] do not fetch mpd_Stats from mpd as it's unneded --- src/mpdpp.cpp | 52 +++++++++++++++++-------------------------------- src/mpdpp.h | 4 +--- src/ncmpcpp.cpp | 1 + 3 files changed, 20 insertions(+), 37 deletions(-) diff --git a/src/mpdpp.cpp b/src/mpdpp.cpp index 265d74fa..c13c6aaf 100644 --- a/src/mpdpp.cpp +++ b/src/mpdpp.cpp @@ -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::FunctionDisabledFilteringEnabled = "Function disabled due to enabled filtering in playlist"; -Connection::Connection() : isConnected(0), - isCommandsListEnabled(0), - itsErrorCode(0), - itsMaxPlaylistLength(-1), - itsHost("localhost"), - itsPort(6600), - itsTimeout(15), - itsUpdater(0), - itsErrorHandler(0) +Connection::Connection() : itsConnection(0), + isConnected(0), + isCommandsListEnabled(0), + itsErrorCode(0), + itsMaxPlaylistLength(-1), + itsHost("localhost"), + itsPort(6600), + itsTimeout(15), + itsCurrentStatus(0), + itsOldStatus(0), + itsUpdater(0), + itsErrorHandler(0) { - itsConnection = 0; - itsCurrentStats = 0; - itsOldStats = 0; - itsCurrentStatus = 0; - itsOldStatus = 0; } Connection::~Connection() { if (itsConnection) mpd_closeConnection(itsConnection); - if (itsOldStats) - mpd_freeStats(itsOldStats); - if (itsCurrentStats) - mpd_freeStats(itsCurrentStats); if (itsOldStatus) mpd_freeStatus(itsOldStatus); if (itsCurrentStatus) @@ -85,17 +79,11 @@ void Connection::Disconnect() { if (itsConnection) mpd_closeConnection(itsConnection); - if (itsOldStats) - mpd_freeStats(itsOldStats); - if (itsCurrentStats) - mpd_freeStats(itsCurrentStats); if (itsOldStatus) mpd_freeStatus(itsOldStatus); if (itsCurrentStatus) mpd_freeStatus(itsCurrentStatus); itsConnection = 0; - itsCurrentStats = 0; - itsOldStats = 0; itsCurrentStatus = 0; itsOldStatus = 0; isConnected = 0; @@ -163,15 +151,9 @@ void Connection::UpdateStatus() if (CheckForErrors()) return; - if (itsOldStats) - mpd_freeStats(itsOldStats); - itsOldStats = itsCurrentStats; - mpd_sendStatsCommand(itsConnection); - itsCurrentStats = mpd_getStats(itsConnection); - - if (itsCurrentStatus && itsCurrentStats && itsUpdater) + if (itsCurrentStatus && itsUpdater) { - if (itsOldStatus == NULL || itsOldStats == NULL) + if (!itsOldStatus) { itsChanges.Playlist = 1; itsChanges.SongID = 1; @@ -189,7 +171,7 @@ void Connection::UpdateStatus() { itsChanges.Playlist = itsOldStatus->playlist != itsCurrentStatus->playlist; 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.Volume = itsOldStatus->volume != itsCurrentStatus->volume; 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) { mpd_sendUpdateCommand(itsConnection, path.c_str()); mpd_finishCommand(itsConnection); + if (!itsConnection->error) + itsCurrentStatus->updatingDb = 1; } } diff --git a/src/mpdpp.h b/src/mpdpp.h index 76f988a7..0e12ccbf 100644 --- a/src/mpdpp.h +++ b/src/mpdpp.h @@ -96,7 +96,7 @@ namespace MPD void SetStatusUpdater(StatusUpdater, void *); void SetErrorHandler(ErrorHandler, void *); void UpdateStatus(); - void UpdateDirectory(const std::string &) const; + void UpdateDirectory(const std::string &); void Execute(const std::string &) const; @@ -186,8 +186,6 @@ namespace MPD int itsTimeout; std::string itsPassword; - mpd_Stats *itsOldStats; - mpd_Stats *itsCurrentStats; mpd_Status *itsCurrentStatus; mpd_Status *itsOldStatus; diff --git a/src/ncmpcpp.cpp b/src/ncmpcpp.cpp index ee6e20aa..8cb141a9 100644 --- a/src/ncmpcpp.cpp +++ b/src/ncmpcpp.cpp @@ -1061,6 +1061,7 @@ int main(int argc, char *argv[]) # endif // HAVE_TAGLIB_H else Mpd->UpdateDirectory("/"); + Mpd->UpdateStatus(); } else if (Keypressed(input, Key.GoToNowPlaying)) {