diff --git a/recmenuitem.c b/recmenuitem.c index cc7d7f8..83e7dd7 100644 --- a/recmenuitem.c +++ b/recmenuitem.c @@ -1943,14 +1943,21 @@ eRecMenuState cRecMenuItemEvent::ProcessKey(eKeys Key) { // --- cRecMenuItemChannelChooser ------------------------------------------------------- cRecMenuItemChannelChooser::cRecMenuItemChannelChooser(cString text, - const cChannel *initialChannel, bool active, int *callback, eRecMenuState action) { selectable = true; this->text = text; - this->channel = initialChannel; - if (initialChannel) +#if VDRVERSNUM >= 20301 + { + LOCK_CHANNELS_READ; + channels = Channels; + } +#else + channels = &Channels; +#endif + this->channel = channels->GetByNumber(*callback); + if (callback) initialChannelSet = true; else initialChannelSet = false; @@ -2029,12 +2036,6 @@ eRecMenuState cRecMenuItemChannelChooser::ProcessKey(eKeys Key) { if (!channel) return rmsConsumed; const cChannel *prev = channel; -#if VDRVERSNUM >= 20301 - LOCK_CHANNELS_READ; - const cChannels* channels = Channels; -#else - const cChannels* channels = &Channels; -#endif const cChannel *firstChannel = channels->First(); if(firstChannel->GroupSep()) firstChannel = channels->Next(firstChannel); @@ -2060,12 +2061,6 @@ eRecMenuState cRecMenuItemChannelChooser::ProcessKey(eKeys Key) { break; } case kRight: { fresh = true; -#if VDRVERSNUM >= 20301 - LOCK_CHANNELS_READ; - const cChannels* channels = Channels; -#else - const cChannels* channels = &Channels; -#endif if (!channel) { channel = channels->First(); if(channel->GroupSep()) @@ -2094,12 +2089,7 @@ eRecMenuState cRecMenuItemChannelChooser::ProcessKey(eKeys Key) { fresh = false; } channelNumber = channelNumber * 10 + (Key - k0); -#if VDRVERSNUM >= 20301 - LOCK_CHANNELS_READ; - const cChannel *chanNew = Channels->GetByNumber(channelNumber); -#else - const cChannel *chanNew = Channels.GetByNumber(channelNumber); -#endif + chanNew = channels->GetByNumber(channelNumber); if (chanNew) { channel = chanNew; DrawValue(); diff --git a/recmenuitem.h b/recmenuitem.h index 9c7c261..ef1feee 100644 --- a/recmenuitem.h +++ b/recmenuitem.h @@ -496,6 +496,13 @@ public: class cRecMenuItemChannelChooser : public cRecMenuItem { private: cString text; +#if VDRVERSNUM >= 20301 + const cChannels *channels; + const cChannel *chanNew; +#else + cChannels *channels; + cChannel *chanNew; +#endif const cChannel *channel; int channelNumber; int *callback; @@ -505,7 +512,6 @@ private: void DrawValue(void); public: cRecMenuItemChannelChooser (cString text, - const cChannel *initialChannel, bool active = false, int *callback = NULL, eRecMenuState action = rmsNotConsumed); diff --git a/recmenus.c b/recmenus.c index b313727..57b28aa 100644 --- a/recmenus.c +++ b/recmenus.c @@ -523,11 +523,7 @@ cRecMenuSeriesTimer::cRecMenuSeriesTimer(const cChannel *initialChannel, const c SetHeader(infoItem); AddMenuItem(new cRecMenuItemBool(tr("Timer Active"), timerActive, false, &timerActive)); -#if VDRVERSNUM >= 20301 - AddMenuItem(new cRecMenuItemChannelChooser(tr("Channel"), initialChannel, false, &channel)); -#else - AddMenuItem(new cRecMenuItemChannelChooser(tr("Channel"), (cChannel*)initialChannel, false, &channel)); -#endif + AddMenuItem(new cRecMenuItemChannelChooser(tr("Channel"), false, &channel)); AddMenuItem(new cRecMenuItemTime(tr("Series Timer start time"), start, false, &start)); AddMenuItem(new cRecMenuItemTime(tr("Series Timer stop time"), stop, false, &stop)); AddMenuItem(new cRecMenuItemDayChooser(tr("Days to record"), dayOfWeek, false, &dayOfWeek)); @@ -730,6 +726,13 @@ cRecMenuSearchTimerEdit::cRecMenuSearchTimerEdit(cTVGuideSearchTimer searchTimer dayOfWeek = DayOfWeek(sT.dayOfWeek); indent = " "; + if (sT.useChannel == 1) { + startChannel = (sT.channelMin) ? sT.channelMin->Number() : 0; + stopChannel = (sT.channelMax) ? sT.channelMax->Number() : 0; + if (startChannel == 0) startChannel = 1; + if (stopChannel == 0) stopChannel = 1; + } + sT.GetSearchModes(&searchModes); sT.GetUseChannelModes(&useChannelModes); sT.GetCompareDateModes(&compareDateModes); @@ -828,20 +831,8 @@ void cRecMenuSearchTimerEdit::CreateMenuItems(void) { // mainMenuItems.push_back(new cRecMenuItemBool(tr("Use content descriptor"), sT.useContentDescriptors, false, &sT.useContentDescriptors, rmsSearchTimerSave)); mainMenuItems.push_back(new cRecMenuItemSelect(tr("Use channel"), useChannelModes, sT.useChannel, false, &sT.useChannel, rmsSearchTimerSave, true)); if (sT.useChannel == 1) { - startChannel = (sT.channelMin) ? sT.channelMin->Number() : 0; - stopChannel = (sT.channelMax) ? sT.channelMax->Number() : 0; - if (startChannel == 0) startChannel = 1; - if (stopChannel == 0) stopChannel = 1; -#if VDRVERSNUM >= 20301 - { - LOCK_CHANNELS_READ; - mainMenuItems.push_back(new cRecMenuItemChannelChooser(cString::sprintf("%s%s", *indent, tr("from channel")), Channels->GetByNumber(startChannel), false, &startChannel, rmsSearchTimerSave)); - mainMenuItems.push_back(new cRecMenuItemChannelChooser(cString::sprintf("%s%s", *indent, tr("to channel")), Channels->GetByNumber(stopChannel), false, &stopChannel, rmsSearchTimerSave)); - } -#else - mainMenuItems.push_back(new cRecMenuItemChannelChooser(cString::sprintf("%s%s", *indent, tr("from channel")), Channels.GetByNumber(startChannel), false, &startChannel, rmsSearchTimerSave)); - mainMenuItems.push_back(new cRecMenuItemChannelChooser(cString::sprintf("%s%s", *indent, tr("to channel")), Channels.GetByNumber(stopChannel), false, &stopChannel, rmsSearchTimerSave)); -#endif + mainMenuItems.push_back(new cRecMenuItemChannelChooser(cString::sprintf("%s%s", *indent, tr("from channel")), false, &startChannel, rmsSearchTimerSave)); + mainMenuItems.push_back(new cRecMenuItemChannelChooser(cString::sprintf("%s%s", *indent, tr("to channel")), false, &stopChannel, rmsSearchTimerSave)); } else if ((sT.useChannel == 2) && (channelgroups.size() > 0)) { mainMenuItems.push_back(new cRecMenuItemSelect(cString::sprintf("%s%s", *indent, tr("Channel group")), channelgroups, channelgroupIndex, false, &channelgroupIndex, rmsSearchTimerSave, false)); @@ -1211,7 +1202,7 @@ cRecMenuSearch::cRecMenuSearch(std::string searchString, bool withOptions) { cTVGuideSearchTimer searchTimer; searchTimer.GetSearchModes(&searchModes); AddMenuItemInitial(new cRecMenuItemSelect(tr("Search Mode"), searchModes, 0, false, &mode)); - AddMenuItemInitial(new cRecMenuItemChannelChooser(tr("Channel to Search"), NULL, false, &channelNr)); + AddMenuItemInitial(new cRecMenuItemChannelChooser(tr("Channel to Search"), false, &channelNr)); AddMenuItemInitial(new cRecMenuItemBool(tr("Search in title"), true, false, &useTitle)); AddMenuItemInitial(new cRecMenuItemBool(tr("Search in Subtitle"), true, false, &useSubTitle)); AddMenuItemInitial(new cRecMenuItemBool(tr("Search in Description"), false, false, &useDescription));