Control Surface pin-t-adl
MIDI Control Surface library for Arduino
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Private Attributes | List of all members
SerialDebugMIDI_Output< T > Class Template Reference

#include <MIDI_Interfaces/DebugMIDI_Interface.hpp>

Detailed Description

template<typename T>
class SerialDebugMIDI_Output< T >

A wrapper class for debug MIDI outputs sending human-readable MIDI messages over a Serial port of class T.

Note
This is a template class because the class of the Serial object is completely different on different architectures, and they do not share a common super-class that has a begin method.

Definition at line 84 of file DebugMIDI_Interface.hpp.

+ Inheritance diagram for SerialDebugMIDI_Output< T >:
+ Collaboration diagram for SerialDebugMIDI_Output< T >:

Enabling and disabling updatables

void enable ()
 Enable this updatable: insert it into the linked list of instances, so it gets updated automatically. More...
 
void disable ()
 Disable this updatable: remove it from the linked list of instances, so it no longer gets updated automatically. More...
 
bool isEnabled () const
 Check if this updatable is enabled. More...
 
void moveDown ()
 Move down this element in the list. More...
 
static void enable (UpdatableCRTP *element)
 Enable this updatable: insert it into the linked list of instances, so it gets updated automatically. More...
 
static void enable (UpdatableCRTP &element)
 Enable this updatable: insert it into the linked list of instances, so it gets updated automatically. More...
 
static void enable (U(&array)[N])
 Enable this updatable: insert it into the linked list of instances, so it gets updated automatically. More...
 
static void disable (UpdatableCRTP *element)
 Disable this updatable: remove it from the linked list of instances, so it no longer gets updated automatically. More...
 
static void disable (UpdatableCRTP &element)
 Disable this updatable: remove it from the linked list of instances, so it no longer gets updated automatically. More...
 
static void disable (U(&array)[N])
 Disable this updatable: remove it from the linked list of instances, so it no longer gets updated automatically. More...
 

Sending MIDI Channel Voice messages

void send (ChannelMessage message)
 Send a MIDI Channel Voice message. More...
 
void sendChannelMessage (MIDIMessageType m, Channel c, uint8_t d1, uint8_t d2, Cable cable=CABLE_1)
 Send a 3-byte MIDI Channel Voice message. More...
 
void sendChannelMessage (MIDIMessageType m, Channel c, uint8_t d1, Cable cable=CABLE_1)
 Send a 2-byte MIDI Channel Voice message. More...
 
void sendNoteOn (MIDIAddress address, uint8_t velocity)
 Send a MIDI Note On event. More...
 
void sendNoteOff (MIDIAddress address, uint8_t velocity)
 Send a MIDI Note Off event. More...
 
void sendKeyPressure (MIDIAddress address, uint8_t pressure)
 Send a MIDI Key Pressure event. More...
 
void sendControlChange (MIDIAddress address, uint8_t value)
 Send a MIDI Control Change event. More...
 
void sendProgramChange (MIDIAddress address)
 Send a MIDI Program Change event. More...
 
void sendProgramChange (MIDIChannelCable address, uint8_t value)
 Send a MIDI Program Change event. More...
 
void sendChannelPressure (MIDIChannelCable address, uint8_t pressure)
 Send a MIDI Channel Pressure event. More...
 
void sendPitchBend (MIDIChannelCable address, uint16_t value)
 Send a MIDI Pitch Bend event. More...
 

Sending MIDI System Common messages

void send (SysCommonMessage message)
 Send a MIDI System Common message. More...
 
void sendSysCommon (MIDIMessageType m, Cable cable=CABLE_1)
 Send a MIDI System Common message. More...
 
void sendSysCommon (MIDIMessageType m, uint8_t data1, Cable cable=CABLE_1)
 Send a MIDI System Common message. More...
 
void sendSysCommon (MIDIMessageType m, uint8_t data1, uint8_t data2, Cable cable=CABLE_1)
 Send a MIDI System Common message. More...
 
void sendMTCQuarterFrame (uint8_t data, Cable cable=CABLE_1)
 Send a MIDI Time Code Quarter Frame. More...
 
void sendMTCQuarterFrame (uint8_t messageType, uint8_t values, Cable cable=CABLE_1)
 Send a MIDI Time Code Quarter Frame. More...
 
void sendSongPositionPointer (uint16_t spp, Cable cable=CABLE_1)
 Send a MIDI Song Position Pointer message. More...
 
void sendSongSelect (uint8_t song, Cable cable=CABLE_1)
 Send a MIDI Song Select message. More...
 
void sendTuneRequest (Cable cable=CABLE_1)
 Send a MIDI Tune Request. More...
 

Sending MIDI System Exclusive messages

void send (SysExMessage message)
 Send a MIDI System Exclusive message. More...
 
void sendSysEx (const uint8_t(&sysexdata)[N], Cable cable=CABLE_1)
 Send a MIDI System Exclusive message. More...
 
void sendSysEx (const uint8_t *data, uint16_t length, Cable cable=CABLE_1)
 Send a MIDI System Exclusive message. More...
 

Sending MIDI Real-Time messages

void send (RealTimeMessage message)
 Send a MIDI Real-Time message. More...
 
void sendRealTime (MIDIMessageType rt, Cable cable=CABLE_1)
 Send a MIDI Real-Time message. More...
 
void sendRealTime (uint8_t rt, Cable cable=CABLE_1)
 Send a MIDI Real-Time message. More...
 
void sendTimingClock (Cable cable=CABLE_1)
 Send a MIDI Timing Clock message. More...
 
void sendStart (Cable cable=CABLE_1)
 Send a MIDI Start message. More...
 
void sendContinue (Cable cable=CABLE_1)
 Send a MIDI Continue message. More...
 
void sendStop (Cable cable=CABLE_1)
 Send a MIDI Stop message. More...
 
void sendActiveSensing (Cable cable=CABLE_1)
 Send a MIDI Active Sensing message. More...
 
void sendSystemReset (Cable cable=CABLE_1)
 Send a MIDI System Reset message. More...
 

Flusing the MIDI send buffer

void sendNow ()
 Causes all buffered messages to be sent immediately. More...
 

Deprecated

void sendKP (MIDIAddress address, uint8_t pressure)
 Send a MIDI Key Pressure event. More...
 
void sendCC (MIDIAddress address, uint8_t value)
 Send a MIDI Control Change event. More...
 
void sendPC (MIDIAddress address)
 Send a MIDI Program Change event. More...
 
void sendPC (MIDIChannelCable address, uint8_t value)
 Send a MIDI Program Change event. More...
 
void sendCP (MIDIChannelCable address, uint8_t pressure)
 Send a MIDI Channel Pressure event. More...
 
void sendPB (MIDIChannelCable address, uint16_t value)
 Send a MIDI Pitch Bend event. More...
 

Connecting and disconnecting MIDI Pipes

void connectSourcePipe (MIDI_Pipe *source)
 Fully connect a source pipe to this sink. More...
 
void disconnectSourcePipes ()
 Disconnect all source pipes that sink to this sink (recursively). More...
 
bool disconnect (TrueMIDI_Source &source)
 Disconnect the given source from this sink. More...
 
bool disconnect (MIDI_Pipe &)=delete
 
bool hasSourcePipe () const
 Check if this sink is connected to a source pipe. More...
 
MIDI_PipegetSourcePipe ()
 Get a pointer to the pipe this sink is connected to, or nullptr if not connected. More...
 

Public Member Functions

 SerialDebugMIDI_Output (T &serial, unsigned long baud=AH::defaultBaudRate, const char *prefix=nullptr)
 Construct a new Debug MIDI Output on the given Serial interface with the given baud rate. More...
 
 SerialDebugMIDI_Output (T &serial, const char *prefix)
 
void begin () override
 Start the Serial interface at the predefined baud rate. More...
 
Stream & getStream () const
 
void setPrefix (const char *prefix)
 Set the prefix to be printed before each message. More...
 
const char * getPrefix () const
 

Static Public Member Functions

static void beginAll ()
 
static void swap (MIDI_Sink &a, MIDI_Sink &b)
 

Protected Member Functions

void sendChannelMessageImpl (ChannelMessage)
 
void sendChannelMessageImpl (Stream &, ChannelMessage)
 
void sendSysCommonImpl (SysCommonMessage)
 
void sendSysCommonImpl (Stream &, SysCommonMessage)
 
void sendSysExImpl (SysExMessage)
 
void sendSysExImpl (Stream &, SysExMessage)
 
void sendRealTimeImpl (RealTimeMessage)
 
void sendRealTimeImpl (Stream &, RealTimeMessage)
 
void sendNowImpl ()
 
void sendNowImpl (Stream &)
 
void sinkMIDIfromPipe (ChannelMessage m) override
 Accept an incoming MIDI Channel message. More...
 
void sinkMIDIfromPipe (SysExMessage m) override
 Accept an incoming MIDI System Exclusive message. More...
 
void sinkMIDIfromPipe (SysCommonMessage m) override
 Accept an incoming MIDI System Common message. More...
 
void sinkMIDIfromPipe (RealTimeMessage m) override
 Accept an incoming MIDI Real-Time message. More...
 

Protected Attributes

MIDIOutputOnlynext
 
MIDIOutputOnlyprevious
 
Stream & stream
 
friend MIDI_Sender< StreamDebugMIDI_Output >
 
MIDI_PipesourcePipe = nullptr
 

Static Protected Attributes

static DoublyLinkedList< MIDIOutputOnlyupdatables
 

Private Member Functions

virtual void stallDownstream (MIDIStaller *, MIDI_Source *)
 Base case for recursive stall function. More...
 
virtual void unstallDownstream (MIDIStaller *, MIDI_Source *)
 Base case for recursive un-stall function. More...
 
virtual MIDI_SinkgetFinalSink ()
 Base case for recursive function. More...
 
void disconnectSourcePipesShallow ()
 Disconnect only the first pipe connected to this sink. More...
 

Private Attributes

const unsigned long baud
 
const char * prefix = nullptr
 

Constructor & Destructor Documentation

◆ SerialDebugMIDI_Output() [1/2]

SerialDebugMIDI_Output ( T &  serial,
unsigned long  baud = AH::defaultBaudRate,
const char *  prefix = nullptr 
)
inline

Construct a new Debug MIDI Output on the given Serial interface with the given baud rate.

Parameters
serialThe Serial interface.
baudThe baud rate for the Serial interface.
prefixAn optional string to print before each message.

Definition at line 98 of file DebugMIDI_Interface.hpp.

◆ SerialDebugMIDI_Output() [2/2]

SerialDebugMIDI_Output ( T &  serial,
const char *  prefix 
)
inline

Member Function Documentation

◆ begin()

void begin ( )
inlineoverridevirtual

Start the Serial interface at the predefined baud rate.

Implements MIDIOutputOnly.

Definition at line 108 of file DebugMIDI_Interface.hpp.

◆ beginAll()

static void beginAll ( )
inlinestaticinherited

Definition at line 70 of file DebugMIDI_Interface.hpp.

◆ enable() [1/4]

void enable ( )
inlineinherited

Enable this updatable: insert it into the linked list of instances, so it gets updated automatically.

Definition at line 100 of file Updatable.hpp.

◆ enable() [2/4]

static void enable ( UpdatableCRTP< MIDIOutputOnly > *  element)
inlinestaticinherited

Enable this updatable: insert it into the linked list of instances, so it gets updated automatically.

Definition at line 129 of file Updatable.hpp.

◆ enable() [3/4]

static void enable ( UpdatableCRTP< MIDIOutputOnly > &  element)
inlinestaticinherited

Enable this updatable: insert it into the linked list of instances, so it gets updated automatically.

Definition at line 131 of file Updatable.hpp.

◆ enable() [4/4]

static void enable ( U(&)  array[N])
inlinestaticinherited

Enable this updatable: insert it into the linked list of instances, so it gets updated automatically.

Definition at line 134 of file Updatable.hpp.

◆ disable() [1/4]

void disable ( )
inlineinherited

Disable this updatable: remove it from the linked list of instances, so it no longer gets updated automatically.

Definition at line 110 of file Updatable.hpp.

◆ disable() [2/4]

static void disable ( UpdatableCRTP< MIDIOutputOnly > *  element)
inlinestaticinherited

Disable this updatable: remove it from the linked list of instances, so it no longer gets updated automatically.

Definition at line 140 of file Updatable.hpp.

◆ disable() [3/4]

static void disable ( UpdatableCRTP< MIDIOutputOnly > &  element)
inlinestaticinherited

Disable this updatable: remove it from the linked list of instances, so it no longer gets updated automatically.

Definition at line 142 of file Updatable.hpp.

◆ disable() [4/4]

static void disable ( U(&)  array[N])
inlinestaticinherited

Disable this updatable: remove it from the linked list of instances, so it no longer gets updated automatically.

Definition at line 145 of file Updatable.hpp.

◆ isEnabled()

bool isEnabled ( ) const
inlineinherited

Check if this updatable is enabled.

Note
Assumes that the updatable is not added to a different linked list by the user.

Definition at line 124 of file Updatable.hpp.

◆ moveDown()

void moveDown ( )
inlineinherited

Move down this element in the list.

Definition at line 151 of file Updatable.hpp.

◆ getStream()

Stream & getStream ( ) const
inlineinherited

Definition at line 47 of file DebugMIDI_Interface.hpp.

◆ sendChannelMessageImpl() [1/2]

void sendChannelMessageImpl ( ChannelMessage  m)
protectedinherited

Definition at line 118 of file DebugMIDI_Interface.cpp.

◆ sendChannelMessageImpl() [2/2]

void sendChannelMessageImpl ( Stream &  stream,
ChannelMessage  msg 
)
protectedinherited

Definition at line 52 of file DebugMIDI_Interface.cpp.

◆ sendSysCommonImpl() [1/2]

void sendSysCommonImpl ( SysCommonMessage  m)
protectedinherited

Definition at line 121 of file DebugMIDI_Interface.cpp.

◆ sendSysCommonImpl() [2/2]

void sendSysCommonImpl ( Stream &  stream,
SysCommonMessage  msg 
)
protectedinherited

Definition at line 89 of file DebugMIDI_Interface.cpp.

◆ sendSysExImpl() [1/2]

void sendSysExImpl ( SysExMessage  m)
protectedinherited

Definition at line 124 of file DebugMIDI_Interface.cpp.

◆ sendSysExImpl() [2/2]

void sendSysExImpl ( Stream &  stream,
SysExMessage  msg 
)
protectedinherited

Definition at line 77 of file DebugMIDI_Interface.cpp.

◆ sendRealTimeImpl() [1/2]

void sendRealTimeImpl ( RealTimeMessage  m)
protectedinherited

Definition at line 127 of file DebugMIDI_Interface.cpp.

◆ sendRealTimeImpl() [2/2]

void sendRealTimeImpl ( Stream &  stream,
RealTimeMessage  msg 
)
protectedinherited

Definition at line 107 of file DebugMIDI_Interface.cpp.

◆ sendNowImpl() [1/2]

void sendNowImpl ( )
protectedinherited

Definition at line 130 of file DebugMIDI_Interface.cpp.

◆ sendNowImpl() [2/2]

void sendNowImpl ( Stream &  )
inlineprotectedinherited

Definition at line 21 of file DebugMIDI_Interface.hpp.

◆ sinkMIDIfromPipe() [1/4]

void sinkMIDIfromPipe ( ChannelMessage  )
inlineoverrideprotectedvirtualinherited

Accept an incoming MIDI Channel message.

Implements MIDI_Sink.

Definition at line 56 of file DebugMIDI_Interface.hpp.

◆ sinkMIDIfromPipe() [2/4]

void sinkMIDIfromPipe ( SysExMessage  )
inlineoverrideprotectedvirtualinherited

Accept an incoming MIDI System Exclusive message.

Implements MIDI_Sink.

Definition at line 57 of file DebugMIDI_Interface.hpp.

◆ sinkMIDIfromPipe() [3/4]

void sinkMIDIfromPipe ( SysCommonMessage  )
inlineoverrideprotectedvirtualinherited

Accept an incoming MIDI System Common message.

Implements MIDI_Sink.

Definition at line 58 of file DebugMIDI_Interface.hpp.

◆ sinkMIDIfromPipe() [4/4]

void sinkMIDIfromPipe ( RealTimeMessage  )
inlineoverrideprotectedvirtualinherited

Accept an incoming MIDI Real-Time message.

Implements MIDI_Sink.

Definition at line 59 of file DebugMIDI_Interface.hpp.

◆ setPrefix()

void setPrefix ( const char *  prefix)
inlineinherited

Set the prefix to be printed before each message.

Definition at line 27 of file DebugMIDI_Interface.hpp.

◆ getPrefix()

const char * getPrefix ( ) const
inlineinherited

Definition at line 28 of file DebugMIDI_Interface.hpp.

◆ send() [1/4]

void send ( ChannelMessage  message)
inherited

Send a MIDI Channel Voice message.

Definition at line 17 of file MIDI_Sender.ipp.

◆ send() [2/4]

void send ( SysCommonMessage  message)
inherited

Send a MIDI System Common message.

Definition at line 74 of file MIDI_Sender.ipp.

◆ send() [3/4]

void send ( SysExMessage  message)
inherited

Send a MIDI System Exclusive message.

Definition at line 101 of file MIDI_Sender.ipp.

◆ send() [4/4]

void send ( RealTimeMessage  message)
inherited

Send a MIDI Real-Time message.

Definition at line 114 of file MIDI_Sender.ipp.

◆ sendChannelMessage() [1/2]

void sendChannelMessage ( MIDIMessageType  m,
Channel  c,
uint8_t  d1,
uint8_t  d2,
Cable  cable = CABLE_1 
)
inherited

Send a 3-byte MIDI Channel Voice message.

Parameters
mMIDI message type. [0x80, 0xE0]
cThe MIDI channel. [1, 16]
d1The first data byte. [0, 127]
d2The second data byte. [0, 127]
cableThe MIDI Cable Number. [CABLE_1, CABLE_16]

Definition at line 33 of file MIDI_Sender.ipp.

◆ sendChannelMessage() [2/2]

void sendChannelMessage ( MIDIMessageType  m,
Channel  c,
uint8_t  d1,
Cable  cable = CABLE_1 
)
inherited

Send a 2-byte MIDI Channel Voice message.

Parameters
mMIDI message type. [0x80, 0xE0]
cThe MIDI channel. [1, 16]
d1The first data byte. [0, 127]
cableThe MIDI Cable Number. [1, 16]

Definition at line 48 of file MIDI_Sender.ipp.

◆ sendNoteOn()

void sendNoteOn ( MIDIAddress  address,
uint8_t  velocity 
)
inherited

Send a MIDI Note On event.

Definition at line 52 of file MIDI_Sender.ipp.

◆ sendNoteOff()

void sendNoteOff ( MIDIAddress  address,
uint8_t  velocity 
)
inherited

Send a MIDI Note Off event.

Definition at line 54 of file MIDI_Sender.ipp.

◆ sendKeyPressure()

void sendKeyPressure ( MIDIAddress  address,
uint8_t  pressure 
)
inherited

Send a MIDI Key Pressure event.

Definition at line 56 of file MIDI_Sender.ipp.

◆ sendControlChange()

void sendControlChange ( MIDIAddress  address,
uint8_t  value 
)
inherited

Send a MIDI Control Change event.

Definition at line 58 of file MIDI_Sender.ipp.

◆ sendProgramChange() [1/2]

void sendProgramChange ( MIDIAddress  address)
inherited

Send a MIDI Program Change event.

Definition at line 60 of file MIDI_Sender.ipp.

◆ sendProgramChange() [2/2]

void sendProgramChange ( MIDIChannelCable  address,
uint8_t  value 
)
inherited

Send a MIDI Program Change event.

Definition at line 62 of file MIDI_Sender.ipp.

◆ sendChannelPressure()

void sendChannelPressure ( MIDIChannelCable  address,
uint8_t  pressure 
)
inherited

Send a MIDI Channel Pressure event.

Definition at line 64 of file MIDI_Sender.ipp.

◆ sendPitchBend()

void sendPitchBend ( MIDIChannelCable  address,
uint16_t  value 
)
inherited

Send a MIDI Pitch Bend event.

Definition at line 66 of file MIDI_Sender.ipp.

◆ sendSysCommon() [1/3]

void sendSysCommon ( MIDIMessageType  m,
Cable  cable = CABLE_1 
)
inherited

Send a MIDI System Common message.

Definition at line 76 of file MIDI_Sender.ipp.

◆ sendSysCommon() [2/3]

void sendSysCommon ( MIDIMessageType  m,
uint8_t  data1,
Cable  cable = CABLE_1 
)
inherited

Send a MIDI System Common message.

Definition at line 78 of file MIDI_Sender.ipp.

◆ sendSysCommon() [3/3]

void sendSysCommon ( MIDIMessageType  m,
uint8_t  data1,
uint8_t  data2,
Cable  cable = CABLE_1 
)
inherited

Send a MIDI System Common message.

Definition at line 80 of file MIDI_Sender.ipp.

◆ sendMTCQuarterFrame() [1/2]

void sendMTCQuarterFrame ( uint8_t  data,
Cable  cable = CABLE_1 
)
inherited

Send a MIDI Time Code Quarter Frame.

Definition at line 84 of file MIDI_Sender.ipp.

◆ sendMTCQuarterFrame() [2/2]

void sendMTCQuarterFrame ( uint8_t  messageType,
uint8_t  values,
Cable  cable = CABLE_1 
)
inherited

Send a MIDI Time Code Quarter Frame.

Definition at line 86 of file MIDI_Sender.ipp.

◆ sendSongPositionPointer()

void sendSongPositionPointer ( uint16_t  spp,
Cable  cable = CABLE_1 
)
inherited

Send a MIDI Song Position Pointer message.

Definition at line 89 of file MIDI_Sender.ipp.

◆ sendSongSelect()

void sendSongSelect ( uint8_t  song,
Cable  cable = CABLE_1 
)
inherited

Send a MIDI Song Select message.

Definition at line 91 of file MIDI_Sender.ipp.

◆ sendTuneRequest()

void sendTuneRequest ( Cable  cable = CABLE_1)
inherited

Send a MIDI Tune Request.

Definition at line 93 of file MIDI_Sender.ipp.

◆ sendSysEx() [1/2]

void sendSysEx ( const uint8_t(&)  sysexdata[N],
Cable  cable = CABLE_1 
)
inherited

Send a MIDI System Exclusive message.

Definition at line 104 of file MIDI_Sender.ipp.

◆ sendSysEx() [2/2]

void sendSysEx ( const uint8_t *  data,
uint16_t  length,
Cable  cable = CABLE_1 
)
inherited

Send a MIDI System Exclusive message.

Definition at line 106 of file MIDI_Sender.ipp.

◆ sendRealTime() [1/2]

void sendRealTime ( MIDIMessageType  rt,
Cable  cable = CABLE_1 
)
inherited

Send a MIDI Real-Time message.

Definition at line 116 of file MIDI_Sender.ipp.

◆ sendRealTime() [2/2]

void sendRealTime ( uint8_t  rt,
Cable  cable = CABLE_1 
)
inherited

Send a MIDI Real-Time message.

Definition at line 118 of file MIDI_Sender.ipp.

◆ sendTimingClock()

void sendTimingClock ( Cable  cable = CABLE_1)
inherited

Send a MIDI Timing Clock message.

Definition at line 121 of file MIDI_Sender.ipp.

◆ sendStart()

void sendStart ( Cable  cable = CABLE_1)
inherited

Send a MIDI Start message.

Definition at line 123 of file MIDI_Sender.ipp.

◆ sendContinue()

void sendContinue ( Cable  cable = CABLE_1)
inherited

Send a MIDI Continue message.

Definition at line 125 of file MIDI_Sender.ipp.

◆ sendStop()

void sendStop ( Cable  cable = CABLE_1)
inherited

Send a MIDI Stop message.

Definition at line 127 of file MIDI_Sender.ipp.

◆ sendActiveSensing()

void sendActiveSensing ( Cable  cable = CABLE_1)
inherited

Send a MIDI Active Sensing message.

Definition at line 129 of file MIDI_Sender.ipp.

◆ sendSystemReset()

void sendSystemReset ( Cable  cable = CABLE_1)
inherited

Send a MIDI System Reset message.

Definition at line 131 of file MIDI_Sender.ipp.

◆ sendNow()

void sendNow
inherited

Causes all buffered messages to be sent immediately.

Note
Doesn't necessarily wait until all data has been sent, it just triggers the transmission, so everything will be transmitted as soon as possible.

Definition at line 142 of file MIDI_Sender.ipp.

◆ sendKP()

void sendKP ( MIDIAddress  address,
uint8_t  pressure 
)
inherited

Send a MIDI Key Pressure event.

Definition at line 152 of file MIDI_Sender.ipp.

◆ sendCC()

void sendCC ( MIDIAddress  address,
uint8_t  value 
)
inherited

Send a MIDI Control Change event.

Definition at line 156 of file MIDI_Sender.ipp.

◆ sendPC() [1/2]

void sendPC ( MIDIAddress  address)
inherited

Send a MIDI Program Change event.

Definition at line 160 of file MIDI_Sender.ipp.

◆ sendPC() [2/2]

void sendPC ( MIDIChannelCable  address,
uint8_t  value 
)
inherited

Send a MIDI Program Change event.

Definition at line 164 of file MIDI_Sender.ipp.

◆ sendCP()

void sendCP ( MIDIChannelCable  address,
uint8_t  pressure 
)
inherited

Send a MIDI Channel Pressure event.

Definition at line 168 of file MIDI_Sender.ipp.

◆ sendPB()

void sendPB ( MIDIChannelCable  address,
uint16_t  value 
)
inherited

Send a MIDI Pitch Bend event.

Definition at line 172 of file MIDI_Sender.ipp.

◆ connectSourcePipe()

void connectSourcePipe ( MIDI_Pipe source)
inherited

Fully connect a source pipe to this sink.

Definition at line 16 of file MIDI_Pipes.cpp.

◆ disconnectSourcePipes()

void disconnectSourcePipes ( )
inherited

Disconnect all source pipes that sink to this sink (recursively).

Definition at line 25 of file MIDI_Pipes.cpp.

◆ disconnect() [1/2]

bool disconnect ( TrueMIDI_Source source)
inherited

Disconnect the given source from this sink.

Leaves other sources connected. Returns true if the source was found and disconnected, false if the given source was not a direct or indirect source to this sink.

Definition at line 40 of file MIDI_Pipes.cpp.

◆ disconnect() [2/2]

bool disconnect ( MIDI_Pipe )
deleteinherited

◆ hasSourcePipe()

bool hasSourcePipe ( ) const
inlineinherited

Check if this sink is connected to a source pipe.

Definition at line 117 of file MIDI_Pipes.hpp.

◆ getSourcePipe()

MIDI_Pipe * getSourcePipe ( )
inlineinherited

Get a pointer to the pipe this sink is connected to, or nullptr if not connected.

Definition at line 120 of file MIDI_Pipes.hpp.

◆ stallDownstream()

virtual void stallDownstream ( MIDIStaller ,
MIDI_Source  
)
inlineprivatevirtualinherited

Base case for recursive stall function.

See also
MIDI_Pipe::stallDownstream

Reimplemented in MIDI_Pipe.

Definition at line 127 of file MIDI_Pipes.hpp.

◆ unstallDownstream()

virtual void unstallDownstream ( MIDIStaller ,
MIDI_Source  
)
inlineprivatevirtualinherited

Base case for recursive un-stall function.

See also
MIDI_Pipe::unstallDownstream

Reimplemented in MIDI_Pipe.

Definition at line 130 of file MIDI_Pipes.hpp.

◆ getFinalSink()

virtual MIDI_Sink * getFinalSink ( )
inlineprivatevirtualinherited

Base case for recursive function.

See also
MIDI_Pipe::getFinalSink

Reimplemented in MIDI_Pipe.

Definition at line 133 of file MIDI_Pipes.hpp.

◆ disconnectSourcePipesShallow()

void disconnectSourcePipesShallow ( )
privateinherited

Disconnect only the first pipe connected to this sink.

Leaves the other pipes connected to the original pipe, which doesn't have a sink anymore when this function finishes. Used to disconnect a MIDI_Pipe while preserving the connections of its “through” inputs.

Definition at line 33 of file MIDI_Pipes.cpp.

◆ swap()

void swap ( MIDI_Sink a,
MIDI_Sink b 
)
staticinherited

Definition at line 56 of file MIDI_Pipes.cpp.

Member Data Documentation

◆ baud

const unsigned long baud
private

Definition at line 111 of file DebugMIDI_Interface.hpp.

◆ updatables

DoublyLinkedList< MIDIOutputOnly > updatables
staticprotectedinherited

Definition at line 156 of file Updatable.hpp.

◆ next

MIDIOutputOnly * next
protectedinherited

Definition at line 324 of file LinkedList.hpp.

◆ previous

MIDIOutputOnly * previous
protectedinherited

Definition at line 325 of file LinkedList.hpp.

◆ stream

Stream& stream
protectedinherited

Definition at line 61 of file DebugMIDI_Interface.hpp.

◆ MIDI_Sender< StreamDebugMIDI_Output >

friend MIDI_Sender< StreamDebugMIDI_Output >
protectedinherited

Definition at line 63 of file DebugMIDI_Interface.hpp.

◆ prefix

const char* prefix = nullptr
privateinherited

Definition at line 31 of file DebugMIDI_Interface.hpp.

◆ sourcePipe

MIDI_Pipe* sourcePipe = nullptr
protectedinherited

Definition at line 142 of file MIDI_Pipes.hpp.


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