77 m_waveformsComponent = std::make_unique<CustomPaintingAudioVisualiserComponent>(m_numVisibleChannels);
78 m_waveformsComponent->setBufferSize(2048);
79 m_waveformsComponent->setRepaintRate(20);
80 addAndMakeVisible(m_waveformsComponent.get());
82 m_chNumSelButton = std::make_unique<juce::DrawableButton>(
"SelectChannelcount", juce::DrawableButton::ButtonStyle::ImageFitted);
83 m_chNumSelButton->setTooltip(
"Select number of visible channels.");
84 m_chNumSelButton->onClick = [
this] {
85 juce::PopupMenu settingsMenu;
86 for (
int i = 1; i <= m_numAvailableChannels; i++)
87 settingsMenu.addItem(i, juce::String(i));
88 settingsMenu.showMenuAsync(juce::PopupMenu::Options(), [=](
int selectedId) {
90 if (JUCEAppBasics::AppConfigurationBase::getInstance())
91 JUCEAppBasics::AppConfigurationBase::getInstance()->triggerConfigurationDump(
false);
94 m_chNumSelButton->setAlwaysOnTop(
true);
95 m_chNumSelButton->setColour(juce::DrawableButton::ColourIds::backgroundColourId, juce::Colours::transparentBlack);
96 m_chNumSelButton->setColour(juce::DrawableButton::ColourIds::backgroundOnColourId, juce::Colours::transparentBlack);
97 addAndMakeVisible(m_chNumSelButton.get());
110 auto visuArea = getLocalBounds();
111 auto legendArea = visuArea.removeFromRight(m_legendWidth);
114 g.setColour(getLookAndFeel().findColour(juce::ResizableWindow::backgroundColourId));
115 g.fillRect(legendArea);
118 if (m_numVisibleChannels > 0)
121 g.setColour(getLookAndFeel().findColour(juce::TextButton::textColourOnId));
122 auto singleWaveformHeight = legendArea.getHeight() / m_numVisibleChannels;
123 for (
int i = 1; i <= m_numVisibleChannels; ++i)
124 g.drawText(juce::String(i), legendArea.removeFromTop(singleWaveformHeight), juce::Justification::centred,
true);
146 if (m_waveformsComponent)
147 m_waveformsComponent->setColours(
148 getLookAndFeel().findColour(juce::Slider::backgroundColourId),
149 getLookAndFeel().findColour(juce::ResizableWindow::backgroundColourId),
150 getLookAndFeel().findColour(JUCEAppBasics::CustomLookAndFeel::MeteringRmsColourId));
152 auto chNumSelButtonDrawable = juce::Drawable::createFromSVG(*juce::XmlDocument::parse(BinaryData::waves24px_svg).get());
153 chNumSelButtonDrawable->replaceColour(juce::Colours::black, getLookAndFeel().findColour(juce::TextButton::ColourIds::textColourOnId));
154 m_chNumSelButton->setImages(chNumSelButtonDrawable.get());