[vdr] Status plugin interface bug?

Klaus Schmidinger Klaus.Schmidinger at cadsoft.de
Mon Oct 31 12:05:46 CET 2005


Bernd Juraschek wrote:
> Hi,
> 
> recently I got the evil VDSB error (with kernel 2.4.X :-(). After self
> restarting VDR continued the recording - but this fails with the "no
> tuner lock" error.
> 
> cStatus::Recording() was not called in this case. But the function was
> called to signal the end of this (never really startet)  timer. Therefore
> there is a imbalance between start and stop status notifications - which
> may lead to some plugin misbehavior :-(
> 
> I'was not able to find quickly the way cTimer::Stop() was executed so I
> have no solution yet ...

Please try the following:

- add a funtion

   bool IsAttached(void) { return device != NULL; }

   to cReceiver (in receiver.h)

- call this function in cRecordControl::Stop():

void cRecordControl::Stop(void)
{
   if (timer) {
      bool WasAttached = recorder->IsAttached();            // new line
      DELETENULL(recorder);
      timer->SetRecording(false);
      timer = NULL;
      if (WasAttached) {                                    // new line
         cStatus::MsgRecording(device, NULL);
         cRecordingUserCommand::InvokeCommand(RUC_AFTERRECORDING, fileName);
         }                                                  // new line
      }
}


Let me know if this helps.

Klaus



More information about the vdr mailing list