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);
         }
     }
 }
Beispiel #3
0
 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);
     }
 }