/// <summary>
        /// Returns all available samples. Only returns samples every SlidingWindowInterval.
        /// </summary>
        /// <param name="currentTicks">The current time</param>
        /// <returns>An enumerable of SampleData results. Usually, this will only return none or one item.</returns>
        public virtual IEnumerable <SampleData> GetSamples(long currentTicks)
        {
            sampleSizeAggregator.Update(currentTicks);

            if (!LastUpdateTime.HasValue)
            {
                LastUpdateTime = currentTicks;
            }

            if ((reportDataWhenDisabled || isPlayingVideo) && currentTicks - LastUpdateTime.Value > slidingWindowInterval)
            {
                LastUpdateTime = currentTicks;
                return(GetSampleData());
            }
            else
            {
                return(Enumerable.Empty <SampleData>());
            }
        }