Mema
Memory Matrix — multi-channel audio matrix monitor and router
Loading...
Searching...
No Matches
MemaReComponent Class Reference

Central remote-control panel of the Mema.Re application. More...

#include <MemaReComponent.h>

+ Inheritance diagram for MemaReComponent:
+ Collaboration diagram for MemaReComponent:

Public Types

enum  RunningStatus {
  Inactive ,
  Standby ,
  Active
}
 Lifecycle state of the remote-control panel driven by the network connection status. More...
 

Public Member Functions

 MemaReComponent ()
 
 ~MemaReComponent () override
 
void setFaderbankCtrlActive ()
 Switches to the faderbank (crosspoint slider/mute matrix) control mode.
 
void setOutputPanningCtrlActive (const juce::AudioChannelSet &channelConfiguration)
 Switches to the 2-D spatial panning control for the given speaker layout.
 
void setPluginCtrlActive ()
 Switches to the plugin-parameter control mode.
 
void resetCtrl ()
 Resets all control components to their default/empty state.
 
void setControlsSize (const Mema::FaderbankControlComponent::ControlsSize &ctrlsSize)
 Propagates a control-element size change (S/M/L) to the faderbank component.
 
const Mema::FaderbankControlComponent::ControlsSize getControlsSize ()
 Returns the current control-element size setting.
 
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::tuple< int, juce::IPAddress, int > getExternalAdmOscSettings ()
 Returns the current ADM-OSC settings as {listenPort, remoteIP, remotePort}.
 
void resized () override
 Lays out the active control component to fill the available area.
 
void paint (juce::Graphics &g) override
 Paints the background when no control mode is active.
 
void handleMessage (const Message &message) override
 Dispatches inbound network messages to the appropriate control component.
 

Public Attributes

std::function< void()> onExitClick
 Invoked when the user triggers a disconnection.
 
std::function< void(const juce::MemoryBlock &)> onMessageReadyToSend
 Invoked with a serialised message whenever a control value changes that must be sent to Mema.
 

Detailed Description

Central remote-control panel of the Mema.Re application.

MemaReComponent is the active-state UI of the Mema.Re tool — the remote-control companion in the Mema tool suite. When a TCP connection to a Mema server has been established, this component owns three pluggable control modes and switches between them based on the settings chosen in MainComponent:

Mode Component Description
Faderbank FaderbankControlComponent Slider/mute matrix for direct input × output crosspoint control.
2-D panning PanningControlComponent + TwoDFieldMultisliderComponent Interactive spatial field for LRS up to 9.1.6 ATMOS layouts.
Plugin parameters PluginControlComponent Per-parameter controls (slider/combobox/toggle) rendered dynamically from MemaPluginParameterInfo.

Inbound TCP messages (ControlParametersMessage, PluginParameterInfosMessage) are dispatched via handleMessage() and used to keep the control state in sync with Mema. User interactions produce updated ControlParametersMessage / PluginParameterValueMessage payloads that are sent back to Mema through the onMessageReadyToSend callback.

An ADMOSController instance (owned by PanningControlComponent) can additionally receive ADM-OSC UDP packets from an external spatial-audio controller and forward x/y/z/width/mute updates directly into the 2-D panning view.

See also
MainComponent — owns this component and drives the Discovering/Connecting/Controlling state machine.
Mema::FaderbankControlComponent — fader/mute crosspoint control.
Mema::PanningControlComponent — 2-D spatial panning control with optional ADM-OSC input.
Mema::PluginControlComponent — dynamic plugin-parameter control.

Definition at line 58 of file MemaReComponent.h.

Member Enumeration Documentation

◆ RunningStatus

Lifecycle state of the remote-control panel driven by the network connection status.

Enumerator
Inactive 

No TCP connection; component renders a placeholder.

Standby 

Connection established but no state snapshot received yet.

Active 

Actively receiving and sending control data to/from Mema.

Definition at line 62 of file MemaReComponent.h.

Constructor & Destructor Documentation

◆ MemaReComponent()

MemaReComponent::MemaReComponent ( )

Definition at line 24 of file MemaReComponent.cpp.

References onMessageReadyToSend, and setFaderbankCtrlActive().

◆ ~MemaReComponent()

MemaReComponent::~MemaReComponent ( )
override

Definition at line 101 of file MemaReComponent.cpp.

Member Function Documentation

◆ getControlsSize()

const Mema::MemaClientControlComponentBase::ControlsSize MemaReComponent::getControlsSize ( )

Returns the current control-element size setting.

Definition at line 215 of file MemaReComponent.cpp.

References Mema::MemaClientControlComponentBase::S.

◆ getExternalAdmOscSettings()

std::tuple< int, juce::IPAddress, int > MemaReComponent::getExternalAdmOscSettings ( )

Returns the current ADM-OSC settings as {listenPort, remoteIP, remotePort}.

Definition at line 236 of file MemaReComponent.cpp.

◆ handleMessage()

void MemaReComponent::handleMessage ( const Message &  message)
override

Dispatches inbound network messages to the appropriate control component.

Definition at line 256 of file MemaReComponent.cpp.

References Active, and resized().

◆ paint()

void MemaReComponent::paint ( juce::Graphics &  g)
override

Paints the background when no control mode is active.

Definition at line 241 of file MemaReComponent.cpp.

◆ resetCtrl()

void MemaReComponent::resetCtrl ( )

Resets all control components to their default/empty state.

Definition at line 195 of file MemaReComponent.cpp.

◆ resized()

void MemaReComponent::resized ( )
override

Lays out the active control component to fill the available area.

Definition at line 246 of file MemaReComponent.cpp.

Referenced by handleMessage(), setFaderbankCtrlActive(), setOutputPanningCtrlActive(), and setPluginCtrlActive().

◆ setControlsSize()

void MemaReComponent::setControlsSize ( const Mema::FaderbankControlComponent::ControlsSize ctrlsSize)

Propagates a control-element size change (S/M/L) to the faderbank component.

Definition at line 205 of file MemaReComponent.cpp.

◆ setExternalAdmOscSettings()

void MemaReComponent::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.

Definition at line 227 of file MemaReComponent.cpp.

◆ setFaderbankCtrlActive()

void MemaReComponent::setFaderbankCtrlActive ( )

Switches to the faderbank (crosspoint slider/mute matrix) control mode.

Definition at line 105 of file MemaReComponent.cpp.

References resized().

Referenced by MemaReComponent().

◆ setOutputPanningCtrlActive()

void MemaReComponent::setOutputPanningCtrlActive ( const juce::AudioChannelSet &  channelConfiguration)

Switches to the 2-D spatial panning control for the given speaker layout.

Definition at line 135 of file MemaReComponent.cpp.

References resized().

◆ setPluginCtrlActive()

void MemaReComponent::setPluginCtrlActive ( )

Switches to the plugin-parameter control mode.

Definition at line 166 of file MemaReComponent.cpp.

References resized().

Member Data Documentation

◆ onExitClick

std::function<void()> MemaReComponent::onExitClick

Invoked when the user triggers a disconnection.

Definition at line 103 of file MemaReComponent.h.

◆ onMessageReadyToSend

std::function<void(const juce::MemoryBlock&)> MemaReComponent::onMessageReadyToSend

Invoked with a serialised message whenever a control value changes that must be sent to Mema.

Definition at line 104 of file MemaReComponent.h.

Referenced by MemaReComponent().


The documentation for this class was generated from the following files: