aboutsummaryrefslogtreecommitdiff
path: root/generic.c
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2014-10-25 15:08:17 +0200
committerJakob Odersky <jodersky@gmail.com>2014-10-25 15:08:17 +0200
commitfa91766c740a238d17b9cd556b34c8ee054486cb (patch)
tree435bc4d959b2abeb08a6890153ea9efbe87d85cb /generic.c
parent4dfb70b68137b23747d321702ee5dc720287b73e (diff)
downloadmaverick-fa91766c740a238d17b9cd556b34c8ee054486cb.tar.gz
maverick-fa91766c740a238d17b9cd556b34c8ee054486cb.tar.bz2
maverick-fa91766c740a238d17b9cd556b34c8ee054486cb.zip
implement generic controller
Diffstat (limited to 'generic.c')
-rw-r--r--generic.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/generic.c b/generic.c
new file mode 100644
index 0000000..8c32a97
--- /dev/null
+++ b/generic.c
@@ -0,0 +1,41 @@
+#include "controller.h"
+
+#define CHANNEL_THROTTLE 0
+
+#define THROTTLE_MIN 12
+#define THROTTLE_MAX 255
+
+void channel_reset(channel_t* channels) {
+ channels[0] = THROTTLE_MIN;
+ channels[1] = 127;
+ channels[2] = 127;
+ channels[3] = 127;
+ channels[4] = 127;
+}
+void event_axis(channel_t* channels, int axis, int value) {
+ channels[axis+1] = axis_to_channel(value);
+}
+void event_button(channel_t* channels, int button, bool value) {
+ if (value) {
+ switch(button) {
+ case 0:
+ channel_reset(channels);
+ break;
+ case 4:
+ channel_decrease(channels, CHANNEL_THROTTLE, 1, THROTTLE_MIN, THROTTLE_MAX);
+ break;
+ case 5:
+ channel_increase(channels, CHANNEL_THROTTLE, 1, THROTTLE_MIN, THROTTLE_MAX);
+ break;
+ case 6:
+ channel_decrease(channels, CHANNEL_THROTTLE, 10, THROTTLE_MIN, THROTTLE_MAX);
+ break;
+ case 7:
+ channel_increase(channels, CHANNEL_THROTTLE, 10, THROTTLE_MIN, THROTTLE_MAX);
+ break;
+ default:
+ break;
+ }
+
+ }
+} \ No newline at end of file