fixed: reset scroll offset when song changed
This commit is contained in:
parent
e91398d77b
commit
1c819b3b41
3 changed files with 19 additions and 5 deletions
|
@ -334,7 +334,11 @@ void CBitVis::SendData(int64_t time)
|
|||
//add an empty line
|
||||
data.SetData(text, m_nrcolumns / 4, true);
|
||||
|
||||
SetText(text, m_mpdclient->CurrentSong().c_str());
|
||||
string currentsong;
|
||||
if (m_mpdclient->CurrentSong(currentsong))
|
||||
m_scrolloffset = m_nrcolumns;
|
||||
|
||||
SetText(text, currentsong.c_str());
|
||||
data.SetData(text, sizeof(text), true);
|
||||
|
||||
uint8_t end[10];
|
||||
|
|
|
@ -105,7 +105,13 @@ bool CMpdClient::GetCurrentSong()
|
|||
|
||||
if (!artist.empty() && !title.empty())
|
||||
{
|
||||
m_currentsong = artist + " - " + title;
|
||||
string song = artist + " - " + title;
|
||||
CLock lock(m_condition);
|
||||
if (song != m_currentsong)
|
||||
{
|
||||
m_currentsong = song;
|
||||
m_songchanged = true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -114,9 +120,12 @@ bool CMpdClient::GetCurrentSong()
|
|||
return false;
|
||||
}
|
||||
|
||||
std::string CMpdClient::CurrentSong()
|
||||
bool CMpdClient::CurrentSong(std::string& song)
|
||||
{
|
||||
CLock lock(m_condition);
|
||||
return m_currentsong;
|
||||
song = m_currentsong;
|
||||
bool songchanged = m_songchanged;
|
||||
m_songchanged = false;
|
||||
return songchanged;
|
||||
}
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ class CMpdClient : public CThread
|
|||
~CMpdClient();
|
||||
|
||||
virtual void Process();
|
||||
std::string CurrentSong();
|
||||
bool CurrentSong(std::string& song);
|
||||
|
||||
private:
|
||||
bool OpenSocket();
|
||||
|
@ -26,6 +26,7 @@ class CMpdClient : public CThread
|
|||
CTcpClientSocket m_socket;
|
||||
CCondition m_condition;
|
||||
std::string m_currentsong;
|
||||
bool m_songchanged;
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue