45 lines
987 B
C++
45 lines
987 B
C++
|
#include "gtl_math_peak.h"
|
||
|
|
||
|
namespace gtl
|
||
|
{
|
||
|
namespace math
|
||
|
{
|
||
|
peak::peak(gtl::analog_data *data)
|
||
|
: analog_value(data)
|
||
|
{
|
||
|
_name = "peak";
|
||
|
|
||
|
_max = new gtl::math::max(data);
|
||
|
_min = new gtl::math::min(data);
|
||
|
_offset = new gtl::math::offset(data);
|
||
|
}
|
||
|
|
||
|
peak::~peak()
|
||
|
{
|
||
|
delete _max;
|
||
|
delete _min;
|
||
|
delete _offset;
|
||
|
}
|
||
|
|
||
|
void peak::set_time(qreal value)
|
||
|
{
|
||
|
analog_value::set_time(value);
|
||
|
_max->set_time(value);
|
||
|
_min->set_time(value);
|
||
|
_offset->set_time(value);
|
||
|
}
|
||
|
|
||
|
void peak::data_changed()
|
||
|
{
|
||
|
analog_value::data_changed();
|
||
|
|
||
|
qreal amax = abs(_max->value() - _offset->value());
|
||
|
qreal amin = abs(_min->value() - _offset->value());
|
||
|
|
||
|
_value = amax > amin ? amax : amin;
|
||
|
|
||
|
emit value_changed();
|
||
|
}
|
||
|
}
|
||
|
}
|