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

Carries audio-device parameters (sample rate, block size) from Mema to clients. More...

#include <MemaMessages.h>

+ Inheritance diagram for Mema::AnalyzerParametersMessage:
+ Collaboration diagram for Mema::AnalyzerParametersMessage:

Public Member Functions

 AnalyzerParametersMessage ()=default
 
 AnalyzerParametersMessage (int sampleRate, int maximumExpectedSamplesPerBlock)
 
 AnalyzerParametersMessage (const juce::MemoryBlock &blob)
 
 ~AnalyzerParametersMessage ()=default
 
int getSampleRate () const
 Returns the audio device sample rate in Hz.
 
int getMaximumExpectedSamplesPerBlock () const
 Returns the maximum number of samples per processing block.
 
- 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

Carries audio-device parameters (sample rate, block size) from Mema to clients.

Sent by MemaProcessor::audioDeviceAboutToStart() to every connected client so that each client can initialise its local ProcessorDataAnalyzer replica with the same parameters Mema uses internally, ensuring that metering and spectrum data are computed at the correct scale.

Wire payload (4 bytes): uint16 sampleRate + uint16 maximumExpectedSamplesPerBlock.

Definition at line 306 of file MemaMessages.h.

Constructor & Destructor Documentation

◆ AnalyzerParametersMessage() [1/3]

Mema::AnalyzerParametersMessage::AnalyzerParametersMessage ( )
default

◆ AnalyzerParametersMessage() [2/3]

Mema::AnalyzerParametersMessage::AnalyzerParametersMessage ( int  sampleRate,
int  maximumExpectedSamplesPerBlock 
)
inline

◆ AnalyzerParametersMessage() [3/3]

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

◆ ~AnalyzerParametersMessage()

Mema::AnalyzerParametersMessage::~AnalyzerParametersMessage ( )
default

Member Function Documentation

◆ createSerializedContent()

juce::MemoryBlock Mema::AnalyzerParametersMessage::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 328 of file MemaMessages.h.

◆ getMaximumExpectedSamplesPerBlock()

int Mema::AnalyzerParametersMessage::getMaximumExpectedSamplesPerBlock ( ) const
inline

Returns the maximum number of samples per processing block.

Definition at line 325 of file MemaMessages.h.

◆ getSampleRate()

int Mema::AnalyzerParametersMessage::getSampleRate ( ) const
inline

Returns the audio device sample rate in Hz.

Definition at line 323 of file MemaMessages.h.


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