34 template <
typename TYPE>
38 Sampler(
int numSamples) : mSampleArraySize(numSamples), mSampleIndex(0), mAllSamplesReady(false)
40 mSamples =
new TYPE[numSamples];
41 for(
int i=0; i < numSamples; i++) {
53 mSamples[mSampleIndex] = sample;
54 if(++mSampleIndex >= mSampleArraySize) {
56 mAllSamplesReady =
true;
62 const int numSamples = mAllSamplesReady ? mSampleArraySize : mSampleIndex;
65 for(
int i=0; i < numSamples; i++) {
69 return (sum / numSamples);
74 int idx = (0 == mSampleIndex) ? (mSampleArraySize - 1) : (mSampleIndex - 1);
80 const int numSamples = mAllSamplesReady ? mSampleArraySize : mSampleIndex;
81 TYPE highest = mSamples[0];
83 for(
int i=0; i < numSamples; i++) {
84 if (highest < mSamples[i]) {
85 highest = mSamples[i];
94 const int numSamples = mAllSamplesReady ? mSampleArraySize : mSampleIndex;
95 TYPE lowest = mSamples[0];
97 for(
int i=0; i < numSamples; i++) {
98 if (lowest > mSamples[i]) {
108 inline int getSampleCount(
void)
const {
return mAllSamplesReady ? mSampleArraySize : mSampleIndex; }
109 inline TYPE
getSampleNum(
int idx)
const {
return idx < mSampleArraySize ? mSamples[idx] : 0; }
113 mAllSamplesReady =
false;
120 mSampleArraySize(0), mSampleIndex(0),
121 mAllSamplesReady(
false), mSamples(0)
125 const int mSampleArraySize;
127 bool mAllSamplesReady;
~Sampler()
Definition: sampler.hpp:46
void storeSample(const TYPE &sample)
Definition: sampler.hpp:51
Definition: sampler.hpp:35
int getMaxSampleCount(void) const
Definition: sampler.hpp:107
TYPE getAverage(void) const
Definition: sampler.hpp:60
TYPE getLatest(void) const
Definition: sampler.hpp:72
TYPE getHighest(void) const
Definition: sampler.hpp:78
bool allSamplesReady(void) const
Definition: sampler.hpp:106
TYPE getSampleNum(int idx) const
Definition: sampler.hpp:109
int getSampleCount(void) const
Definition: sampler.hpp:108
TYPE getLowest(void) const
Definition: sampler.hpp:92
Sampler(int numSamples)
Definition: sampler.hpp:38
void clear(void)
Definition: sampler.hpp:111