summaryrefslogtreecommitdiff
path: root/zappilotosd.c
diff options
context:
space:
mode:
Diffstat (limited to 'zappilotosd.c')
-rw-r--r--zappilotosd.c24
1 files changed, 21 insertions, 3 deletions
diff --git a/zappilotosd.c b/zappilotosd.c
index eb5036a..898a921 100644
--- a/zappilotosd.c
+++ b/zappilotosd.c
@@ -268,6 +268,7 @@ void cZappilotOsd::Show()
{
// find the actual current
cChannel *Channel = Channels.GetByNumber(cDevice::PrimaryDevice()->CurrentChannel());
+ currentChannel = Channels.GetByNumber(cDevice::PrimaryDevice()->CurrentChannel());
if (Channel)
{
@@ -367,6 +368,13 @@ eOSState cZappilotOsd::ProcessKey(eKeys Key)
group = channel->Index()-1;
break;
}
+ else if (config.fastbrowsealt)
+ {
+ // Scroll back in time
+ UpdateEPGInfo(3);
+ DrawMenu(0,0);
+ return osContinue;
+ }
case kRight|k_Repeat:
case kRight:
if (config.fastbrowse)
@@ -377,6 +385,13 @@ eOSState cZappilotOsd::ProcessKey(eKeys Key)
group = channel->Index()-1;
break;
}
+ else if (config.fastbrowsealt)
+ {
+ // Scroll forward in time
+ UpdateEPGInfo(2);
+ DrawMenu(0,0);
+ return osContinue;
+ }
else
{
if (group < 0)
@@ -678,10 +693,13 @@ void cZappilotOsd::CursorDown()
void cZappilotOsd::CursorOK()
{
DrawMenu(0,2);
- cChannel *Channel = Channels.GetByNumber(PilotChannelNumber);
- if (Channel)
+ if (currentChannel != Channels.GetByNumber(PilotChannelNumber))
{
- cDevice::PrimaryDevice()->SwitchChannel(Channel, true);
+ cChannel *Channel = Channels.GetByNumber(PilotChannelNumber);
+ if (Channel)
+ {
+ cDevice::PrimaryDevice()->SwitchChannel(Channel, true);
+ }
}
}