| 1286 | } |
| 1287 | |
| 1288 | void step() override { |
| 1289 | IroiVCV *iroi = dynamic_cast<IroiVCV *>(module); |
| 1290 | auto editMode = iroi ? iroi->editMode : IroiVCV::EDIT_MODE_NORMAL; |
| 1291 | |
| 1292 | const bool showAlt = editMode == IroiVCV::EDIT_MODE_ALT; |
| 1293 | const bool showMod = editMode == IroiVCV::EDIT_MODE_MOD; |
| 1294 | const bool showCv = editMode == IroiVCV::EDIT_MODE_CV; |
| 1295 | const bool showRnd = editMode == IroiVCV::EDIT_MODE_RND; |
| 1296 | |
| 1297 | modulationTypeWidget->visible = showAlt; |
| 1298 | filterModeParamWidget->visible = showAlt; |
| 1299 | filterPositionWidget->visible = showAlt; |
| 1300 | dissonanceWidget->visible = showAlt; |
| 1301 | echoFilterWidget->visible = showAlt; |
| 1302 | autoPanWidget->visible = showAlt; |
| 1303 | |
| 1304 | filterCutoffModWidget->visible = showMod; |
| 1305 | resonanceModWidget->visible = showMod; |
| 1306 | resonatorTuneModWidget->visible = showMod; |
| 1307 | resonatorFeedbackModWidget->visible = showMod; |
| 1308 | echoDensityModWidget->visible = showMod; |
| 1309 | echoRepeatsModWidget->visible = showMod; |
| 1310 | ambienceSpacetimeModWidget->visible = showMod; |
| 1311 | ambienceDecayModWidget->visible = showMod; |
| 1312 | |
| 1313 | filterCutoffCvWidget->visible = showCv; |
| 1314 | resonanceCvWidget->visible = showCv; |
| 1315 | resonatorTuneCvWidget->visible = showCv; |
| 1316 | resonatorFeedbackCvWidget->visible = showCv; |
| 1317 | echoDensityCvWidget->visible = showCv; |
| 1318 | echoRepeatsCvWidget->visible = showCv; |
| 1319 | ambienceSpacetimeCvWidget->visible = showCv; |
| 1320 | ambienceDecayCvWidget->visible = showCv; |
| 1321 | |
| 1322 | filterCutoffRndWidget->visible = showRnd; |
| 1323 | resonanceRndWidget->visible = showRnd; |
| 1324 | resonatorTuneRndWidget->visible = showRnd; |
| 1325 | resonatorFeedbackRndWidget->visible = showRnd; |
| 1326 | echoDensityRndWidget->visible = showRnd; |
| 1327 | echoRepeatsRndWidget->visible = showRnd; |
| 1328 | ambienceSpacetimeRndWidget->visible = showRnd; |
| 1329 | ambienceDecayRndWidget->visible = showRnd; |
| 1330 | |
| 1331 | mapButtonWidget->visible = !showAlt; |
| 1332 | clearButtonWidget->visible = showAlt; |
| 1333 | |
| 1334 | if (iroi && iroi->consumePendingRandomizeAction()) { |
| 1335 | if (iroi->useNativeRackRandomisation) { |
| 1336 | randomizeAction(); |
| 1337 | } else { |
| 1338 | IroiRandomizeSlewAction *h = new IroiRandomizeSlewAction; |
| 1339 | h->moduleId = iroi->id; |
| 1340 | h->oldValues = iroi->captureSlewedParamValues(); |
| 1341 | h->newValues = iroi->generateRandomizedValues(); |
| 1342 | |
| 1343 | // Apply now so user hears the slewed randomization immediately. |
| 1344 | iroi->applyRandomizedValues(h->newValues, false); |
| 1345 |
nothing calls this directly
no test coverage detected