#ifndef INTG_H #define INTG_H #include "core/gtl_analog_data.h" #include "core/gtl_device.h" #include "math_global.h" namespace gtl { namespace math { class MATH_EXPORT intg : public gtl::analog_data { Q_OBJECT Q_PROPERTY(int taps READ taps WRITE set_taps NOTIFY taps_changed) // Q_PROPERTY(int delay READ delay WRITE set_delay NOTIFY delay_changed) Q_PROPERTY(qreal threshold READ threshold WRITE set_threshold NOTIFY threshold_changed) Q_PROPERTY(bool autonorm READ autonorm WRITE set_autonorm NOTIFY autonorm_changed) Q_PROPERTY(bool autoreset READ autoreset WRITE set_autoreset NOTIFY autoreset_changed) public: intg(gtl::analog_data* parent, bool is_hidden = false); ~intg(); int taps() const; // int delay() const; void reset(); qreal threshold() const; void set_threshold(qreal newThreshold); bool autonorm() const; void set_autonorm(bool newAutonorm); bool autoreset() const; void set_autoreset(bool newAutoreset); protected: virtual void set_data(std::vector::iterator begin, std::vector::iterator end) override; private: void init(); void process(std::vector::iterator begin, std::vector::iterator end); private: int _taps; qreal _threshold; bool _autonorm; bool _autoreset; // int _delay; std::vector *_delays = nullptr; gtl::device* _device; public slots: void set_taps(int value); // void set_delay(int value); signals: void taps_changed(); // void delay_changed(); void threshold_changed(); void autonorm_changed(); void autoreset_changed(); }; } } #endif // INTG_H