48 lines
1.1 KiB
C
48 lines
1.1 KiB
C
|
#ifndef FREQ_H
|
||
|
#define FREQ_H
|
||
|
|
||
|
#include <QDebug>
|
||
|
|
||
|
#include "gtl_math_analog_value.h"
|
||
|
|
||
|
#include "math_global.h"
|
||
|
|
||
|
#include <set>
|
||
|
|
||
|
namespace gtl
|
||
|
{
|
||
|
namespace math
|
||
|
{
|
||
|
class MATH_EXPORT freq : public analog_value
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
Q_PROPERTY(qreal dc READ dc WRITE set_dc NOTIFY dc_changed)
|
||
|
public:
|
||
|
freq(gtl::analog_data *data);
|
||
|
|
||
|
virtual void set_time(qreal value) override;
|
||
|
qreal dc() const;
|
||
|
void set_dc(qreal value);
|
||
|
|
||
|
private:
|
||
|
qreal _sum;
|
||
|
std::set<int> _fronts;
|
||
|
qreal _dc;
|
||
|
|
||
|
private:
|
||
|
virtual void before_copying_data(std::vector<qreal>::iterator begin, std::vector<qreal>::iterator end) override;
|
||
|
virtual void after_copying_data(std::vector<qreal>::iterator begin, std::vector<qreal>::iterator end) override;
|
||
|
|
||
|
void log_fronts(QString msg, std::set<int>::iterator begin, std::set<int>::iterator end);
|
||
|
|
||
|
protected slots:
|
||
|
virtual void data_changed() override;
|
||
|
|
||
|
signals:
|
||
|
void dc_changed();
|
||
|
};
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#endif // FREQ_H
|