/// <summary> /// Sets sample /// </summary> /// <param name="samples"></param> /// <param name="samplesPerSecond"></param> /// <param name="beginSample"> /// First sample to be shown. Default 0 /// </param> /// <param name="endSample"> /// Last+1 sample to be shown. /// -1 to be until last sample, /// default -1 /// (If set to 10, samples up to 9 will be considered. /// Concept stolen from C++ stl. ) /// </param> public void Fill(SampleRetriever sampleRetriever, long startPos, long endPos) { pictureGraph.DatalessColor = Color.PowderBlue; pictureFFT.Image = new Bitmap(pictureFFT.Width, pictureFFT.Height); using (Graphics g = Graphics.FromImage(pictureFFT.Image)) { g.FillRectangle(new SolidBrush(pictureGraph.DatalessColor), 0, 0, pictureFFT.Width, pictureFFT.Height); } // bufferedFFTImage = SetToColor(pictureFFT, Color.PowderBlue); this.sampleRetriever = sampleRetriever; this.samplePos = 0; this.sampleRetriever.BeginSample = startPos; this.sampleRetriever.EndSample = endPos; this.maxSampleValue = 0.0; this.sampleCollector = new SampleCollector(this.sampleRetriever); this.aggregator = new SampleAggregator(this.sampleCollector); pictureGraph.Count = (int)this.sampleCollector.ExpectedCount; this.aggregator.SamplesRetreived += new SampleRetriever.SamplesRetrievedDelegate(samplesAggregated); this.sampleCollector.SamplesRetreived += new SampleRetriever.SamplesRetrievedDelegate(samplesCollector_Retrieved); this.sampleCollector.SamplesRetrievingDone += new EventHandler(sampleCollector_SamplesRetrievingDone); this.sampleRetriever.Start(); }
public SampleAggregator(SampleCollector collector) { aggregatedSamples = new List <double>(); collector.SamplesRetreived += new SampleRetriever.SamplesRetrievedDelegate(collector_SamplesRetreived); collector.SamplesRetrievingDone += new EventHandler(collector_SamplesRetrievingDone); }