/// <summary> /// Gets the data for a particular frame in the SOP instance. /// </summary> /// <param name="frameNumber">The 1-based number of the frame for which the data is to be retrieved.</param> /// <returns>An <see cref="ISopFrameData"/> containing frame-specific data.</returns> protected override ISopFrameData GetFrameData(int frameNumber) { if(_frameData == null) { lock(this.SyncLock) { if(_frameData == null) { var frameData = new ISopFrameData[this.NumberOfFrames]; for (int n = 0; n < frameData.Length; n++) frameData[n] = this.CreateFrameData(n + 1); _frameData = frameData; } } } return _frameData[frameNumber - 1]; }
/// <summary> /// Gets the data for a particular frame in the SOP instance. /// </summary> /// <param name="frameNumber">The 1-based number of the frame for which the data is to be retrieved.</param> /// <returns>An <see cref="ISopFrameData"/> containing frame-specific data.</returns> protected override ISopFrameData GetFrameData(int frameNumber) { if (_frameData == null) { lock (this.SyncLock) { if (_frameData == null) { var frameData = new ISopFrameData[this.NumberOfFrames]; for (int n = 0; n < frameData.Length; n++) { frameData[n] = this.CreateFrameData(n + 1); } _frameData = frameData; } } } return(_frameData[frameNumber - 1]); }
public FrameData(ISopFrameData realFrameData, SopDataSource parent) : base(realFrameData.FrameNumber, parent) { _realFrameData = realFrameData; }