[vdr] how to stop timer?

Klaus Schmidinger Klaus.Schmidinger at cadsoft.de
Sat Jan 21 11:05:11 CET 2006


Klaus Schmidinger wrote:
> Klaus Schmidinger wrote:
> 
>> ...
>>
>>> 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.
> 
> 
> It just crossed my mind that with the previous modification
> it would no longer be possible for a timer with a higher
> priority to force deletion of existing recordings with
> lower priority. Therefore the attached patch (to be applied
> after the previous one) makes sure AssertFreeDiskSpace()
> is called before checking for free disk space.

Ok, one more small detail:


--- menu.c      2006/01/20 17:19:46     1.398
+++ menu.c      2006/01/21 10:02:19
@@ -3524,8 +3524,10 @@
  {
    static time_t LastNoDiskSpaceMessage = 0;
    int FreeMB = 0;
-  if (Timer)
-     AssertFreeDiskSpace(Timer->Priority(), true);
+  if (Timer) {
+     AssertFreeDiskSpace(Timer->Priority(), !Timer->Pending());
+     Timer->SetPending(true);
+     }
    VideoDiskSpace(&FreeMB);
    if (FreeMB < MINFREEDISK) {
       if (!Timer || time(NULL) - LastNoDiskSpaceMessage > NODISKSPACEDELTA) {


Otherwise AssertFreeDiskSpace() would issue too many messages.

Since my disk is normally not full, it's hard for me to test
this under real live conditions. So maybe somebody with a
notoriously full disk should do some testing here.

Klaus



More information about the vdr mailing list