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