diff --git a/channeljump.c b/channeljump.c index f8d99d2..e81aa5e 100644 --- a/channeljump.c +++ b/channeljump.c @@ -6,13 +6,13 @@ #include "channelgroups.h" #include "channeljump.h" -cChannelJump::cChannelJump(cChannelGroups *channelGroups) { +cChannelJump::cChannelJump(cChannelGroups *channelGroups, int lastValidChannel) { this->channelGroups = channelGroups; pixmapText = NULL; channel = 0; - maxChannels = channelGroups->GetLastValidChannel(); + maxChannels = lastValidChannel; timeout = Setup.ChannelEntryTimeout; - startTime = cTimeMs::Now(); + startTime = 0; SetPixmaps(); Draw(); } diff --git a/channeljump.h b/channeljump.h index 67d810d..50b80e6 100644 --- a/channeljump.h +++ b/channeljump.h @@ -18,7 +18,7 @@ private: void Draw(void); cString BuildChannelString(void); public: - cChannelJump(cChannelGroups *channelGroups); + cChannelJump(cChannelGroups *channelGroups, int lastValidChannel); virtual ~cChannelJump(void); void Set(int num); void DrawText(void); diff --git a/tvguideosd.c b/tvguideosd.c index ee239de..a3f56d4 100644 --- a/tvguideosd.c +++ b/tvguideosd.c @@ -672,9 +672,14 @@ void cTvGuideOsd::TimeJump(int mode) { osdManager.flush(); } +int cTvGuideOsd::GetLastValidChannel(void) { + return channelGroups->GetLastValidChannel(); +} + void cTvGuideOsd::ChannelJump(int num) { if (!channelJumper) { - channelJumper = new cChannelJump(channelGroups); + int lastValidChannel = GetLastValidChannel(); + channelJumper = new cChannelJump(channelGroups, lastValidChannel); } channelJumper->Set(num); channelJumper->DrawText(); diff --git a/tvguideosd.h b/tvguideosd.h index 70dd7cd..a3caa0d 100644 --- a/tvguideosd.h +++ b/tvguideosd.h @@ -26,6 +26,7 @@ private: cFooter *footer; cRecMenuView *recMenuView; cChannelJump *channelJumper; + int GetLastValidChannel(void); bool detailViewActive; void drawOsd(); void readChannels(const cChannel *channelStart);