summaryrefslogtreecommitdiffstats
path: root/src/control.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/control.c')
-rw-r--r--src/control.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/control.c b/src/control.c
index d952f7f..44aadc9 100644
--- a/src/control.c
+++ b/src/control.c
@@ -34,6 +34,22 @@ cc_fix(cc_t *cc)
}
void
+cc_set(cc_t *cc, float value)
+{
+ float new_value;
+ if (value >= cc->max) {
+ new_value = cc->max;
+ } else if (value <= cc->min) {
+ new_value = cc->min;
+ } else {
+ new_value = value;
+ }
+
+ // calculate mod
+ cc->mod = new_value - cc->target;
+}
+
+void
cc_reset(cc_t *cc)
{
cc->target = cc->def;