summaryrefslogtreecommitdiffhomepage
path: root/tracker-qt-gamepad/test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tracker-qt-gamepad/test.cpp')
-rw-r--r--tracker-qt-gamepad/test.cpp99
1 files changed, 99 insertions, 0 deletions
diff --git a/tracker-qt-gamepad/test.cpp b/tracker-qt-gamepad/test.cpp
new file mode 100644
index 00000000..4f2c8daa
--- /dev/null
+++ b/tracker-qt-gamepad/test.cpp
@@ -0,0 +1,99 @@
+/* Copyright (c) 2014, Stanislaw Halik <sthalik@misaki.pl>
+
+ * Permission to use, copy, modify, and/or distribute this
+ * software for any purpose with or without fee is hereby granted,
+ * provided that the above copyright notice and this permission
+ * notice appear in all copies.
+ */
+
+#include "test.h"
+#include "api/plugin-api.hpp"
+#include <cmath>
+
+#include <QDebug>
+
+const double gamepad_tracker::incr[6] =
+{
+ 50, 40, 80,
+ 70, 5, 3
+};
+
+gamepad_tracker::gamepad_tracker() :
+ last_x { 0, 0, 0, 0, 0, 0 }
+{
+}
+
+gamepad_tracker::~gamepad_tracker()
+{
+}
+
+void gamepad_tracker::start_tracker(QFrame*)
+{
+ t.start();
+}
+
+#ifdef EMIT_NAN
+# include <cstdlib>
+#endif
+
+void gamepad_tracker::data(double *data)
+{
+ using std::fmod;
+ using std::sin;
+ using std::fabs;
+ using std::copysign;
+
+ const double dt = t.elapsed_seconds();
+ t.start();
+
+#ifdef EMIT_NAN
+ if ((rand()%4) == 0)
+ {
+ for (int i = 0; i < 6; i++)
+ data[i] = 0./0.;
+ }
+ else
+#endif
+ for (int i = 0; i < 6; i++)
+ {
+ double x = fmod(last_x[i] + incr[i] * d2r * dt, 2 * M_PI);
+ last_x[i] = x;
+
+ if (i >= 3)
+ {
+#ifdef DISCONTINUITY
+ if (x > pi + pi/2)
+ x -= M_PI;
+ else if (x > pi/2 && x < pi)
+ x += M_PI;
+#endif
+
+ data[i] = sin(x) * 180;
+ }
+ else
+ {
+ data[i] = sin(x) * 100;
+ }
+ }
+}
+
+gamepad_dialog::gamepad_dialog()
+{
+ ui.setupUi(this);
+
+ connect(ui.buttonBox, SIGNAL(accepted()), this, SLOT(doOK()));
+ connect(ui.buttonBox, SIGNAL(rejected()), this, SLOT(doCancel()));
+}
+
+void gamepad_dialog::doOK()
+{
+ //s.b->save();
+ close();
+}
+
+void gamepad_dialog::doCancel()
+{
+ close();
+}
+
+OPENTRACK_DECLARE_TRACKER(gamepad_tracker, gamepad_dialog, gamepad_metadata)