diff -rup lcdproc-0.0.10.sav/lcd.c lcdproc-0.0.10/lcd.c --- lcdproc-0.0.10.sav/lcd.c Wed Nov 9 22:01:59 2005 +++ lcdproc-0.0.10/lcd.c Thu Jan 5 16:52:01 2006 @@ -43,6 +43,7 @@ cLcd::cLcd() { for (i=0;i time(NULL)+60 ) - nextLcdUpdate=(time(NULL)/60)*60+60; } #else @@ -731,8 +733,6 @@ void cLcd::Action(void) { // LCD output } if ( nextLcdUpdate <= time(NULL) ) nextLcdUpdate=(time(NULL)/60)*60+60; - else if ( nextLcdUpdate > time(NULL)+60 ) - nextLcdUpdate=(time(NULL)/60)*60+60; } #endif @@ -1023,4 +1023,8 @@ void cLcd::Action(void) { // LCD output } usleep(WakeUpCycle-(now.tv_usec%WakeUpCycle)); // sync to systemtime for nicer time output } +} + +void cLcd::ChannelSwitched() { + channelSwitched = true; } diff -rup lcdproc-0.0.10.sav/lcd.h lcdproc-0.0.10/lcd.h --- lcdproc-0.0.10.sav/lcd.h Wed Nov 9 22:01:59 2005 +++ lcdproc-0.0.10/lcd.h Thu Jan 5 16:57:18 2006 @@ -57,6 +57,7 @@ class cLcd : public cThread { void PopThreadState(); void SetReplayDevice(cControl *DvbApi); void SetPrimaryDevice(cDevice *DvbApi); + void ChannelSwitched(); //to propagate "ChannelSwitched"-Event from cLcdFeed to cLcd private: char *SummaryText; unsigned int SummaryTextL; @@ -75,6 +76,7 @@ class cLcd : public cThread { void GetTimeDateStat( char *string, unsigned int OutStateData[] ); void Action(void); int closing ; + bool channelSwitched; }; #endif //__LCD_H diff -rup lcdproc-0.0.10.sav/lcdproc.c lcdproc-0.0.10/lcdproc.c --- lcdproc-0.0.10.sav/lcdproc.c Wed Nov 9 22:01:59 2005 +++ lcdproc-0.0.10/lcdproc.c Thu Jan 5 16:32:59 2006 @@ -73,6 +73,7 @@ void cLcdFeed::ChannelSwitch(const cDevi LCDproc->SetLine(1,2," "); LCDproc->SetLine(1,3," "); LCDproc->SetRunning(false,tr("Waiting for EPG info."), NULL); + LCDproc->ChannelSwitched(); switched = true; } else switched = false; LCDproc->SetPrimaryDevice( (cDevice *) Device );