summaryrefslogtreecommitdiffhomepage
path: root/qfunctionconfigurator/functionconfig.h
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2015-07-26 11:27:54 +0200
committerStanislaw Halik <sthalik@misaki.pl>2015-07-26 11:27:54 +0200
commitf4417361b0fd580855ec84d3c2159162c4426c43 (patch)
tree4faa9903e6e9b0e1a3ccb825405e19d85fcb6112 /qfunctionconfigurator/functionconfig.h
parenta0d668b148177f597f286ce7dfe01d06e48f97eb (diff)
parent058f823f432484594a816b2489ea2edb2b56d5a4 (diff)
Merge branch 'unstable' into trackhat-ui
Diffstat (limited to 'qfunctionconfigurator/functionconfig.h')
-rw-r--r--qfunctionconfigurator/functionconfig.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/qfunctionconfigurator/functionconfig.h b/qfunctionconfigurator/functionconfig.h
index 446c73ac..d49a8f7b 100644
--- a/qfunctionconfigurator/functionconfig.h
+++ b/qfunctionconfigurator/functionconfig.h
@@ -14,16 +14,19 @@
#include <QSettings>
#include <QMutex>
#include <vector>
+#include <limits>
#include "opentrack-compat/qcopyable-mutex.hpp"
class Map {
private:
static constexpr int value_count = 5000;
- using num = float;
+ using num = double;
+ using integral = std::uint16_t;
+ static constexpr integral integral_max = std::numeric_limits<integral>::max();
struct State {
QList<QPointF> input;
- std::vector<num> data;
+ std::vector<integral> data;
};
int precision() const;
@@ -37,6 +40,7 @@ private:
double max_y;
State cur, saved;
+ bool lazy_reload;
public:
double maxInput() const { return max_x; }
double maxOutput() const { return max_y; }
@@ -45,6 +49,7 @@ public:
{
setMaxInput(maxx);
setMaxOutput(maxy);
+ lazy_reload = true;
}
num getValue(num x);
@@ -53,7 +58,7 @@ public:
void removeAllPoints() {
QMutexLocker foo(&_mutex);
cur.input.clear();
- reload();
+ lazy_reload = true;
}
void addPoint(QPointF pt);