audioplayer/screensaver: refresh screensaver picture when title was changed

Origin commit data
------------------
Branch: ni/coolstream
Commit: 21638a1998
Author: vanhofen <vanhofen@gmx.de>
Date: 2018-06-01 (Fri, 01 Jun 2018)

Origin message was:
------------------
- audioplayer/screensaver: refresh screensaver picture when title was changed

------------------
No further description and justification available within origin commit message!

------------------
This commit was generated by Migit
This commit is contained in:
vanhofen
2018-06-01 23:32:04 +02:00
parent 1d559a5520
commit d924ddbb71
3 changed files with 18 additions and 2 deletions

View File

@@ -2210,6 +2210,10 @@ void CAudioPlayerGui::play(unsigned int pos)
m_time_total = m_playlist[m_current].MetaData.total_time;
m_state = CAudioPlayerGui::PLAY;
m_curr_audiofile = m_playlist[m_current];
if (m_screensaver && g_settings.audioplayer_cover_as_screensaver)
CScreenSaver::getInstance()->forceRefresh();
// Play
CAudioPlayer::getInstance()->play(&m_curr_audiofile, g_settings.audioplayer_highprio == 1);

View File

@@ -64,6 +64,7 @@ CScreenSaver::CScreenSaver()
clr.i_color = COL_DARK_GRAY;
pip_channel_id = 0;
idletime = time(NULL);
force_refresh = false;
}
CScreenSaver::~CScreenSaver()
@@ -183,11 +184,20 @@ void* CScreenSaver::ScreenSaverPrg(void* arg)
{
PScreenSaver->ReadDir();
PScreenSaver->paint();
sleep(g_settings.screensaver_timeout);
int t = g_settings.screensaver_timeout;
while (t--)
{
sleep(1);
if (PScreenSaver->force_refresh)
{
PScreenSaver->force_refresh = false;
break;
}
}
}
}
else
PScreenSaver->paint(); //just paint first found picture
PScreenSaver->paint();
return 0;
}

View File

@@ -42,6 +42,7 @@ class CScreenSaver : public sigc::trackable
std::vector<std::string> v_bg_files;
unsigned int index;
t_channel_id pip_channel_id;
bool force_refresh;
bool status_mute;
bool status_icons; //NI
@@ -78,6 +79,7 @@ class CScreenSaver : public sigc::trackable
void resetIdleTime() { idletime = time(NULL); }
time_t getIdleTime() { return idletime; }
void forceRefresh() { force_refresh = true; }
};
#endif // __CSCREENSAVER_H__