summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkamel5 <vdr.kamel5 (at) gmx (dot) net>2019-07-18 16:41:04 +0200
committerkamel5 <vdr.kamel5 (at) gmx (dot) net>2019-07-19 11:38:04 +0200
commit31f72f2ad82506cd33e25ea3ab2da415d25fc9cb (patch)
tree5bb5f7fb1c494aed70dcef6ae4980b1290b18216
parenta1aa30025958754feadc4313f56b63cc1d260fc0 (diff)
downloadvdr-plugin-tvguide-31f72f2ad82506cd33e25ea3ab2da415d25fc9cb.tar.gz
vdr-plugin-tvguide-31f72f2ad82506cd33e25ea3ab2da415d25fc9cb.tar.bz2
Rework cRecMenuItemChannelChooser
-rw-r--r--recmenuitem.c32
-rw-r--r--recmenuitem.h8
-rw-r--r--recmenus.c31
3 files changed, 29 insertions, 42 deletions
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));