diff options
Diffstat (limited to 'menu_deftimercheckmethod.c')
-rw-r--r-- | menu_deftimercheckmethod.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/menu_deftimercheckmethod.c b/menu_deftimercheckmethod.c index 0476211..c776c43 100644 --- a/menu_deftimercheckmethod.c +++ b/menu_deftimercheckmethod.c @@ -142,9 +142,15 @@ void cMenuDefTimerCheckMethod::Set() Clear(); delete modes; - modes = new int[Channels.Count()]; +#if VDRVERSNUM > 20300 + LOCK_CHANNELS_READ; + const cChannels *vdrchannels = Channels; +#else + cChannels *vdrchannels = &Channels; +#endif + modes = new int[vdrchannels->Count()]; int i=0; - for (cChannel *channel = Channels.First(); channel; channel = Channels.Next(channel), i++) + for (const cChannel *channel = vdrchannels->First(); channel; channel = vdrchannels->Next(channel), i++) { if (!channel->GroupSep() && *channel->Name()) { @@ -164,7 +170,13 @@ eOSState cMenuDefTimerCheckMethod::ProcessKey(eKeys Key) case kOk: { int i=0; - for (cChannel *channel = Channels.First(); channel; channel = Channels.Next(channel), i++) +#if VDRVERSNUM > 20300 + LOCK_CHANNELS_READ; + const cChannels *vdrchannels = Channels; +#else + cChannels *vdrchannels = &Channels; +#endif + for (const cChannel *channel = vdrchannels->First(); channel; channel = vdrchannels->Next(channel), i++) if (!channel->GroupSep() && *channel->Name()) DefTimerCheckModes.SetMode(channel, modes[i]); DefTimerCheckModes.Save(); |