// // Programmer: Craig Stuart Sapp // Creation Date: Sun May 18 17:46:47 GMT-0800 1997 // Last Modified: Sun May 18 17:46:50 GMT-0800 1997 // Filename: ...sig/maint/code/Filter/Downsample/Downsample.cpp // Web Address: http://sig.sapp.org/src/sigSignal/Downsample.cpp // Documentation: http://sig.sapp.org/doc/classes/Downsample // Syntax: C++ // #include "Downsample.h" #include ////////////////////////////// // // Downsample::Downsample -- // Downsample::Downsample(int aPeriod) { setName("Downsample"); brandname = GENERATOR; // treat as a generator for Action class setPeriod(aPeriod); trigger(); } ////////////////////////////// // // Downsample::~Downsample -- // Downsample::~Downsample() { } ////////////////////////////// // // Downsample::action -- // void Downsample::action(void) { if (periodCount % period == 0) { periodCount = 0; inputs.tick(tickNumber++); } periodCount++; } ////////////////////////////// // // Downsample::getPeriod -- // int Downsample::getPeriod(void) { return period; } ////////////////////////////// // // Downsample::output -- // sampleType Downsample::output(int channel) { return inputs[channel]; } ////////////////////////////// // // Downsample::output -- // default value: counter = -1 // void Downsample::setPeriod(int aPeriod, int counter) { if (aPeriod > 0) { period = aPeriod; } else { cerr << "Error in " << getName() << ". cannot set period <= 0." << " Ignoring value: " << aPeriod << endl; } if (counter >= 0) { trigger(counter); } } ////////////////////////////// // // Downsample::tick -- // void Downsample::tick(int newTickNumber) { if (tickNumber != newTickNumber) { tickNumber = newTickNumber; action(); } } ////////////////////////////// // // Downsample::trigger -- // default value: counter = 0 // void Downsample::trigger(int counter) { periodCount = counter; } // md5sum: 3155c0dff073952fa1a935489c3ccb69 Downsample.cpp [20010708]