| 570 | } |
| 571 | |
| 572 | void VSTPlugin::Poll() |
| 573 | { |
| 574 | if (mRescanParameterNames) |
| 575 | { |
| 576 | mRescanParameterNames = false; |
| 577 | const auto& parameters = mPlugin->getParameters(); |
| 578 | |
| 579 | int numParameters = MIN((int)mParameterSliders.size(), (int)parameters.size()); |
| 580 | for (int i = 0; i < numParameters; ++i) |
| 581 | { |
| 582 | mParameterSliders[i].mDisplayName = parameters[i]->getName(64).toStdString(); |
| 583 | if (mParameterSliders[i].mSlider != nullptr) |
| 584 | mParameterSliders[i].mSlider->SetOverrideDisplayName(mParameterSliders[i].mDisplayName); |
| 585 | } |
| 586 | |
| 587 | if (numParameters <= kMaxParametersInDropdown) // update the dropdown in this case |
| 588 | { |
| 589 | mShowParameterDropdown->Clear(); |
| 590 | for (int i = 0; i < numParameters; ++i) |
| 591 | { |
| 592 | mShowParameterDropdown->AddLabel(mParameterSliders[i].mDisplayName.c_str(), i); |
| 593 | mParameterSliders[i].mInSelectorList = true; |
| 594 | } |
| 595 | } |
| 596 | } |
| 597 | if (mDisplayMode == kDisplayMode_Sliders) |
| 598 | { |
| 599 | for (int i = 0; i < mParameterSliders.size(); ++i) |
| 600 | { |
| 601 | float value = mParameterSliders[i].mParameter->getValue(); |
| 602 | if (mParameterSliders[i].mValue != value) |
| 603 | mParameterSliders[i].mValue = value; |
| 604 | } |
| 605 | |
| 606 | if (mChangeGestureParameterIndex != -1) |
| 607 | { |
| 608 | if (mChangeGestureParameterIndex < (int)mParameterSliders.size() && |
| 609 | !mParameterSliders[mChangeGestureParameterIndex].mInSelectorList && |
| 610 | mTemporarilyDisplayedParamIndex != mChangeGestureParameterIndex) |
| 611 | { |
| 612 | if (mTemporarilyDisplayedParamIndex != -1) |
| 613 | mShowParameterDropdown->RemoveLabel(mTemporarilyDisplayedParamIndex); |
| 614 | mTemporarilyDisplayedParamIndex = mChangeGestureParameterIndex; |
| 615 | mShowParameterDropdown->AddLabel(mParameterSliders[mChangeGestureParameterIndex].mDisplayName, mChangeGestureParameterIndex); |
| 616 | } |
| 617 | |
| 618 | mChangeGestureParameterIndex = -1; |
| 619 | } |
| 620 | } |
| 621 | |
| 622 | if (mWantOpenVstWindow) |
| 623 | { |
| 624 | mWantOpenVstWindow = false; |
| 625 | if (mPlugin != nullptr) |
| 626 | { |
| 627 | if (mWindow == nullptr) |
| 628 | mWindow = std::unique_ptr<VSTWindow>(VSTWindow::CreateVSTWindow(this, VSTWindow::Normal)); |
| 629 | mWindow->ShowWindow(); |
nothing calls this directly
no test coverage detected