Control Surface master
MIDI Control Surface library for Arduino
Classes | Typedefs | Functions | Variables
MIDI_Pipes.hpp File Reference
#include <AH/Containers/BitArray.hpp>
#include <AH/STL/cstdint>
#include <AH/STL/limits>
#include <AH/STL/utility>
#include <AH/Settings/Warnings.hpp>
#include <MIDI_Parsers/MIDI_MessageTypes.hpp>
#include <Settings/NamespaceSettings.hpp>
+ Include dependency graph for MIDI_Pipes.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  MIDI_Sink
 Receives MIDI messages from a MIDI pipe. More...
 
class  MIDI_Source
 Class that can send MIDI messages to a MIDI pipe. More...
 
class  MIDI_Pipe
 Class that routes MIDI messages from a MIDI_Source to a MIDI_Sink. More...
 
struct  TrueMIDI_SinkSource
 A struct that is both a TrueMIDI_Sink and a TrueMIDI_Source. More...
 
struct  MIDI_PipeFactory< N, Pipe >
 Class that produces multiple MIDI_Pipes. More...
 

Typedefs

using TrueMIDI_Sink = MIDI_Sink
 A MIDI_Sink that is not a MIDI_Pipe. More...
 
using TrueMIDI_Source = MIDI_Source
 A MIDI_Source that is not a MIDI_Pipe. More...
 
using BidirectionalMIDI_Pipe = std::pair< MIDI_Pipe, MIDI_Pipe >
 A bidirectional pipe consists of two unidirectional pipes. More...
 
template<size_t N>
using BidirectionalMIDI_PipeFactory = MIDI_PipeFactory< N, BidirectionalMIDI_Pipe >
 

Functions

MIDI_Pipeoperator>> (TrueMIDI_Source &source, MIDI_Pipe &pipe)
 Connect a source to a pipe (source >> pipe). More...
 
TrueMIDI_Sinkoperator>> (MIDI_Pipe &pipe, TrueMIDI_Sink &sink)
 Connect a pipe to a sink (pipe >> sink). More...
 
MIDI_Pipeoperator<< (TrueMIDI_Sink &sink, MIDI_Pipe &pipe)
 Connect a sink to a pipe (sink << pipe). More...
 
TrueMIDI_Sourceoperator<< (MIDI_Pipe &pipe, TrueMIDI_Source &source)
 Connect a pipe to a source (pipe << source). More...
 
MIDI_Pipeoperator<< (MIDI_Pipe &, MIDI_Pipe &)=delete
 Don't connect two pipes to eachother. More...
 
TrueMIDI_SinkSourceoperator| (BidirectionalMIDI_Pipe &pipe, TrueMIDI_SinkSource &sinksource)
 Connect a pipe to a sink+source (pipe | source+sink). More...
 
BidirectionalMIDI_Pipeoperator| (TrueMIDI_SinkSource &sinksource, BidirectionalMIDI_Pipe &pipe)
 Connect a sink+source to a pipe (source+sink | pipe). More...
 
template<size_t N, class Pipe >
MIDI_Pipeoperator>> (TrueMIDI_Source &source, MIDI_PipeFactory< N, Pipe > &pipe_fact)
 
template<size_t N, class Pipe >
MIDI_Pipeoperator>> (MIDI_Pipe &, MIDI_PipeFactory< N, Pipe > &)=delete
 
template<size_t N, class Pipe >
TrueMIDI_Sinkoperator>> (MIDI_PipeFactory< N, Pipe > &pipe_fact, TrueMIDI_Sink &sink)
 
template<size_t N, class Pipe >
MIDI_Pipeoperator>> (MIDI_PipeFactory< N, Pipe > &, MIDI_Pipe &)=delete
 
template<size_t N, class Pipe >
MIDI_Pipeoperator<< (TrueMIDI_Sink &sink, MIDI_PipeFactory< N, Pipe > &pipe_fact)
 
template<size_t N, class Pipe >
TrueMIDI_Sourceoperator<< (MIDI_PipeFactory< N, Pipe > &pipe_fact, TrueMIDI_Source &source)
 
template<size_t N>
TrueMIDI_SinkSourceoperator| (BidirectionalMIDI_PipeFactory< N > &pipe_fact, TrueMIDI_SinkSource &sinksource)
 
template<size_t N>
BidirectionalMIDI_Pipeoperator| (TrueMIDI_SinkSource &sinksource, BidirectionalMIDI_PipeFactory< N > &pipe_fact)
 

Variables

MIDIStaller *const eternal_stall
 

Variable Documentation

◆ eternal_stall

MIDIStaller* const eternal_stall
Initial value:
=
constexpr auto max(const T &a, const U &b) -> decltype(a< b ? b :a)
Return the larger of two numbers/objects.
Definition: MinMaxFix.hpp:22
Struct that can cause a MIDI_Pipe to be stalled.

Definition at line 16 of file MIDI_Pipes.hpp.