summaryrefslogtreecommitdiffhomepage
path: root/filter-accela/ftnoir_filter_accela_dialog.cpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2016-07-30 12:03:58 +0200
committerStanislaw Halik <sthalik@misaki.pl>2016-07-30 19:54:10 +0200
commit0c00c91391f2190eb7615bc7bed2096e2b7ea9d9 (patch)
tree69c73a42d9a0ec93d4682737a5f20abe1942e7f5 /filter-accela/ftnoir_filter_accela_dialog.cpp
parentbdfe1ea6a587220a93a843c7b629e810787d9f85 (diff)
filter/accela: add rotation nonlinearity switch
This only applies to very beginning of gain spline.
Diffstat (limited to 'filter-accela/ftnoir_filter_accela_dialog.cpp')
-rw-r--r--filter-accela/ftnoir_filter_accela_dialog.cpp43
1 files changed, 31 insertions, 12 deletions
diff --git a/filter-accela/ftnoir_filter_accela_dialog.cpp b/filter-accela/ftnoir_filter_accela_dialog.cpp
index 451f476e..c046f986 100644
--- a/filter-accela/ftnoir_filter_accela_dialog.cpp
+++ b/filter-accela/ftnoir_filter_accela_dialog.cpp
@@ -16,7 +16,7 @@
FilterControls::FilterControls() :
accela_filter(nullptr)
{
- ui.setupUi( this );
+ ui.setupUi(this);
connect(ui.buttonBox, SIGNAL(accepted()), this, SLOT(doOK()));
connect(ui.buttonBox, SIGNAL(rejected()), this, SLOT(doCancel()));
@@ -26,6 +26,7 @@ FilterControls::FilterControls() :
connect(ui.ewma_slider, SIGNAL(valueChanged(int)), this, SLOT(update_ewma_display(int)));
connect(ui.rot_dz_slider, SIGNAL(valueChanged(int)), this, SLOT(update_rot_dz_display(int)));
connect(ui.trans_dz_slider, SIGNAL(valueChanged(int)), this, SLOT(update_trans_dz_display(int)));
+ connect(&s.rot_nonlinearity, SIGNAL(valueChanged(const slider_value&)), this, SLOT(update_rot_nl_slider(const slider_value&)));
tie_setting(s.rot_threshold, ui.rotation_slider);
tie_setting(s.trans_threshold, ui.translation_slider);
@@ -33,24 +34,32 @@ FilterControls::FilterControls() :
tie_setting(s.rot_deadzone, ui.rot_dz_slider);
tie_setting(s.trans_deadzone, ui.trans_dz_slider);
+ tie_setting(s.rot_nonlinearity, ui.rot_nl_slider);
+
update_rot_display(ui.rotation_slider->value());
update_trans_display(ui.translation_slider->value());
update_ewma_display(ui.ewma_slider->value());
update_rot_dz_display(ui.rot_dz_slider->value());
update_trans_dz_display(ui.trans_dz_slider->value());
+ update_rot_nl_slider(s.rot_nonlinearity);
}
void FilterControls::register_filter(IFilter* filter)
{
accela_filter = static_cast<FTNoIR_Filter*>(filter);
-//#define LEAKING_DEBUG
-#ifdef LEAKING_DEBUG
- auto d = new QDialog();
- auto r = new QFunctionConfigurator(d);
- r->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
- r->setConfig(&accela_filter->rot, "");
- r->setFixedSize(800, 300);
- d->show();
+//#define SPLINE_ROT_DEBUG
+#if defined(SPLINE_ROT_DEBUG) || defined(SPLINE_TRANS_DEBUG)
+ QDialog d;
+ QFunctionConfigurator r(&d);
+ r.setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+#if defined(SPLINE_TRANS_DEBUG)
+ r.setConfig(&accela_filter->trans, "");
+#else
+ r.setConfig(&accela_filter->rot, "");
+#endif
+ r.setFixedSize(800, 300);
+ d.show();
+ d.exec();
#endif
}
@@ -59,16 +68,19 @@ void FilterControls::unregister_filter()
accela_filter = nullptr;
}
-void FilterControls::doOK() {
+void FilterControls::doOK()
+{
save();
close();
}
-void FilterControls::doCancel() {
+void FilterControls::doCancel()
+{
close();
}
-void FilterControls::save() {
+void FilterControls::save()
+{
s.b->save();
}
@@ -97,3 +109,10 @@ void FilterControls::update_trans_dz_display(int value)
ui.trans_dz->setText(QString::number(value * s.mult_trans_dz) + "mm");
}
+void FilterControls::update_rot_nl_slider(const slider_value& sl)
+{
+ ui.rot_nl->setText("<html><head/><body><p>x<span style='vertical-align:super;'>" +
+ QString::number(sl.cur()) +
+ "</span></p></body></html>");
+}
+