| 319 | } |
| 320 | |
| 321 | void appendContextMenu(Menu* menu) override { |
| 322 | Plaits* module = dynamic_cast<Plaits*>(this->module); |
| 323 | |
| 324 | struct PlaitsLowCpuItem : MenuItem { |
| 325 | Plaits* module; |
| 326 | void onAction(const event::Action& e) override { |
| 327 | module->lowCpu ^= true; |
| 328 | } |
| 329 | }; |
| 330 | |
| 331 | struct PlaitsLpgModeItem : MenuItem { |
| 332 | PlaitsWidget* moduleWidget; |
| 333 | void onAction(const event::Action& e) override { |
| 334 | moduleWidget->setLpgMode(!moduleWidget->getLpgMode()); |
| 335 | } |
| 336 | }; |
| 337 | |
| 338 | struct PlaitsModelItem : MenuItem { |
| 339 | Plaits* module; |
| 340 | int model; |
| 341 | void onAction(const event::Action& e) override { |
| 342 | module->patch.engine = model; |
| 343 | } |
| 344 | }; |
| 345 | |
| 346 | menu->addChild(new MenuSeparator); |
| 347 | PlaitsLowCpuItem* lowCpuItem = createMenuItem<PlaitsLowCpuItem>("Low CPU", CHECKMARK(module->lowCpu)); |
| 348 | lowCpuItem->module = module; |
| 349 | menu->addChild(lowCpuItem); |
| 350 | PlaitsLpgModeItem* lpgItem = createMenuItem<PlaitsLpgModeItem>("Edit LPG response/decay", CHECKMARK(getLpgMode())); |
| 351 | lpgItem->moduleWidget = this; |
| 352 | menu->addChild(lpgItem); |
| 353 | |
| 354 | menu->addChild(new MenuSeparator); |
| 355 | menu->addChild(createMenuLabel("Models")); |
| 356 | for (int i = 0; i < 16; i++) { |
| 357 | PlaitsModelItem* modelItem = createMenuItem<PlaitsModelItem>(modelLabels[i], CHECKMARK(module->patch.engine == i)); |
| 358 | modelItem->module = module; |
| 359 | modelItem->model = i; |
| 360 | menu->addChild(modelItem); |
| 361 | } |
| 362 | } |
| 363 | |
| 364 | void setLpgMode(bool lpgMode) { |
| 365 | // ModuleWidget::getParam() doesn't work if the ModuleWidget doesn't have a module. |
nothing calls this directly
no outgoing calls
no test coverage detected