diff options
Diffstat (limited to 'SHF_EPG_3.diff')
-rw-r--r-- | SHF_EPG_3.diff | 258 |
1 files changed, 0 insertions, 258 deletions
diff --git a/SHF_EPG_3.diff b/SHF_EPG_3.diff deleted file mode 100644 index f13ea23..0000000 --- a/SHF_EPG_3.diff +++ /dev/null @@ -1,258 +0,0 @@ -diff -rupbB ./lcdproc.c ../lcdproc-0.0.10.SHF-volume/lcdproc.c ---- ./lcdproc.c 2008-05-27 00:03:09.000000000 +0200 -+++ ../lcdproc-0.0.10.SHF-volume/lcdproc.c 2007-12-13 21:41:06.000000000 +0100 -@@ -61,7 +61,7 @@ protected: - virtual void OsdCurrentItem(const char *Text); - virtual void OsdTextItem(const char *Text, bool Scroll); - virtual void OsdChannel(const char *Text); -- virtual void OsdProgramme(time_t PresentTime, const char *PresentTitle, const char *PresentSubtitle, time_t FollowingTime, const char *FollowingTitle, const char *FollowingSubtitle); -+// virtual void OsdProgramme(time_t PresentTime, const char *PresentTitle, const char *PresentSubtitle, time_t FollowingTime, const char *FollowingTitle, const char *FollowingSubtitle); - }; - - -@@ -70,10 +70,8 @@ void cLcdFeed::ChannelSwitch(const cDevi - //syslog(LOG_INFO, "lcdproc: cLcdFeed::ChannelSwitch %d %d", Device->CardIndex(), ChannelNumber); - if ( Device && Device->IsPrimaryDevice() ) { - if (ChannelNumber) { -- LCDproc->SetLine(1,2," "); -- LCDproc->SetLine(1,3," "); -- LCDproc->SetRunning(false,tr("Waiting for EPG info."), NULL); - switched = true; -+ LCDproc->SetChannelSwitch( (cDevice *) Device, ChannelNumber); - } else switched = false; - LCDproc->SetPrimaryDevice( (cDevice *) Device ); - } -@@ -188,31 +186,31 @@ void cLcdFeed::OsdChannel(const char *Te - switched=false; menumode=false; - } - --void cLcdFeed::OsdProgramme(time_t PresentTime, const char *PresentTitle, const char *PresentSubtitle, time_t FollowingTime, const char *FollowingTitle, const char *FollowingSubtitle) --{ -- char buffer[25]; -- struct tm tm_r; -- //syslog(LOG_INFO, "lcdproc: cLcdFeed::OsdProgramme"); -- strftime(buffer, sizeof(buffer), "%R", localtime_r(&PresentTime, &tm_r)); -- //syslog(LOG_INFO, "%5s %s", buffer, PresentTitle); -- //syslog(LOG_INFO, "%5s %s", "", PresentSubtitle); -- -- -- if ( (!isempty(PresentTitle)) && (!isempty(PresentSubtitle)) ) -- LCDproc->SetRunning(false,buffer,PresentTitle,PresentSubtitle); -- else if (!isempty(PresentTitle)) LCDproc->SetRunning(false,buffer,PresentTitle); -- else LCDproc->SetRunning(false,tr("No EPG info available."), NULL); -- -- -- strftime(buffer, sizeof(buffer), "%R", localtime_r(&FollowingTime, &tm_r)); -- //syslog(LOG_INFO, "%5s %s", buffer, FollowingTitle); -- //syslog(LOG_INFO, "%5s %s", "", FollowingSubtitle); -- -- if ( (!isempty(FollowingTitle)) && (!isempty(FollowingSubtitle)) ) -- LCDproc->SetRunning(true,buffer,FollowingTitle,FollowingSubtitle); -- else if (!isempty(FollowingTitle)) LCDproc->SetRunning(true,buffer,FollowingTitle); -- else LCDproc->SetRunning(true,tr("No EPG info available."), NULL); --} -+// void cLcdFeed::OsdProgramme(time_t PresentTime, const char *PresentTitle, const char *PresentSubtitle, time_t FollowingTime, const char *FollowingTitle, const char *FollowingSubtitle) -+// { -+// char buffer[25]; -+// struct tm tm_r; -+// //syslog(LOG_INFO, "lcdproc: cLcdFeed::OsdProgramme"); -+// strftime(buffer, sizeof(buffer), "%R", localtime_r(&PresentTime, &tm_r)); -+// //syslog(LOG_INFO, "%5s %s", buffer, PresentTitle); -+// //syslog(LOG_INFO, "%5s %s", "", PresentSubtitle); -+// -+// -+// if ( (!isempty(PresentTitle)) && (!isempty(PresentSubtitle)) ) -+// LCDproc->SetRunning(false,buffer,PresentTitle,PresentSubtitle); -+// else if (!isempty(PresentTitle)) LCDproc->SetRunning(false,buffer,PresentTitle); -+// else LCDproc->SetRunning(false,tr("No EPG info available."), NULL); -+// -+// -+// strftime(buffer, sizeof(buffer), "%R", localtime_r(&FollowingTime, &tm_r)); -+// //syslog(LOG_INFO, "%5s %s", buffer, FollowingTitle); -+// //syslog(LOG_INFO, "%5s %s", "", FollowingSubtitle); -+// -+// if ( (!isempty(FollowingTitle)) && (!isempty(FollowingSubtitle)) ) -+// LCDproc->SetRunning(true,buffer,FollowingTitle,FollowingSubtitle); -+// else if (!isempty(FollowingTitle)) LCDproc->SetRunning(true,buffer,FollowingTitle); -+// else LCDproc->SetRunning(true,tr("No EPG info available."), NULL); -+// } - - // --- - -diff -rupbB ./lcd.c ../lcdproc-0.0.10.SHF-volume/lcd.c ---- ./lcd.c 2008-05-27 02:13:45.000000000 +0200 -+++ ../lcdproc-0.0.10.SHF-volume/lcd.c 2008-05-27 02:13:22.000000000 +0200 -@@ -277,6 +277,15 @@ void cLcd::SetWarning( const char *strin - } - } - -+void cLcd::SetChannelSwitch(const cDevice *Device, int ChannelNumber){ -+ cLcd::SetLine(1,2," "); -+ cLcd::SetLine(1,3," "); -+ cLcd::SetRunning(false,tr("Waiting for EPG info."), NULL); -+ cLcd::SetRunning(true,tr("Waiting for EPG info."), NULL); -+ epg=false; -+ epg_retry=MAX_EPG_RETRY; -+} -+ - void cLcd::ShowVolume(unsigned int vol, bool muted ) { - if (!connected) return; - BeginMutualExclusion(); -@@ -712,9 +721,15 @@ void cLcd::Action(void) { // LCD output - - // epg update - -+ if ( !epg && epg_retry > 0 ) { -+ epg_retry-- ; -+ if ( ( epg_retry % 5 ) == 0 ) nextLcdUpdate=time(NULL)-10; -+ } else epg = true; -+ - #ifdef OLDVDR - - if ( time(NULL) > nextLcdUpdate ) { -+ epg=true; - const cEventInfo *Present = NULL; - cMutexLock MutexLock; - const cSchedules *Schedules = cSIProcessor::Schedules(MutexLock); -@@ -722,54 +737,99 @@ void cLcd::Action(void) { // LCD output - const cSchedule *Schedule = Schedules->GetSchedule(); - if (Schedule) { - const char *PresentTitle, *PresentSubtitle; -+ - PresentTitle = NULL; PresentSubtitle = NULL; - if ((Present = Schedule->GetPresentEvent()) != NULL) { -- nextLcdUpdate=Present->GetTime()+Present->GetDuration(); -+// nextLcdUpdate=Present->GetTime()+Present->GetDuration(); - PresentTitle = Present->GetTitle(); - PresentSubtitle = Present->GetSubtitle(); - if ( (!isempty(PresentTitle)) && (!isempty(PresentSubtitle)) ) - SetRunning(false,Present->GetTimeString(),PresentTitle,PresentSubtitle); - else if (!isempty(PresentTitle)) SetRunning(false,Present->GetTimeString(),PresentTitle); -+ else { -+ SetRunning(false,tr("No EPG info available."), NULL); -+ } - } else - SetRunning(false,tr("No EPG info available."), NULL); -- if ((Present = Schedule->GetFollowingEvent()) != NULL) -- nextLcdUpdate=(Present->GetTime()<nextLcdUpdate)?Present->GetTime():nextLcdUpdate; -+ -+ Present = NULL; PresentTitle = NULL; PresentSubtitle = NULL; -+ if ((Present = Schedule->GetFollowingEvent()) != NULL) { -+// nextLcdUpdate=Present->StartTime()+Present->Duration(); -+ PresentTitle = Present->Title(); -+ PresentSubtitle = Present->ShortText(); -+ if ( (!isempty(PresentTitle)) && (!isempty(PresentSubtitle)) ) -+ SetRunning(true,Present->GetTimeString(),PresentTitle,PresentSubtitle); -+ else if (!isempty(PresentTitle)) SetRunning(true,Present->GetTimeString(),PresentTitle); -+ else { -+ SetRunning(true,tr("No EPG info available."), NULL); -+ epg=false; - } -+ } else { -+ SetRunning(true,tr("No EPG info available."), NULL); -+ epg=false; - } -- if ( nextLcdUpdate <= time(NULL) ) -- nextLcdUpdate=(time(NULL)/60)*60+60; -- else if ( nextLcdUpdate > time(NULL)+60 ) -+ -+// if ((Present = Schedule->GetFollowingEvent()) != NULL) -+// nextLcdUpdate=(Present->GetTime()<nextLcdUpdate)?Present->GetTime():nextLcdUpdate; -+ } -+ } -+// if ( nextLcdUpdate <= time(NULL) ) -+// nextLcdUpdate=(time(NULL)/60)*60+60; -+// else if ( nextLcdUpdate > time(NULL)+60 ) - nextLcdUpdate=(time(NULL)/60)*60+60; - } - - #else - - if ( time(NULL) > nextLcdUpdate ) { -+ epg=true; - cChannel *channel = Channels.GetByNumber(primaryDvbApi->CurrentChannel()); - const cEvent *Present = NULL; - cSchedulesLock schedulesLock; - const cSchedules *Schedules = cSchedules::Schedules(schedulesLock); - if (Schedules) { - const cSchedule *Schedule = Schedules->GetSchedule(channel->GetChannelID()); -+ - if (Schedule) { - const char *PresentTitle, *PresentSubtitle; -+ - PresentTitle = NULL; PresentSubtitle = NULL; - if ((Present = Schedule->GetPresentEvent()) != NULL) { -- nextLcdUpdate=Present->StartTime()+Present->Duration(); -+// nextLcdUpdate=Present->StartTime()+Present->Duration(); - PresentTitle = Present->Title(); - PresentSubtitle = Present->ShortText(); - if ( (!isempty(PresentTitle)) && (!isempty(PresentSubtitle)) ) - SetRunning(false,Present->GetTimeString(),PresentTitle,PresentSubtitle); - else if (!isempty(PresentTitle)) SetRunning(false,Present->GetTimeString(),PresentTitle); -- } else -+ else { - SetRunning(false,tr("No EPG info available."), NULL); -- if ((Present = Schedule->GetFollowingEvent()) != NULL) -- nextLcdUpdate=(Present->StartTime()<nextLcdUpdate)?Present->StartTime():nextLcdUpdate; - } -+ } else { -+ SetRunning(false,tr("No EPG info available."), NULL); - } -- if ( nextLcdUpdate <= time(NULL) ) -- nextLcdUpdate=(time(NULL)/60)*60+60; -- else if ( nextLcdUpdate > time(NULL)+60 ) -+ -+ Present = NULL; PresentTitle = NULL; PresentSubtitle = NULL; -+ if ((Present = Schedule->GetFollowingEvent()) != NULL) { -+// nextLcdUpdate=Present->StartTime()+Present->Duration(); -+ PresentTitle = Present->Title(); -+ PresentSubtitle = Present->ShortText(); -+ if ( (!isempty(PresentTitle)) && (!isempty(PresentSubtitle)) ) -+ SetRunning(true,Present->GetTimeString(),PresentTitle,PresentSubtitle); -+ else if (!isempty(PresentTitle)) SetRunning(true,Present->GetTimeString(),PresentTitle); -+ else { -+ SetRunning(true,tr("No EPG info available."), NULL); -+ } -+ } else { -+ SetRunning(true,tr("No EPG info available."), NULL); -+ } -+ -+// if ((Present = Schedule->GetFollowingEvent()) != NULL) -+// nextLcdUpdate=(Present->StartTime()<nextLcdUpdate)?Present->StartTime():nextLcdUpdate; -+ } -+ } -+// if ( nextLcdUpdate <= time(NULL) ) -+// nextLcdUpdate=(time(NULL)/60)*60+60; -+// else if ( nextLcdUpdate > time(NULL)+60 ) - nextLcdUpdate=(time(NULL)/60)*60+60; - } - -diff -rupbB ./lcd.h ../lcdproc-0.0.10.SHF-volume/lcd.h ---- ./lcd.h 2008-05-27 02:11:55.000000000 +0200 -+++ ../lcdproc-0.0.10.SHF-volume/lcd.h 2008-05-27 01:03:23.000000000 +0200 -@@ -14,6 +14,7 @@ - #define LCDMAXWID 40 - #define LCDMAXCARDS 4 - #define LCDMAXFULLSTRING 1024 -+#define MAX_EPG_RETRY 45 // : 8 = sec - #define MAX_LCDd_dead 12 // : 8 = sec - - class cLcd : public cThread { -@@ -40,6 +41,7 @@ class cLcd : public cThread { - void SetTitle( const char *string); - void SetMain( unsigned int n, const char *string); - void SetHelp( unsigned int n, const char *Red, const char *Green, const char *Yellow, const char *Blue); -+ void SetChannelSwitch(const cDevice *Device, int ChannelNumber); - void SetStatus( const char *string); - void SetWarning( const char *string); - void ShowVolume(unsigned int vol, bool muted ); -@@ -65,7 +67,9 @@ class cLcd : public cThread { - char host[100]; // 100 should be sufficient, I think. - unsigned int port; - bool connected; -+ bool epg; - unsigned int LCDd_dead; -+ int epg_retry; - struct StateData ThreadStateData; - time_t LastProgress; - cMutex CriticalArea; |