do not fetch mpd_Stats from mpd as it's unneded
This commit is contained in:
@@ -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),
|
||||||
|
isConnected(0),
|
||||||
isCommandsListEnabled(0),
|
isCommandsListEnabled(0),
|
||||||
itsErrorCode(0),
|
itsErrorCode(0),
|
||||||
itsMaxPlaylistLength(-1),
|
itsMaxPlaylistLength(-1),
|
||||||
itsHost("localhost"),
|
itsHost("localhost"),
|
||||||
itsPort(6600),
|
itsPort(6600),
|
||||||
itsTimeout(15),
|
itsTimeout(15),
|
||||||
|
itsCurrentStatus(0),
|
||||||
|
itsOldStatus(0),
|
||||||
itsUpdater(0),
|
itsUpdater(0),
|
||||||
itsErrorHandler(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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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))
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user