Ingen
0.5.1
|
Represents a single inbound connection for an InputPort. More...
#include <ArcImpl.hpp>
Public Member Functions | |
ArcImpl (PortImpl *tail, PortImpl *head) | |
Constructor for an arc from a block's output port. More... | |
PortImpl * | tail () const |
PortImpl * | head () const |
const Raul::Path & | tail_path () const |
const Raul::Path & | head_path () const |
BufferRef | buffer (uint32_t voice, SampleCount offset=0) const |
Get the buffer for a particular voice. More... | |
bool | must_mix () const |
Whether this arc must mix down voices into a local buffer. | |
Static Public Member Functions | |
static bool | can_connect (const OutputPort *src, const InputPort *dst) |
Protected Attributes | |
PortImpl *const | _tail |
PortImpl *const | _head |
Represents a single inbound connection for an InputPort.
This can be a group of ports (coming from a polyphonic Block) or a single Port. This class exists basically as an abstraction of mixing down polyphonic inputs, so InputPort can just deal with mixing down multiple connections (oblivious to the polyphonic situation of the connection itself).
This is stored in an intrusive slist in InputPort.
Constructor for an arc from a block's output port.
This handles both polyphonic and monophonic blocks, transparently to the user (InputPort).
BufferRef Ingen::Server::ArcImpl::buffer | ( | uint32_t | voice, |
SampleCount | offset = 0 |
||
) | const |
Get the buffer for a particular voice.
An Arc is smart - it knows the destination port requesting the buffer, and will return accordingly (e.g. the same buffer for every voice in a mono->poly arc).
References Ingen::Server::PortImpl::update_values().