FilterIOConfigurationWindow::FilterIOConfigurationWindow (AudioProcessor& p) : AudioProcessorEditor (&p), title ("title", p.getName()) { setOpaque (true); title.setFont (title.getFont().withStyle (Font::bold)); addAndMakeVisible (title); { ScopedLock renderLock (p.getCallbackLock()); p.suspendProcessing (true); p.releaseResources(); } if (p.getBusCount (true) > 0 || p.canAddBus (true)) { inConfig.reset (new InputOutputConfig (*this, true)); addAndMakeVisible (inConfig.get()); } if (p.getBusCount (false) > 0 || p.canAddBus (false)) { outConfig.reset (new InputOutputConfig (*this, false)); addAndMakeVisible (outConfig.get()); } currentLayout = p.getBusesLayout(); setSize (400, (inConfig != nullptr && outConfig != nullptr ? 160 : 0) + 200); }