From e0d676518240561f66d26cb22371de70508dbfbf Mon Sep 17 00:00:00 2001 From: Rainer Blickle Date: Mon, 19 Jul 2010 11:44:42 +0200 Subject: Change handling of back-key in submenues and change Version --- menu.c | 7 +------ pvrinput.c | 2 +- submenu.c | 25 +++++++++++++------------ submenu.h | 17 +++++++++++------ 4 files changed, 26 insertions(+), 25 deletions(-) diff --git a/menu.c b/menu.c index aaefb3c..274e9fb 100644 --- a/menu.c +++ b/menu.c @@ -105,12 +105,7 @@ eOSState cPvrMenuSetup::ProcessKey(eKeys Key) { state = cOsdMenu::ProcessKey(Key); } } else { - if (Key == kOk) { - // next menu has to be pvrinput plugin menu, not settings menu - CloseSubMenu(); - } else { - state = cOsdMenu::ProcessKey(Key); - } + state = cOsdMenu::ProcessKey(Key); } return state; } diff --git a/pvrinput.c b/pvrinput.c index 8e24eb9..035f176 100644 --- a/pvrinput.c +++ b/pvrinput.c @@ -6,7 +6,7 @@ #endif #endif -static const char *VERSION = "2010-04-14"; +static const char *VERSION = "2010-07-19-rb_osd_submenus"; static const char *DESCRIPTION = tr("use Hauppauge PVR as input device"); static const char *MAINMENUENTRY = tr("PVR picture settings"); diff --git a/submenu.c b/submenu.c index fd7122c..84551d7 100644 --- a/submenu.c +++ b/submenu.c @@ -117,8 +117,7 @@ static const char *exceptionVolumeForCard[] = { }; cPvrMenuGeneral::cPvrMenuGeneral(cPvrSetup *setupObject) : - cOsdMenu(tr("Setup.pvrinput$General Parameters"), - 33/*same col value as in cMenuSetupPage::cMenuSetupPage*/), + cPvrSubMenu(tr("Setup.pvrinput$General Parameters")), setup(setupObject) { Add(new cMenuEditIntItem(tr("Setup.pvrinput$Log level"), &setup->LogLevel, 0, 4)); @@ -130,8 +129,7 @@ cPvrMenuGeneral::cPvrMenuGeneral(cPvrSetup *setupObject) : cPvrMenuVideo::cPvrMenuVideo(cPvrSetup *setupObject) : - cOsdMenu(tr("Setup.pvrinput$Video Parameters"), - 33/*same col value as in cMenuSetupPage::cMenuSetupPage*/), + cPvrSubMenu(tr("Setup.pvrinput$Video Parameters")), setup(setupObject) { Add(new cMenuEditIntItem(tr("Setup.pvrinput$Brightness"), &setup->Brightness.value, 0, 100)); @@ -160,8 +158,7 @@ cPvrMenuVideo::cPvrMenuVideo(cPvrSetup *setupObject) : } cPvrMenuAudio::cPvrMenuAudio(cPvrSetup *setupObject) : - cOsdMenu(tr("Setup.pvrinput$Audio Parameters"), - 33/*same col value as in cMenuSetupPage::cMenuSetupPage*/), + cPvrSubMenu(tr("Setup.pvrinput$Audio Parameters")), setup(setupObject) { Add(new cMenuEditIntItem(tr("Setup.pvrinput$Common Audio volume (TV)"), &setup->AudioVolumeTVCommon.value, 0, 100)); @@ -192,8 +189,7 @@ cPvrMenuAudio::cPvrMenuAudio(cPvrSetup *setupObject) : } cPvrMenuMpegFilter::cPvrMenuMpegFilter(cPvrSetup *setupObject) : - cOsdMenu(tr("Setup.pvrinput$MPEG Filter Parameters"), - 33/*same col value as in cMenuSetupPage::cMenuSetupPage*/), + cPvrSubMenu(tr("Setup.pvrinput$MPEG Filter Parameters")), setup(setupObject) { static const char *FilterModes[2]; @@ -271,8 +267,7 @@ cPvrMenuMpegFilter::cPvrMenuMpegFilter(cPvrSetup *setupObject) : } cPvrMenuExperts::cPvrMenuExperts(cPvrSetup *setupObject) : - cOsdMenu(tr("Setup.pvrinput$Expert Parameters"), - 33/*same col value as in cMenuSetupPage::cMenuSetupPage*/), + cPvrSubMenu(tr("Setup.pvrinput$Expert Parameters")), setup(setupObject) { Add(new cMenuEditStraItem(tr("Setup.pvrinput$Stream type"), &setup->StreamType.value, 2, streamType)); @@ -283,8 +278,7 @@ cPvrMenuExperts::cPvrMenuExperts(cPvrSetup *setupObject) : } cPvrMenuHdPvr::cPvrMenuHdPvr(cPvrSetup *setupObject) : - cOsdMenu(tr("Setup.pvrinput$HDPVR Parameters"), - 33/*same col value as in cMenuSetupPage::cMenuSetupPage*/), + cPvrSubMenu(tr("Setup.pvrinput$HDPVR Parameters")), setup(setupObject) { static const char *HDPVR_AudioEncodings[2]; @@ -300,3 +294,10 @@ cPvrMenuHdPvr::cPvrMenuHdPvr(cPvrSetup *setupObject) : Add(new cMenuEditStraItem(tr("Setup.pvrinput$HDPVR audio input"), &setup->HDPVR_AudioInput, 3, HDPVR_AudioInputs)); } + +eOSState cPvrSubMenu::ProcessKey(eKeys Key) { + if (Key == kOk) { + return osBack; + } + return cOsdMenu::ProcessKey(Key); +} diff --git a/submenu.h b/submenu.h index 60b454a..b4eb5c3 100644 --- a/submenu.h +++ b/submenu.h @@ -28,8 +28,13 @@ #include "common.h" #include +class cPvrSubMenu : public cOsdMenu { +public: + cPvrSubMenu(const char* text) : cOsdMenu(text, 33) { } + virtual eOSState ProcessKey(eKeys Key); +}; -class cPvrMenuGeneral : public cOsdMenu { +class cPvrMenuGeneral : public cPvrSubMenu { private: /* Reference to the setup data object, mustn't be deleted within this Object */ cPvrSetup *setup; @@ -37,7 +42,7 @@ public: cPvrMenuGeneral(cPvrSetup *setupObject); }; -class cPvrMenuVideo : public cOsdMenu { +class cPvrMenuVideo : public cPvrSubMenu { private: /* Reference to the setup data object, mustn't be deleted within this Object */ cPvrSetup *setup; @@ -45,7 +50,7 @@ public: cPvrMenuVideo(cPvrSetup *setupObject); }; -class cPvrMenuAudio : public cOsdMenu { +class cPvrMenuAudio : public cPvrSubMenu { private: /* Reference to the setup data object, mustn't be deleted within this Object */ cPvrSetup *setup; @@ -53,7 +58,7 @@ public: cPvrMenuAudio(cPvrSetup *setupObject); }; -class cPvrMenuMpegFilter : public cOsdMenu { +class cPvrMenuMpegFilter : public cPvrSubMenu { private: /* Reference to the setup data object, mustn't be deleted within this Object */ cPvrSetup *setup; @@ -61,7 +66,7 @@ public: cPvrMenuMpegFilter(cPvrSetup *setupObject); }; -class cPvrMenuExperts : public cOsdMenu { +class cPvrMenuExperts : public cPvrSubMenu { private: /* Reference to the setup data object, mustn't be deleted within this Object */ cPvrSetup *setup; @@ -69,7 +74,7 @@ public: cPvrMenuExperts(cPvrSetup *setupObject); }; -class cPvrMenuHdPvr : public cOsdMenu { +class cPvrMenuHdPvr : public cPvrSubMenu { private: /* Reference to the setup data object, mustn't be deleted within this Object */ cPvrSetup *setup; -- cgit v1.2.3