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

Carries a pre-matrix input audio buffer streamed continuously from Mema to subscribed clients. More...

#include <MemaMessages.h>

+ Inheritance diagram for Mema::AudioInputBufferMessage:
+ Collaboration diagram for Mema::AudioInputBufferMessage:

Public Member Functions

 AudioInputBufferMessage ()=default
 
 AudioInputBufferMessage (juce::AudioBuffer< float > &buffer)
 
 AudioInputBufferMessage (const juce::MemoryBlock &blob)
 
 ~AudioInputBufferMessage ()=default
 
- Public Member Functions inherited from Mema::AudioBufferMessage
 AudioBufferMessage ()=default
 
 AudioBufferMessage (juce::AudioBuffer< float > &buffer)
 
 ~AudioBufferMessage ()=default
 
const juce::AudioBuffer< float > & getAudioBuffer () const
 Returns a const reference to the decoded audio buffer.
 
const FlowDirection getFlowDirection () const
 Returns the flow direction encoded in the message.
 
- 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.
 

Additional Inherited Members

- Public Types inherited from Mema::AudioBufferMessage
enum  FlowDirection {
  Invalid ,
  Input ,
  Output
}
 Identifies whether the buffer contains pre-matrix input or post-matrix output samples. More...
 
- 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 Member Functions inherited from Mema::AudioBufferMessage
juce::MemoryBlock createSerializedContent (size_t &contentSize) const
 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.
 
- Protected Attributes inherited from Mema::AudioBufferMessage
FlowDirection m_direction { FlowDirection::Invalid }
 Input or output flow direction.
 
juce::AudioBuffer< float > m_buffer
 Decoded float audio buffer.
 
- 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 a pre-matrix input audio buffer streamed continuously from Mema to subscribed clients.

Instantiated by MemaProcessor in audioDeviceIOCallbackWithContext() after the input data has been captured but before it passes through the crosspoint matrix. Clients that have subscribed to AudioInputBuffer traffic (via DataTrafficTypeSelectionMessage) receive one of these per audio device block.

Definition at line 457 of file MemaMessages.h.

Constructor & Destructor Documentation

◆ AudioInputBufferMessage() [1/3]

Mema::AudioInputBufferMessage::AudioInputBufferMessage ( )
default

◆ AudioInputBufferMessage() [2/3]

Mema::AudioInputBufferMessage::AudioInputBufferMessage ( juce::AudioBuffer< float > &  buffer)
inline

◆ AudioInputBufferMessage() [3/3]

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

◆ ~AudioInputBufferMessage()

Mema::AudioInputBufferMessage::~AudioInputBufferMessage ( )
default

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