how to stop timer?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Klaus Schmidinger wrote:
> Markus Hahn wrote:
> 
>> Hi there
>> A full or not available disk causes  a endless lopp of TimerStart and 
>> EmergencyExit if a timer is active.
>>
>> To avoid this, I added this code to cRecordControls::Start() :
>> menu.c:3518
>> bool cRecordControls::Start(cTimer *Timer, bool Pause)
>> {
>>   ChangeState();
>>   if (!VideoFileSpaceAvailable(300))
>>   {
>>      Skins.Message(mtInfo, tr("No disk space!"));
>>      if (Timer)
>>        Timer->Delete();
>>
>>        return false;
>>   }
>>
>> Now the message pops up endlessly, because the timer is still 
>> aktive??? Any suggestions?
> 
> 
> 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
>               }

After some more thinking I believe cRecordControls::Start() actually
is the better place for this check, since it is called several times.

Please try the attached patch.

Klaus


[Index of Archives]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Big List of Linux Books]     [Fedora Users]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux