lastfm: put code that takes info from a thread to separate function

master
Andrzej Rybczak 16 years ago
parent 3afa0028e6
commit a7b9088b87
  1. 11
      src/lastfm.cpp
  2. 1
      src/lastfm.h

@ -64,14 +64,18 @@ std::basic_string<my_char_t> Lastfm::Title()
void Lastfm::Update() void Lastfm::Update()
{ {
if (isReadyToTake) if (isReadyToTake)
Take();
}
void Lastfm::Take()
{ {
assert(isReadyToTake);
pthread_join(itsDownloader, 0); pthread_join(itsDownloader, 0);
w->Flush(); w->Flush();
w->Refresh(); w->Refresh();
isDownloadInProgress = 0; isDownloadInProgress = 0;
isReadyToTake = 0; isReadyToTake = 0;
} }
}
void Lastfm::SwitchTo() void Lastfm::SwitchTo()
{ {
@ -84,8 +88,9 @@ void Lastfm::SwitchTo()
if (hasToBeResized) if (hasToBeResized)
Resize(); Resize();
// if something is ready to take, take it // get an old info if it waits
Update(); if (isReadyToTake)
Take();
Load(); Load();

@ -76,6 +76,7 @@ class Lastfm : public Screen<Scrollpad>
void Download(); void Download();
static void *DownloadWrapper(void *); static void *DownloadWrapper(void *);
void Take();
bool isReadyToTake; bool isReadyToTake;
bool isDownloadInProgress; bool isDownloadInProgress;
pthread_t itsDownloader; pthread_t itsDownloader;

Loading…
Cancel
Save