![]() |
Mema
Memory Matrix — multi-channel audio matrix monitor and router
|
Top-level application component for Mema.Mo (MenubarMatrixMonitor). More...
#include <MainComponent.h>
Inheritance diagram for MainComponent:
Collaboration diagram for MainComponent:Public Member Functions | |
| MainComponent () | |
| ~MainComponent () override | |
| void | applySettingsOption (const MemaMoSettingsOption &option) |
| Applies a settings menu selection, updating look-and-feel, visualisation type, or colour. | |
| void | resized () override |
| Lays out the active child component to fill the window. | |
| void | paint (juce::Graphics &g) override |
| Paints the background and any status overlay. | |
| void | lookAndFeelChanged () override |
| Propagates a look-and-feel change to all owned child components. | |
| void | timerCallback () override |
| Periodic callback used to retry TCP connections and poll network status. | |
| bool | keyPressed (const juce::KeyPress &key) override |
| Handles keyboard shortcuts (e.g. Escape to disconnect). | |
| void | performConfigurationDump () override |
| Serialises the current configuration to the XML file on disk. | |
| void | onConfigUpdated () override |
| Reacts to external configuration changes. | |
| bool | isFullscreenEnabled () |
| Returns whether the window is currently displayed in fullscreen mode. | |
| MainComponent () | |
| ~MainComponent () override | |
| void | applySettingsOption (const MemaReSettingsOption &option) |
| Applies a settings menu selection, updating look-and-feel, control format, colour, size, or ADM-OSC settings. | |
| void | resized () override |
| Lays out the active child component to fill the window. | |
| void | paint (juce::Graphics &g) override |
| Paints the background and any status overlay. | |
| void | lookAndFeelChanged () override |
| Propagates a look-and-feel change to all owned child components. | |
| void | timerCallback () override |
| Periodic callback used to retry TCP connections and poll status. | |
| bool | keyPressed (const juce::KeyPress &key) override |
| Handles keyboard shortcuts (e.g. Escape to disconnect). | |
| void | performConfigurationDump () override |
| Serialises the current configuration to the XML file on disk. | |
| void | onConfigUpdated () override |
| Reacts to external configuration changes. | |
| bool | isFullscreenEnabled () |
| Returns whether the window is currently displayed in fullscreen mode. | |
Public Attributes | |
| std::function< void(int, bool)> | onPaletteStyleChange |
| Called when the user changes the look-and-feel or metering colour. | |
| std::function< void(bool)> | onSetFullscreenWindow |
| Called to request a fullscreen/windowed transition from the application shell. | |
Top-level application component for Mema.Mo (MenubarMatrixMonitor).
Top-level application component for Mema.Re (MenubarMatrixRemote).
MainComponent drives the three-phase connection state machine of Mema.Mo and owns all child components that are active in each phase:
| Phase | Active child | Description |
|---|---|---|
| Discovering | MemaClientDiscoverComponent | Listens for multicast service announcements from Mema instances on the local network. |
| Connecting | MemaClientConnectingComponent | Establishes the TCP connection to the selected Mema server. |
| Monitoring | MemaMoComponent | Receives streaming audio buffers and renders the chosen visualisation. |
It also owns the TCP socket (InterprocessConnectionImpl), exposes a settings menu for choosing look-and-feel, output visualisation type, and metering colour, and persists all choices via MemaMoAppConfiguration.
Mema.Mo is the read-only monitoring companion to the Mema audio-matrix server.
ProcessorDataAnalyzer, and renders one of four selectable visualisations.MainComponent drives the three-phase connection state machine of Mema.Re and owns all child components that are active in each phase:
| Phase | Active child | Description |
|---|---|---|
| Discovering | MemaClientDiscoverComponent | Listens for multicast service announcements from Mema instances on the local network. |
| Connecting | MemaClientConnectingComponent | Establishes the TCP connection to the selected Mema server. |
| Controlling | MemaReComponent | Sends user control gestures to Mema and keeps local state in sync with incoming snapshots. |
It also owns the TCP socket (InterprocessConnectionImpl), exposes a settings menu for choosing look-and-feel, control format, accent colour, control size, and ADM-OSC settings, and persists all choices via MemaReAppConfiguration.
Mema.Re is the bidirectional remote-control companion to the Mema audio-matrix server.
ControlParametersMessage state snapshot so Mema.Re can initialise its UI to the current server state.ControlParametersMessage or PluginParameterValueMessage payloads that are sent back to Mema over the same TCP connection.ADMOSController, which feeds position/mute updates into the 2-D panning view.Definition at line 60 of file MainComponent.h.
Identifiers for all user-configurable settings exposed via the settings popup menu.
Definition at line 75 of file MainComponent.h.
Identifiers for all user-configurable settings exposed via the settings popup menu.
Definition at line 79 of file MainComponent.h.
Connection/application phase driven by the TCP session lifecycle.
| Enumerator | |
|---|---|
| Discovering | Searching for Mema instances via multicast. |
| Connecting | TCP handshake in progress. |
| Monitoring | Connected and actively receiving audio data. Connected and actively sending/receiving control data. |
| Discovering | Searching for Mema instances via multicast. |
| Connecting | TCP handshake in progress. |
| Monitoring | Connected and actively receiving audio data. Connected and actively sending/receiving control data. |
Definition at line 67 of file MainComponent.h.
Connection/application phase driven by the TCP session lifecycle.
| Enumerator | |
|---|---|
| Discovering | Searching for Mema instances via multicast. |
| Connecting | TCP handshake in progress. |
| Monitoring | Connected and actively receiving audio data. Connected and actively sending/receiving control data. |
| Discovering | Searching for Mema instances via multicast. |
| Connecting | TCP handshake in progress. |
| Monitoring | Connected and actively receiving audio data. Connected and actively sending/receiving control data. |
Definition at line 71 of file MainComponent.h.
| MainComponent::MainComponent | ( | ) |
Definition at line 36 of file MainComponent.cpp.
References Mema::SerializableMessage::AnalyzerParameters, Mema::SerializableMessage::AudioInputBuffer, Mema::SerializableMessage::AudioOutputBuffer, Mema::SerializableMessage::EnvironmentParameters, Mema::SerializableMessage::freeMessageData(), Mema::ServiceData::getMonitorServiceTypeUID(), Mema::ServiceData::getServiceTypeUIDBase(), Mema::SerializableMessage::initFromMemoryBlock(), MeteringColour_Blue, MeteringColour_First, MeteringColour_Green, MeteringColour_Laser, MeteringColour_Last, MeteringColour_Pink, MeteringColour_Red, onPaletteStyleChange, OutputVisuType_5point0, OutputVisuType_5point1, OutputVisuType_5point1point2, OutputVisuType_7point0, OutputVisuType_7point1, OutputVisuType_7point1point4, OutputVisuType_9point1point6, OutputVisuType_First, OutputVisuType_Last, OutputVisuType_LCRS, OutputVisuType_LRS, OutputVisuType_Meterbridge, OutputVisuType_Quadrophonic, OutputVisuType_Spectrum, OutputVisuType_Waveform, and Mema::SerializableMessage::ReinitIOCount.
|
override |
Definition at line 244 of file MainComponent.cpp.
| MainComponent::MainComponent | ( | ) |
|
override |
| void MainComponent::applySettingsOption | ( | const MemaMoSettingsOption & | option | ) |
Applies a settings menu selection, updating look-and-feel, visualisation type, or colour.
Definition at line 307 of file MainComponent.cpp.
| void MainComponent::applySettingsOption | ( | const MemaReSettingsOption & | option | ) |
Applies a settings menu selection, updating look-and-feel, control format, colour, size, or ADM-OSC settings.
Definition at line 329 of file MainComponent.cpp.
References LookAndFeel_First.
| bool MainComponent::isFullscreenEnabled | ( | ) |
Returns whether the window is currently displayed in fullscreen mode.
Definition at line 705 of file MainComponent.cpp.
References LookAndFeel_First.
| bool MainComponent::isFullscreenEnabled | ( | ) |
Returns whether the window is currently displayed in fullscreen mode.
Handles keyboard shortcuts (e.g. Escape to disconnect).
Definition at line 596 of file MainComponent.cpp.
References LookAndFeel_First.
Handles keyboard shortcuts (e.g. Escape to disconnect).
|
override |
Propagates a look-and-feel change to all owned child components.
Definition at line 290 of file MainComponent.cpp.
|
override |
Propagates a look-and-feel change to all owned child components.
|
override |
Reacts to external configuration changes.
Definition at line 654 of file MainComponent.cpp.
References MemaMoAppConfiguration::CONNECTIONCONFIG, MemaMoAppConfiguration::COUNT, MemaMoAppConfiguration::getAttributeName(), MemaMoAppConfiguration::getTagName(), MemaMoAppConfiguration::LOOKANDFEEL, LookAndFeel_First, MemaMoAppConfiguration::METERINGCOLOUR, MemaMoAppConfiguration::OUTPUTVISUTYPE, MemaMoAppConfiguration::SERVICEDESCRIPTION, and MemaMoAppConfiguration::VISUCONFIG.
|
override |
Reacts to external configuration changes.
|
override |
Paints the background and any status overlay.
Definition at line 285 of file MainComponent.cpp.
|
override |
Paints the background and any status overlay.
|
override |
Serialises the current configuration to the XML file on disk.
Definition at line 608 of file MainComponent.cpp.
References MemaMoAppConfiguration::CONNECTIONCONFIG, MemaMoAppConfiguration::COUNT, MemaMoAppConfiguration::getAttributeName(), MemaMoAppConfiguration::getTagName(), MemaMoAppConfiguration::LOOKANDFEEL, LookAndFeel_First, MemaMoAppConfiguration::METERINGCOLOUR, MeteringColour_First, MeteringColour_Last, MemaMoAppConfiguration::OUTPUTVISUTYPE, OutputVisuType_First, OutputVisuType_Last, MemaMoAppConfiguration::SERVICEDESCRIPTION, and MemaMoAppConfiguration::VISUCONFIG.
|
override |
Serialises the current configuration to the XML file on disk.
|
override |
Lays out the active child component to fill the window.
Definition at line 248 of file MainComponent.cpp.
|
override |
Lays out the active child component to fill the window.
|
override |
Periodic callback used to retry TCP connections and poll network status.
Definition at line 574 of file MainComponent.cpp.
References LookAndFeel_First.
|
override |
Periodic callback used to retry TCP connections and poll status.
Called when the user changes the look-and-feel or metering colour.
Called when the user changes the look-and-feel or accent colour.
Definition at line 139 of file MainComponent.h.
Referenced by MainComponent().
Called to request a fullscreen/windowed transition from the application shell.
Definition at line 142 of file MainComponent.h.