Fix long outstanding bug with LADSPA plugin parameter adjustments.
authorAlexander Koenig <alex@lisas.de>
Mon, 9 May 2016 20:44:01 +0000 (22:44 +0200)
committerAlexander Koenig <alex@lisas.de>
Mon, 9 May 2016 20:44:01 +0000 (22:44 +0200)
src/tX_seqpar.cc
src/tX_vttfx.cc

index 8808f141710719c9f29f4213804a6c995a5b321b..690bd59d4a0e3d9fd8a1d3399ee39cb50b58c216 100644 (file)
@@ -953,7 +953,7 @@ const char * tX_seqpar_vttfx :: get_name()
 
 void tX_seqpar_vttfx_float :: create_widget()
 {
-       float tmp=max_value - min_value/1000;
+       double tmp=(max_value - min_value)/1000.0;      
 
        *fx_value=min_value;
        //myadj=GTK_ADJUSTMENT(gtk_adjustment_new(*fx_value, min_value+tmp/10, max_value-tmp/10, tmp, tmp, tmp));
index edabe454e51420afb0cad9bc1be8cde12556b9df..24f2d7e40b34a95652ac475e422eb7c4eaf126a3 100644 (file)
@@ -172,21 +172,29 @@ vtt_fx_ladspa :: vtt_fx_ladspa(LADSPA_Plugin *p, void *v)
                } else if ((LADSPA_IS_PORT_CONTROL(cpd)) && (LADSPA_IS_PORT_INPUT(cpd))) {
                        min=-22100;
                        max=+22100;
-                       
+       
+                       tX_debug("vtt_fx_ladspa(): wiring %s for %s", cpn, plugin->getLabel());
+                       tX_debug("vtt_fx_ladspa(): bound below: %s, %8lf.", LADSPA_IS_HINT_BOUNDED_BELOW(cph.HintDescriptor) ? "yes": "no", cph.LowerBound);
+                       tX_debug("vtt_fx_ladspa(): bound above: %s, %8lf.", LADSPA_IS_HINT_BOUNDED_ABOVE(cph.HintDescriptor) ? "yes": "no", cph.UpperBound);
+
                        if (LADSPA_IS_HINT_BOUNDED_BELOW(cph.HintDescriptor)) min=cph.LowerBound;
                        if (LADSPA_IS_HINT_BOUNDED_ABOVE(cph.HintDescriptor)) max=cph.UpperBound;
                        
                        if (LADSPA_IS_HINT_SAMPLE_RATE(cph.HintDescriptor)) {
-                               min*=44100; max*=44100;
+                               tX_debug("vtt_fx_ladspa(): is sample rate");
+                               min*=44100; max*=44100;
                        }
-                       
+                                               
                        if (LADSPA_IS_HINT_TOGGLED(cph.HintDescriptor)) {
+                               tX_debug("vtt_fx_ladspa(): bool seqpar - min: %f, max %f", min, max);
                                sp=new tX_seqpar_vttfx_bool();
                                sp->set_mapping_parameters(max, min, 0, 0);
                        } else if (LADSPA_IS_HINT_INTEGER(cph.HintDescriptor)) {
+                               tX_debug("vtt_fx_ladspa(): int seqpar - min: %f, max %f", min, max);
                                sp=new tX_seqpar_vttfx_int();
                                sp->set_mapping_parameters(max, min, 0, 0);
                        } else {
+                               tX_debug("vtt_fx_ladspa(): float seqpar - min: %f, max %f", min, max);
                                sp=new tX_seqpar_vttfx_float();
                                sp->set_mapping_parameters(max, min, (max-min)/100.0, 1);
                        }