summaryrefslogtreecommitdiff
path: root/src/filter.c
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2014-07-03 15:53:56 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2014-09-23 10:46:22 +1000
commit198384e69ff1d5b40b2abd7ef45893b276ea2cac (patch)
treec2e0da412787e3663c2f52d80bc1b0c45170c396 /src/filter.c
parent87c88d6a8605654c1d29471c7f34804a35a25745 (diff)
filter: add a configurable speed interface
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Diffstat (limited to 'src/filter.c')
-rw-r--r--src/filter.c28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/filter.c b/src/filter.c
index 5e627e1a..327dbce5 100644
--- a/src/filter.c
+++ b/src/filter.c
@@ -22,6 +22,7 @@
#include "config.h"
+#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
@@ -49,6 +50,19 @@ filter_destroy(struct motion_filter *filter)
filter->interface->destroy(filter);
}
+bool
+filter_set_speed(struct motion_filter *filter,
+ double speed)
+{
+ return filter->interface->set_speed(filter, speed);
+}
+
+double
+filter_get_speed(struct motion_filter *filter)
+{
+ return filter->speed;
+}
+
/*
* Default parameters for pointer acceleration profiles.
*/
@@ -237,9 +251,21 @@ accelerator_destroy(struct motion_filter *filter)
free(accel);
}
+static bool
+accelerator_set_speed(struct motion_filter *filter,
+ double speed)
+{
+ assert(speed >= -1.0 && speed <= 1.0);
+
+ filter->speed = speed;
+
+ return true;
+}
+
struct motion_filter_interface accelerator_interface = {
accelerator_filter,
- accelerator_destroy
+ accelerator_destroy,
+ accelerator_set_speed,
};
struct motion_filter *