21#include <JuceHeader.h>
25 class ProcessorDataAnalyzer;
26 class MeterbridgeComponent;
27 class TwoDFieldOutputComponent;
28 class WaveformAudioComponent;
29 class SpectrumAudioComponent;
89 void paint(juce::Graphics& g)
override;
100 std::unique_ptr<Mema::ProcessorDataAnalyzer> m_inputDataAnalyzer;
101 std::unique_ptr<Mema::ProcessorDataAnalyzer> m_outputDataAnalyzer;
103 std::unique_ptr<Mema::MeterbridgeComponent> m_inputMeteringComponent;
104 std::unique_ptr<Mema::MeterbridgeComponent> m_outputMeteringComponent;
105 std::unique_ptr<Mema::TwoDFieldOutputComponent> m_outputFieldComponent;
106 std::unique_ptr<Mema::WaveformAudioComponent> m_waveformComponent;
107 std::unique_ptr<Mema::SpectrumAudioComponent> m_spectrumComponent;
111 static constexpr int sc_connectionTimeout = 5000;
113 std::pair<int, int> m_currentIOCount = { 0, 0 };
115 float m_ioRatio = 0.5f;
Central monitoring panel of the Mema.Mo application.
void setSpectrumVisuActive()
Switches to the FFT spectrum visualisation mode.
RunningStatus
Lifecycle state of the monitor panel driven by the network connection status.
@ Inactive
No TCP connection; component renders a placeholder.
@ Active
Actively receiving and visualising audio data from Mema.
@ Standby
Connection established but no audio data received yet.
void setNumVisibleChannels(std::uint16_t count)
Propagates a channel-count change to the active visualisation component.
void resized() override
Lays out visualisation components to fill the available area.
std::function< void()> onExitClick
Invoked when the user triggers a disconnection.
void paint(juce::Graphics &g) override
Paints the background when no visualisation is active.
void setWaveformVisuActive()
Switches to the scrolling waveform visualisation mode.
void setOutputFieldVisuActive(const juce::AudioChannelSet &channelConfiguration)
Switches to the 2-D spatial field visualisation for the given speaker layout.
std::optional< std::uint16_t > getNumVisibleChannels()
Returns the number of channels currently shown, or empty if no active visualiser.
void handleMessage(const Message &message) override
Dispatches inbound network messages to the appropriate analyzer or state handler.
~MemaMoComponent() override
void setOutputMeteringVisuActive()
Switches to the meterbridge (level-bar) visualisation mode.