Param interface: Only mark as changed if value changed

This commit is contained in:
Lorenz Meier
2016-06-26 22:29:14 +02:00
parent acc8acd059
commit 3c2bd4f6dd
+3 -1
View File
@@ -538,10 +538,12 @@ param_set_internal(param_t param, const void *val, bool mark_saved, bool notify_
switch (param_type(param)) {
case PARAM_TYPE_INT32:
params_changed = s->val.i != *(int32_t *)val;
s->val.i = *(int32_t *)val;
break;
case PARAM_TYPE_FLOAT:
params_changed = fabsf(s->val.f - *(float *)val) > FLT_EPSILON;
s->val.f = *(float *)val;
break;
@@ -556,6 +558,7 @@ param_set_internal(param_t param, const void *val, bool mark_saved, bool notify_
}
memcpy(s->val.p, val, param_size(param));
params_changed = true;
break;
default:
@@ -563,7 +566,6 @@ param_set_internal(param_t param, const void *val, bool mark_saved, bool notify_
}
s->unsaved = !mark_saved;
params_changed = true;
result = 0;
}