Fixed the SVDRP command CLRE for a single channel in case there are events that have a timer

This commit is contained in:
Klaus Schmidinger 2012-01-12 15:11:50 +01:00
parent 70d4e5105b
commit 4bd9756caf
3 changed files with 9 additions and 1 deletions

View File

@ -2492,6 +2492,8 @@ Timo Eskola <timo@tolleri.net>
for implementing sending all frames to devices that can handle them in fast forward for implementing sending all frames to devices that can handle them in fast forward
trick speeds trick speeds
for implementing the setup option "Recording/Pause key handling" for implementing the setup option "Recording/Pause key handling"
for fixing the SVDRP command CLRE for a single channel in case there are events
that have a timer
Elias Luttinen <el@iki.fi> Elias Luttinen <el@iki.fi>
for improving the description of where logging goes in the INSTALL file for improving the description of where logging goes in the INSTALL file

View File

@ -6816,3 +6816,5 @@ Video Disk Recorder Revision History
- Fixed cConfig::Load() for g++ version 4.7.0 (thanks to Ville Skyttä). - Fixed cConfig::Load() for g++ version 4.7.0 (thanks to Ville Skyttä).
- Fixed a possible memory corruption in cTsToPes::GetPes() in case of broken - Fixed a possible memory corruption in cTsToPes::GetPes() in case of broken
TS packets, e.g. when switching channels. TS packets, e.g. when switching channels.
- Fixed the SVDRP command CLRE for a single channel in case there are events
that have a timer (thanks to Timo Eskola).

View File

@ -10,7 +10,7 @@
* and interact with the Video Disk Recorder - or write a full featured * and interact with the Video Disk Recorder - or write a full featured
* graphical interface that sits on top of an SVDRP connection. * graphical interface that sits on top of an SVDRP connection.
* *
* $Id: svdrp.c 2.12 2011/12/04 13:58:33 kls Exp $ * $Id: svdrp.c 2.13 2012/01/12 15:02:46 kls Exp $
*/ */
#include "svdrp.h" #include "svdrp.h"
@ -583,6 +583,10 @@ void cSVDRP::CmdCLRE(const char *Option)
} }
} }
if (Schedule) { if (Schedule) {
for (cTimer *Timer = Timers.First(); Timer; Timer = Timers.Next(Timer)) {
if (ChannelID == Timer->Channel()->GetChannelID().ClrRid())
Timer->SetEvent(NULL);
}
Schedule->Cleanup(INT_MAX); Schedule->Cleanup(INT_MAX);
cEitFilter::SetDisableUntil(time(NULL) + EITDISABLETIME); cEitFilter::SetDisableUntil(time(NULL) + EITDISABLETIME);
Reply(250, "EPG data of channel \"%s\" cleared", Option); Reply(250, "EPG data of channel \"%s\" cleared", Option);