#include <MIDI_Interfaces/MIDI_Pipes.hpp>
A struct that is both a TrueMIDI_Sink and a TrueMIDI_Source.
Definition at line 595 of file MIDI_Pipes.hpp.
Sending data over a MIDI Pipe | |
virtual void | sinkMIDIfromPipe (ChannelMessage)=0 |
Accept an incoming MIDI Channel message. | |
virtual void | sinkMIDIfromPipe (SysExMessage)=0 |
Accept an incoming MIDI System Exclusive message. | |
virtual void | sinkMIDIfromPipe (SysCommonMessage)=0 |
Accept an incoming MIDI System Common message. | |
virtual void | sinkMIDIfromPipe (RealTimeMessage)=0 |
Accept an incoming MIDI Real-Time message. | |
Connecting and disconnecting MIDI Pipes | |
void | connectSourcePipe (MIDI_Pipe *source) |
Fully connect a source pipe to this sink. | |
void | disconnectSourcePipes () |
Disconnect all source pipes that sink to this sink (recursively). | |
bool | disconnect (TrueMIDI_Source &source) |
Disconnect the given source from this sink. | |
bool | disconnect (MIDI_Pipe &)=delete |
bool | hasSourcePipe () const |
Check if this sink is connected to a source pipe. | |
MIDI_Pipe * | getSourcePipe () const |
Get a pointer to the pipe this sink is connected to, or nullptr if not connected. | |
Sending data over a MIDI Pipe | |
void | sourceMIDItoPipe (ChannelMessage) |
Send a MIDI Channel Message down the pipe. | |
void | sourceMIDItoPipe (SysExMessage) |
Send a MIDI System Exclusive message down the pipe. | |
void | sourceMIDItoPipe (SysCommonMessage) |
Send a MIDI System Common message down the pipe. | |
void | sourceMIDItoPipe (RealTimeMessage) |
Send a MIDI Real-Time message down the pipe. | |
Stalling the sink pipes and exclusive access | |
void | stall (MIDIStaller *cause=eternal_stall) |
Stall this MIDI source. | |
void | unstall (MIDIStaller *cause=eternal_stall) |
Un-stall the pipes connected to this source, so other sources are allowed to send again. | |
bool | isStalled () const |
Check if this source can write to the sinks it connects to. | |
MIDIStaller * | getStaller () const |
Get a pointer to whatever is causing this MIDI source to be stalled. | |
const char * | getStallerName () const |
Get the name of whatever is causing this MIDI source to be stalled. | |
void | handleStallers () const |
Give the code that is stalling the MIDI sink pipes the opportunity to do its job and un-stall the pipes. | |
Connecting and disconnecting MIDI Pipes | |
void | connectSinkPipe (MIDI_Pipe *sink) |
Fully connect a sink pipe to this source. | |
void | disconnectSinkPipes () |
Disconnect all sink pipes that this source sinks to (recursively). | |
bool | disconnect (TrueMIDI_Sink &sink) |
Disconnect the given sink from this source. | |
bool | disconnect (MIDI_Pipe &)=delete |
bool | hasSinkPipe () const |
Check if this source is connected to a sink pipe. | |
MIDI_Pipe * | getSinkPipe () |
Get a pointer to the pipe this source is connected to, or nullptr if not connected. | |
Static Public Member Functions | |
static void | swap (MIDI_Sink &a, MIDI_Sink &b) |
static void | swap (MIDI_Source &a, MIDI_Source &b) |
Protected Attributes | |
MIDI_Pipe * | sourcePipe = nullptr |
MIDI_Pipe * | sinkPipe = nullptr |
Private Member Functions | |
virtual void | stallDownstream (MIDIStaller *, MIDI_Source *) |
Base case for recursive stall function. | |
virtual void | unstallDownstream (MIDIStaller *, MIDI_Source *) |
Base case for recursive un-stall function. | |
virtual MIDI_Sink * | getFinalSink () |
Base case for recursive function. | |
void | disconnectSourcePipesShallow () |
Disconnect only the first pipe connected to this sink. | |
virtual void | stallUpstream (MIDIStaller *, MIDI_Sink *) |
Base case for recursive stall function. | |
virtual void | unstallUpstream (MIDIStaller *, MIDI_Sink *) |
Base case for recursive un-stall function. | |
virtual MIDI_Source * | getInitialSource () |
Base case for recursive function. | |
void | disconnectSinkPipesShallow () |
Disconnect only the first pipe connected to this source. | |
|
pure virtualinherited |
Accept an incoming MIDI Channel message.
Implemented in StreamDebugMIDI_Output, Control_Surface_, MIDI_Interface, and MIDI_Pipe.
|
pure virtualinherited |
Accept an incoming MIDI System Exclusive message.
Implemented in StreamDebugMIDI_Output, Control_Surface_, MIDI_Interface, and MIDI_Pipe.
|
pure virtualinherited |
Accept an incoming MIDI System Common message.
Implemented in StreamDebugMIDI_Output, Control_Surface_, MIDI_Interface, and MIDI_Pipe.
|
pure virtualinherited |
Accept an incoming MIDI Real-Time message.
Implemented in StreamDebugMIDI_Output, Control_Surface_, MIDI_Interface, and MIDI_Pipe.
|
inherited |
Fully connect a source pipe to this sink.
Definition at line 17 of file MIDI_Pipes.cpp.
|
inherited |
Disconnect all source pipes that sink to this sink (recursively).
Definition at line 26 of file MIDI_Pipes.cpp.
|
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 41 of file MIDI_Pipes.cpp.
|
deleteinherited |
|
inlineinherited |
Check if this sink is connected to a source pipe.
Definition at line 121 of file MIDI_Pipes.hpp.
|
inlineinherited |
Get a pointer to the pipe this sink is connected to, or nullptr
if not connected.
Definition at line 124 of file MIDI_Pipes.hpp.
|
inlineprivatevirtualinherited |
Base case for recursive stall function.
Reimplemented in MIDI_Pipe.
Definition at line 131 of file MIDI_Pipes.hpp.
|
inlineprivatevirtualinherited |
Base case for recursive un-stall function.
Reimplemented in MIDI_Pipe.
Definition at line 134 of file MIDI_Pipes.hpp.
|
inlineprivatevirtualinherited |
Base case for recursive function.
Reimplemented in MIDI_Pipe.
Definition at line 137 of file MIDI_Pipes.hpp.
|
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 34 of file MIDI_Pipes.cpp.
Definition at line 57 of file MIDI_Pipes.cpp.
|
inherited |
Send a MIDI Channel Message down the pipe.
Definition at line 133 of file MIDI_Pipes.cpp.
|
inherited |
Send a MIDI System Exclusive message down the pipe.
Definition at line 139 of file MIDI_Pipes.cpp.
|
inherited |
Send a MIDI System Common message down the pipe.
Definition at line 145 of file MIDI_Pipes.cpp.
|
inherited |
Send a MIDI Real-Time message down the pipe.
Definition at line 151 of file MIDI_Pipes.cpp.
|
inherited |
Stall this MIDI source.
This means that this becomes the only source that can sink to the sinks connected to this source. Other sources have to wait until this source un-stalls the pipe before they can send again.
cause | Pointer to the reason for this stall, can be called back to un-stall the pipes. |
Definition at line 158 of file MIDI_Pipes.cpp.
|
inherited |
Un-stall the pipes connected to this source, so other sources are allowed to send again.
cause | Pointer to the reason for the stall (this has to be the same one that was used to stall). |
Definition at line 164 of file MIDI_Pipes.cpp.
|
inherited |
Check if this source can write to the sinks it connects to.
Definition at line 170 of file MIDI_Pipes.cpp.
|
inherited |
Get a pointer to whatever is causing this MIDI source to be stalled.
There could be multiple stallers, this function just returns one.
Definition at line 176 of file MIDI_Pipes.cpp.
|
inherited |
Get the name of whatever is causing this MIDI source to be stalled.
There could be multiple stallers, this function just returns one.
Definition at line 182 of file MIDI_Pipes.cpp.
|
inherited |
Give the code that is stalling the MIDI sink pipes the opportunity to do its job and un-stall the pipes.
Definition at line 186 of file MIDI_Pipes.cpp.
|
inherited |
Fully connect a sink pipe to this source.
Definition at line 76 of file MIDI_Pipes.cpp.
|
inherited |
Disconnect all sink pipes that this source sinks to (recursively).
Definition at line 85 of file MIDI_Pipes.cpp.
|
inherited |
Disconnect the given sink from this source.
Leaves other sinks connected. Returns true if the sink was found and disconnected, false if the given sink was not a direct or indirect sink of this source.
Definition at line 100 of file MIDI_Pipes.cpp.
|
deleteinherited |
|
inlineinherited |
Check if this source is connected to a sink pipe.
Definition at line 237 of file MIDI_Pipes.hpp.
|
inlineinherited |
Get a pointer to the pipe this source is connected to, or nullptr
if not connected.
Definition at line 240 of file MIDI_Pipes.hpp.
|
inlineprivatevirtualinherited |
Base case for recursive stall function.
Reimplemented in MIDI_Pipe.
Definition at line 247 of file MIDI_Pipes.hpp.
|
inlineprivatevirtualinherited |
Base case for recursive un-stall function.
Reimplemented in MIDI_Pipe.
Definition at line 250 of file MIDI_Pipes.hpp.
|
inlineprivatevirtualinherited |
Base case for recursive function.
Reimplemented in MIDI_Pipe.
Definition at line 253 of file MIDI_Pipes.hpp.
|
privateinherited |
Disconnect only the first pipe connected to this source.
Leaves the other pipes connected to the original pipe, which doesn't have a source anymore when this function finishes. Used to disconnect a MIDI_Pipe while preserving the connections of its “through” outputs.
Definition at line 93 of file MIDI_Pipes.cpp.
|
staticinherited |
Definition at line 114 of file MIDI_Pipes.cpp.
|
protectedinherited |
Definition at line 146 of file MIDI_Pipes.hpp.
|
protectedinherited |
Definition at line 262 of file MIDI_Pipes.hpp.