/// <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();
        }
예제 #2
0
 public SampleAggregator(SampleCollector collector)
 {
     aggregatedSamples                = new List <double>();
     collector.SamplesRetreived      += new SampleRetriever.SamplesRetrievedDelegate(collector_SamplesRetreived);
     collector.SamplesRetrievingDone += new EventHandler(collector_SamplesRetrievingDone);
 }