diff options
-rw-r--r-- | menu.c | 7 | ||||
-rw-r--r-- | pvrinput.c | 2 | ||||
-rw-r--r-- | submenu.c | 25 | ||||
-rw-r--r-- | submenu.h | 17 |
4 files changed, 26 insertions, 25 deletions
@@ -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; } @@ -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"); @@ -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); +} @@ -28,8 +28,13 @@ #include "common.h" #include <vdr/osdbase.h> +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; |