Klaus Schmidinger wrote: > 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. Sorry, forgot the attachment... Klaus -------------- next part -------------- A non-text attachment was scrubbed... Name: vdr-1.3.39-nodiskspace.diff Type: text/x-patch Size: 2644 bytes Desc: not available Url : http://www.linuxtv.org/pipermail/vdr/attachments/20060120/00b08ee5/vdr-1.3.39-nodiskspace.bin