--- menu.c.position-display 2005-02-06 12:33:13.000000000 +0100 +++ menu.c 2005-02-12 18:52:01.603413651 +0100 @@ -2765,6 +2765,7 @@ } }; if (lastTime.Elapsed() < (uint64)(Setup.ChannelInfoTime * 1000)) { + if (lastTime.Elapsed() > DIRECTCHANNELTIMEOUT) if (cStatus::MsgAlterDisplayChannel(displayChannel)) lastTime.Set(-DIRECTCHANNELTIMEOUT-1); if (!number && group < 0 && channel && channel->Number() != cDevice::CurrentChannel()) Refresh(); // makes sure a channel switch through the SVDRP CHAN command is displayed DisplayInfo(); --- status.c.position-display 2005-01-09 12:51:04.000000000 +0100 +++ status.c 2005-02-12 18:50:21.373060537 +0100 @@ -112,3 +112,10 @@ for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm)) sm->OsdProgramme(PresentTime, PresentTitle, PresentSubtitle, FollowingTime, FollowingTitle, FollowingSubtitle); } + +bool cStatus::MsgAlterDisplayChannel(cSkinDisplayChannel *displayChannel) +{ + for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm)) + if (sm->AlterDisplayChannel(displayChannel)) return true; + return false; +} --- status.h.position-display 2005-01-09 12:50:21.000000000 +0100 +++ status.h 2005-02-12 18:50:21.387056257 +0100 @@ -65,6 +65,9 @@ // The OSD displays the single line Text with the current channel information. virtual void OsdProgramme(time_t PresentTime, const char *PresentTitle, const char *PresentSubtitle, time_t FollowingTime, const char *FollowingTitle, const char *FollowingSubtitle) {} // The OSD displays the given programme information. + virtual bool AlterDisplayChannel(cSkinDisplayChannel *displayChannel) { return false; } + // When channel information is on display the plugin can alter + // the display and, by returning true, keep it on screen public: cStatus(void); virtual ~cStatus(); @@ -84,6 +87,7 @@ static void MsgOsdTextItem(const char *Text, bool Scroll = false); static void MsgOsdChannel(const char *Text); static void MsgOsdProgramme(time_t PresentTime, const char *PresentTitle, const char *PresentSubtitle, time_t FollowingTime, const char *FollowingTitle, const char *FollowingSubtitle); + static bool MsgAlterDisplayChannel(cSkinDisplayChannel *displayChannel); }; #endif //__STATUS_H