[vdr] how to stop timer?
Klaus Schmidinger
Klaus.Schmidinger at cadsoft.de
Thu Jan 19 18:19:00 CET 2006
Markus Hahn wrote:
> Am Donnerstag, 19. Januar 2006 18:04 schrieb Klaus Schmidinger:
>
>
>>Maybe a better place for this would be in the main VDR loop:
>>
>> // Start new recordings:
>> if (VideoFileSpaceAvailable(300)) {
>> cTimer *Timer = Timers.GetMatch(Now);
>> if (Timer) {
>> if (!cRecordControls::Start(Timer))
>> Timer->SetPending(true);
>> else
>> LastTimerChannel = Timer->Channel()->Number();
>> }
>> }
>> else if (/*TimeSinceLastNoDiskSpaceMessageGreaterLimit*/) {
>> Skins.Message(mtWarning, tr("No disk space!"));
>> // reset timeout limit
>> }
>>
>>BTW: brutally deleting that timer is probably not a good idea.
>>This could be a repeating timer, or disk space could become
>>available later. Also, the cRecordControls::Start() function is called
>>from a loop through all timers, so if you delete it, strange things
>>might happen ;-)
>>
>
>
> Yes, I agree but looping through all timers objects,
> and t->SetFlags(tfNone);
> ( for prove of concept ;)
> dosen`t have any effect at all!?
Well, that might work, since you disable the timer.
But that would disable them for good, and would lose
the VPS bit and everything else.
> But thanks for the code. I will try this right now.
I guess I'll also implement this in the next version - if the disk
is full there is actually no point in starting a recording.
Thanks for the suggestion.
Klaus
More information about the vdr
mailing list