83 lines
2.5 KiB
C++
83 lines
2.5 KiB
C++
#ifndef SPEC_HARM_H
|
|
#define SPEC_HARM_H
|
|
|
|
#include <QObject>
|
|
#include <QJsonObject>
|
|
|
|
#include "script_global.h"
|
|
|
|
namespace gtl
|
|
{
|
|
namespace scr
|
|
{
|
|
class SCRIPT_EXPORT spec_harm : public QObject
|
|
{
|
|
Q_OBJECT
|
|
Q_PROPERTY(qreal freq READ freq CONSTANT)
|
|
Q_PROPERTY(qreal peak_freq READ peak_freq CONSTANT)
|
|
Q_PROPERTY(int color READ color WRITE set_color NOTIFY color_changed)
|
|
Q_PROPERTY(qreal weight READ weight WRITE set_weight NOTIFY weight_changed)
|
|
Q_PROPERTY(qreal amplitude READ amplitude NOTIFY amplitude_changed)
|
|
Q_PROPERTY(qreal level READ level NOTIFY amplitude_changed)
|
|
Q_PROPERTY(bool is_present READ is_present NOTIFY amplitude_changed)
|
|
Q_PROPERTY(qreal base READ base NOTIFY amplitude_changed)
|
|
Q_PROPERTY(qreal integral_index READ integral_index NOTIFY amplitude_changed)
|
|
Q_PROPERTY(qreal tolerance READ tolerance WRITE set_tolerance NOTIFY tolerance_changed)
|
|
|
|
public:
|
|
explicit spec_harm(QObject *parent, qreal freq, int color, qreal weight);
|
|
spec_harm(QObject *parent);
|
|
|
|
qreal freq() const;
|
|
qreal peak_freq() const;
|
|
int color() const;
|
|
qreal weight() const;
|
|
|
|
bool is_present() const;
|
|
qreal amplitude() const;
|
|
qreal level() const;
|
|
qreal base() const;
|
|
qreal tolerance() const;
|
|
|
|
qreal integral_index() const;
|
|
|
|
void update();
|
|
|
|
void save_state(QJsonObject &root);
|
|
void restor_state(const QJsonObject &root);
|
|
|
|
void get_max_level(qreal &max_ampl);
|
|
|
|
private:
|
|
qreal _freq;
|
|
int _color;
|
|
qreal _weight;
|
|
qreal _tolerance;
|
|
|
|
public slots:
|
|
void set_color(int value);
|
|
void set_weight(qreal value);
|
|
void set_tolerance(qreal value);
|
|
|
|
|
|
|
|
signals:
|
|
void color_changed();
|
|
void weight_changed();
|
|
void tolerance_changed();
|
|
|
|
void get_peak_freq(qreal freq, qreal tolerance, qreal&) const;
|
|
|
|
void amplitude_changed();
|
|
void get_amplitude(qreal freq, qreal &value) const;
|
|
void get_base(qreal freq, qreal &value) const;
|
|
|
|
void get_max_harm_ampl(qreal &value) const;
|
|
void get_modulating_harms_integral_index(qreal &value) const;
|
|
|
|
};
|
|
}
|
|
}
|
|
|
|
#endif // SPEC_HARM_H
|