return !fs_matches && !nrs_matches;
}
+//force= 1:ctls(all),gui(all) 0:changed(ctls) -1:gui(all)
int PluginLV2UI::update_lv2_input(float *vals, int force)
{
int ret = 0;
int idx = config[i]->idx;
float val = vals[idx];
if( !force && ctls[idx] == val ) continue;
- ctls[idx] = val;
- update_control(idx, sizeof(ctls[idx]), 0, &ctls[idx]);
- ++ret;
+ if( force >= 0 ) {
+ ctls[idx] = val;
+ ++ret;
+ }
+ if( force )
+ update_control(idx, sizeof(val), 0, &val);
}
return ret;
}
float *vals = (float *)child_data;
update_lv2_input(vals, 1);
break; }
- case LV2_UPDATE: {
+ case LV2_CONFIG: {
float *vals = (float *)child_data;
update_lv2_input(vals, 0);
break; }
+ case LV2_UPDATE: {
+ float *vals = (float *)child_data;
+ update_lv2_input(vals, -1);
+ break; }
case LV2_SHOW: {
start_gui();
break; }