public bool WriteModifiedTALBlocks() { if (OpenReadOnly) { throw new ArgumentException(EdfConstants.FileIsReadOnly); } if (!Active) { return(false); } int i = 0; bool writeOk = true; if (AnnotationSignalNrs.Count > 0) { while (writeOk && (i < _tal.BlockCount)) { EdfPlusAnnotationDataBlock talBlock; if (TAL.BlockInMemory(i)) { talBlock = TAL.Block(i); if (talBlock.Modified) { WriteTALs(this, talBlock.DataRecNr, ref writeOk); } } i++; } } return(writeOk); }
public override void ReadDataBlock(int blockNr) { base.ReadDataBlock(blockNr); Debug.Assert(DataBuffer != null, "Object not initialised"); if (!DoReadDataBlock(blockNr, ref _dataBuffer)) { throw new DataFileReadDataException(DataFileConsts.DataFileReadData); } if (!TAL.BlockInMemory(blockNr)) { bool b = true; DoReadTALs(blockNr, DataBuffer, ref b); if (!b) { throw new DataFileReadDataException(DataFileConsts.DataFileErrorReadingTAL); } } }
public override void WriteDataBlock(int blockNr) { base.WriteDataBlock(blockNr); Debug.Assert(DataBuffer != null, "Object is not initialized"); // Update TAL list if (!TAL.BlockInMemory(blockNr)) { if (!FileInfo.SignalDataIsContinuous) { throw new DataFileNotContinuousException(DataFileConsts.DataFileNotContinuous); } TAL.AddBlock(blockNr, blockNr * FileInfo.SampleRecDuration); if (blockNr == 0) { FileInfo.FirstDataBlockOnset = 0; } } // Write data to file if (!DoWriteDataBlock(blockNr, DataBuffer)) { throw new DataFileWriteDataException(DataFileConsts.DataFileWriteData); } }