From b8bde0422c5e2db621dd3b144bf50c217ff47e1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antti=20Sepp=C3=A4l=C3=A4?= Date: Sat, 29 Sep 2007 12:33:48 +0000 Subject: [PATCH] Switch channel when OK is pressed in channel editor. --- setup.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/setup.c b/setup.c index 79340d9..4bd80f5 100644 --- a/setup.c +++ b/setup.c @@ -3,7 +3,7 @@ * * See the README file for copyright information and how to reach the author. * - * $Id: setup.c,v 1.11 2007/09/28 16:44:59 rahrenbe Exp $ + * $Id: setup.c,v 1.12 2007/09/29 12:33:48 ajhseppa Exp $ */ #include @@ -285,6 +285,7 @@ protected: eOSState Edit(void); eOSState New(void); eOSState Delete(void); + eOSState Switch(void); public: cIptvMenuChannels(); @@ -332,6 +333,16 @@ void cIptvMenuChannels::Propagate(void) Channels.SetModified(true); } +eOSState cIptvMenuChannels::Switch(void) +{ + if (HasSubMenu() || Count() == 0) + return osContinue; + cChannel *ch = GetChannel(Current()); + if (ch) + return cDevice::PrimaryDevice()->SwitchChannel(ch, true) ? osEnd : osContinue; + return osEnd; +} + eOSState cIptvMenuChannels::Edit(void) { if (HasSubMenu() || Count() == 0) @@ -401,7 +412,7 @@ eOSState cIptvMenuChannels::ProcessKey(eKeys Key) default: if (state == osUnknown) { switch (Key) { - case kOk: + case kOk: return Switch(); case kRed: return Edit(); case kGreen: return New(); case kYellow: return Delete();