| @@ -21,6 +21,14 @@ | |||||
| #include <fenv.h> | #include <fenv.h> | ||||
| #endif | #endif | ||||
| #ifdef USE_LOG_PRINTF | |||||
| extern void log_printf(const char *logData, ...); | |||||
| #undef Dprintf | |||||
| #define Dprintf log_printf | |||||
| #else | |||||
| #define Dprintf printf | |||||
| #endif // USE_LOG_PRINTF | |||||
| namespace rack { | namespace rack { | ||||
| @@ -369,6 +377,7 @@ void vst2_handle_queued_params(void) { | |||||
| if(paramRange > 0.0f) | if(paramRange > 0.0f) | ||||
| { | { | ||||
| float value = (qp.value * paramRange) + paramWidget->minValue; | float value = (qp.value * paramRange) + paramWidget->minValue; | ||||
| // Dprintf("vst2_handle_queued_params: paramId=%d value=%f min=%f max=%f\n", paramId, value, paramWidget->minValue, paramWidget->maxValue); | |||||
| engineSetParam(module, paramId, value, false/*bVSTAutomate*/); | engineSetParam(module, paramId, value, false/*bVSTAutomate*/); | ||||
| // Update UI widget | // Update UI widget | ||||
| @@ -405,7 +414,21 @@ float vst2_get_param(int uniqueParamId) { | |||||
| { | { | ||||
| if(sUI(paramId) < sUI(module->params.size())) // paranoia | if(sUI(paramId) < sUI(module->params.size())) // paranoia | ||||
| { | { | ||||
| return module->params[paramId].value; | |||||
| ModuleWidget *moduleWidget = global_ui->app.gRackWidget->findModuleWidgetByModule(module); | |||||
| if(NULL != moduleWidget) | |||||
| { | |||||
| // Find | |||||
| ParamWidget *paramWidget = moduleWidget->findParamWidgetByParamId(paramId); | |||||
| if(NULL != paramWidget) | |||||
| { | |||||
| if(isfinite(paramWidget->minValue) && isfinite(paramWidget->maxValue)) | |||||
| { | |||||
| float value = module->params[paramId].value; | |||||
| value = (value - paramWidget->minValue) / (paramWidget->maxValue - paramWidget->minValue); | |||||
| return value; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| return 0.0f; | return 0.0f; | ||||