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

Sent by a client to opt in to receiving specific message types from Mema. More...

#include <MemaMessages.h>

+ Inheritance diagram for Mema::DataTrafficTypeSelectionMessage:
+ Collaboration diagram for Mema::DataTrafficTypeSelectionMessage:

Public Member Functions

 DataTrafficTypeSelectionMessage ()=default
 
 DataTrafficTypeSelectionMessage (const std::vector< SerializableMessageType > &trafficTypes)
 
 DataTrafficTypeSelectionMessage (const juce::MemoryBlock &blob)
 
 ~DataTrafficTypeSelectionMessage ()=default
 
const std::vector< SerializableMessageType > & getTrafficTypes () const
 Returns the list of message types this client wants to receive.
 
- Public Member Functions inherited from Mema::SerializableMessage
 SerializableMessage ()=default
 
virtual ~SerializableMessage ()=default
 
void setId (int id)
 Tags the message with a connection-id used for echo-suppression on the server.
 
int getId () const
 Returns the connection-id tag, or -1 if not set.
 
bool hasUserId () const
 Returns true when a non-default connection-id has been assigned.
 
const SerializableMessageType getType () const
 Returns the concrete message type discriminator.
 
juce::MemoryBlock getSerializedMessage () const
 Serialises the message to a MemoryBlock ready to send over the socket.
 

Protected Member Functions

juce::MemoryBlock createSerializedContent (size_t &contentSize) const override
 Subclass hook — produces the type-specific payload bytes (everything after the type discriminator).
 
- Protected Member Functions inherited from Mema::SerializableMessage
std::uint32_t ReadUint32 (const char *buffer)
 Reads a big-endian uint32 from buffer.
 
std::uint16_t ReadUint16 (const char *buffer)
 Reads a big-endian uint16 from buffer.
 

Additional Inherited Members

- Public Types inherited from Mema::SerializableMessage
enum  SerializableMessageType {
  None = 0 ,
  EnvironmentParameters ,
  AnalyzerParameters ,
  ReinitIOCount ,
  AudioInputBuffer ,
  AudioOutputBuffer ,
  DataTrafficTypeSelection ,
  ControlParameters ,
  PluginParameterInfos ,
  PluginParameterValue
}
 
- Static Public Member Functions inherited from Mema::SerializableMessage
static SerializableMessageinitFromMemoryBlock (const juce::MemoryBlock &blob)
 Deserialises a raw TCP frame into the correct concrete SerializableMessage subclass.
 
static void freeMessageData (SerializableMessage *message)
 Type-correctly destroys a SerializableMessage* returned by initFromMemoryBlock().
 
- Protected Attributes inherited from Mema::SerializableMessage
SerializableMessageType m_type = SerializableMessageType::None
 Type discriminator stored in the first 4 bytes of every serialised frame.
 
int m_userId = -1
 Optional connection-id tag for echo-suppression (-1 = not set).
 

Detailed Description

Sent by a client to opt in to receiving specific message types from Mema.

Because audio buffers are large and high-frequency, Mema does not broadcast them to all connected clients by default. A newly connected client sends this message to declare which SerializableMessageType values it wants to receive.

  • Mema.Mo subscribes to AudioOutputBuffer (and optionally AudioInputBuffer) to drive its local ProcessorDataAnalyzer.
  • Mema.Re subscribes to ControlParameters and PluginParameterInfos only — it never requests audio buffers.

Wire payload: uint16 typesCount + typesCount × SerializableMessageType (4 B each).

Definition at line 552 of file MemaMessages.h.

Constructor & Destructor Documentation

◆ DataTrafficTypeSelectionMessage() [1/3]

Mema::DataTrafficTypeSelectionMessage::DataTrafficTypeSelectionMessage ( )
default

◆ DataTrafficTypeSelectionMessage() [2/3]

Mema::DataTrafficTypeSelectionMessage::DataTrafficTypeSelectionMessage ( const std::vector< SerializableMessageType > &  trafficTypes)
inline

◆ DataTrafficTypeSelectionMessage() [3/3]

Mema::DataTrafficTypeSelectionMessage::DataTrafficTypeSelectionMessage ( const juce::MemoryBlock &  blob)
inline

◆ ~DataTrafficTypeSelectionMessage()

Mema::DataTrafficTypeSelectionMessage::~DataTrafficTypeSelectionMessage ( )
default

Member Function Documentation

◆ createSerializedContent()

juce::MemoryBlock Mema::DataTrafficTypeSelectionMessage::createSerializedContent ( size_t &  contentSize) const
inlineoverrideprotectedvirtual

Subclass hook — produces the type-specific payload bytes (everything after the type discriminator).

Parameters
contentSizeSet by the implementation to the byte count of the returned block.
Returns
A MemoryBlock containing only the payload (no type prefix).

Implements Mema::SerializableMessage.

Definition at line 582 of file MemaMessages.h.

◆ getTrafficTypes()

const std::vector< SerializableMessageType > & Mema::DataTrafficTypeSelectionMessage::getTrafficTypes ( ) const
inline

Returns the list of message types this client wants to receive.

Definition at line 579 of file MemaMessages.h.


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