21#include <JuceHeader.h>
96 void paint(juce::Graphics& g)
override;
108 std::unique_ptr<Mema::FaderbankControlComponent> m_faderbankCtrlComponent;
109 std::unique_ptr<Mema::PanningControlComponent> m_panningCtrlComponent;
110 std::unique_ptr<Mema::PluginControlComponent> m_pluginCtrlComponent;
114 static constexpr int sc_connectionTimeout = 5000;
116 std::pair<int, int> m_currentIOCount = { 0, 0 };
117 std::map<std::uint16_t, bool> m_inputMuteStates = {};
118 std::map<std::uint16_t, bool> m_outputMuteStates = {};
119 std::map<std::uint16_t, std::map<std::uint16_t, bool>> m_crosspointStates = {};
120 std::map<std::uint16_t, std::map<std::uint16_t, float>> m_crosspointValues = {};
122 std::tuple<int, juce::IPAddress, int> m_externalAdmOscSettings = { 4001, juce::IPAddress::local(), 4002 };
124 float m_ioRatio = 0.5f;
Central remote-control panel of the Mema.Re application.
~MemaReComponent() override
std::function< void()> onExitClick
Invoked when the user triggers a disconnection.
void resized() override
Lays out the active control component to fill the available area.
const Mema::FaderbankControlComponent::ControlsSize getControlsSize()
Returns the current control-element size setting.
void resetCtrl()
Resets all control components to their default/empty state.
RunningStatus
Lifecycle state of the remote-control panel driven by the network connection status.
@ Standby
Connection established but no state snapshot received yet.
@ Active
Actively receiving and sending control data to/from Mema.
@ Inactive
No TCP connection; component renders a placeholder.
void setOutputPanningCtrlActive(const juce::AudioChannelSet &channelConfiguration)
Switches to the 2-D spatial panning control for the given speaker layout.
void handleMessage(const Message &message) override
Dispatches inbound network messages to the appropriate control component.
void paint(juce::Graphics &g) override
Paints the background when no control mode is active.
void setFaderbankCtrlActive()
Switches to the faderbank (crosspoint slider/mute matrix) control mode.
void setPluginCtrlActive()
Switches to the plugin-parameter control mode.
void setControlsSize(const Mema::FaderbankControlComponent::ControlsSize &ctrlsSize)
Propagates a control-element size change (S/M/L) to the faderbank component.
void setExternalAdmOscSettings(const int ADMOSCport, const juce::IPAddress &ADMOSCremoteIP, const int ADMOSCremotePort)
Configures the ADM-OSC listener port and the remote-controller address used by the panning component.
std::function< void(const juce::MemoryBlock &)> onMessageReadyToSend
Invoked with a serialised message whenever a control value changes that must be sent to Mema.
std::tuple< int, juce::IPAddress, int > getExternalAdmOscSettings()
Returns the current ADM-OSC settings as {listenPort, remoteIP, remotePort}.
ControlsSize
Size category for rendered control elements.