void TVRec::RingBufferChanged(RingBuffer *rb, ProgramInfo *pginfo)
{
VERBOSE(VB_IMPORTANT, LOC + "RingBufferChanged() cur_rb("
<<ringBuffer<<") curRecording("<<curRecording<<") lastRec("<<lastRecording<<") ");
SetRingBuffer(rb);
if (pginfo)
{
// lastRecording = curRecording; // not enough!
if (curRecording)
{
FinishedRecording(curRecording);
curRecording->MarkAsInUse(false);
delete curRecording;
}
lastRecording = NULL; // This shouldn't be needed!?
curRecording = new ProgramInfo(*pginfo);
curRecording->MarkAsInUse(true, "recorder");
VERBOSE(VB_IMPORTANT, LOC + "RingBufferChanged() new rb("
<<ringBuffer<<") new curRecording("<<curRecording<<")");
// The address of curRecording has not changed!
}
}