lastfm: put code that takes info from a thread to separate function
This commit is contained in:
@@ -64,13 +64,17 @@ std::basic_string<my_char_t> Lastfm::Title()
|
||||
void Lastfm::Update()
|
||||
{
|
||||
if (isReadyToTake)
|
||||
{
|
||||
pthread_join(itsDownloader, 0);
|
||||
w->Flush();
|
||||
w->Refresh();
|
||||
isDownloadInProgress = 0;
|
||||
isReadyToTake = 0;
|
||||
}
|
||||
Take();
|
||||
}
|
||||
|
||||
void Lastfm::Take()
|
||||
{
|
||||
assert(isReadyToTake);
|
||||
pthread_join(itsDownloader, 0);
|
||||
w->Flush();
|
||||
w->Refresh();
|
||||
isDownloadInProgress = 0;
|
||||
isReadyToTake = 0;
|
||||
}
|
||||
|
||||
void Lastfm::SwitchTo()
|
||||
@@ -84,8 +88,9 @@ void Lastfm::SwitchTo()
|
||||
if (hasToBeResized)
|
||||
Resize();
|
||||
|
||||
// if something is ready to take, take it
|
||||
Update();
|
||||
// get an old info if it waits
|
||||
if (isReadyToTake)
|
||||
Take();
|
||||
|
||||
Load();
|
||||
|
||||
|
||||
@@ -76,6 +76,7 @@ class Lastfm : public Screen<Scrollpad>
|
||||
void Download();
|
||||
static void *DownloadWrapper(void *);
|
||||
|
||||
void Take();
|
||||
bool isReadyToTake;
|
||||
bool isDownloadInProgress;
|
||||
pthread_t itsDownloader;
|
||||
|
||||
Reference in New Issue
Block a user