X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fpluginlv2ui.C;h=2b0c9926bf65034d9fc7898e8c63138eab7af25f;hb=1b764a9134043e08d4ca6161a6ac58b105cc6b2b;hp=17f072a2c6bf63b6c5960f21d7c364aa10e5199c;hpb=7fd85fb66168f6b518c5f2d73e04036e87faa0e1;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/pluginlv2ui.C b/cinelerra-5.1/cinelerra/pluginlv2ui.C index 17f072a2..2b0c9926 100644 --- a/cinelerra-5.1/cinelerra/pluginlv2ui.C +++ b/cinelerra-5.1/cinelerra/pluginlv2ui.C @@ -114,6 +114,7 @@ bool PluginLV2UI::lv2ui_resizable() 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; @@ -122,9 +123,12 @@ int PluginLV2UI::update_lv2_input(float *vals, int force) 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; } @@ -164,28 +168,7 @@ void PluginLV2ChildUI::start_gui() update_lv2_input(config.ctls, 1); connect_ports(config, PORTS_CONTROL | PORTS_ATOM); int n = 0; -#if 1 -// some plugins must have pointers, or they crash - float inp[nb_inputs], out[nb_outputs]; - memset(&inp, 0, nb_inputs*sizeof(float)); - memset(&out, 0, nb_outputs*sizeof(float)); - int ich = 0, och = 0; - for( int i=0; i