00001 00026 #ifndef DOWNSAMPLEFILTER_H 00027 #define DOWNSAMPLEFILTER_H 00028 00029 #include <QList> 00030 #include <QObject> 00031 #include "datatypes/orientationdata.h" 00032 #include "filter.h" 00033 00041 class DownsampleFilter : public QObject, public Filter<TimedXyzData, DownsampleFilter, TimedXyzData> 00042 { 00043 Q_OBJECT 00044 Q_DISABLE_COPY(DownsampleFilter) 00045 Q_PROPERTY(unsigned int bufferSize READ bufferSize WRITE setBufferSize) 00046 Q_PROPERTY(int timeout READ timeout WRITE setTimeout) 00047 00048 public: 00049 00055 static FilterBase* factoryMethod() { return new DownsampleFilter; } 00056 00062 unsigned int bufferSize() const; 00063 00069 void setBufferSize(unsigned int size); 00070 00076 int timeout() const; 00077 00084 void setTimeout(int ms); 00085 00086 protected: 00090 DownsampleFilter(); 00091 00092 private: 00096 void filter(unsigned, const TimedXyzData*); 00097 00099 typedef QList<TimedXyzData> TimedXyzDownsampleBuffer; 00100 00101 unsigned int bufferSize_; 00102 long timeout_; 00103 TimedXyzDownsampleBuffer buffer_; 00104 }; 00105 00106 #endif // DOWNSAMPLEFILTER_H