Ingen  0.5.1
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
Ingen::Server::ArcImpl Class Reference

Represents a single inbound connection for an InputPort. More...

#include <ArcImpl.hpp>

+ Inheritance diagram for Ingen::Server::ArcImpl:
+ Collaboration diagram for Ingen::Server::ArcImpl:

Public Member Functions

 ArcImpl (PortImpl *tail, PortImpl *head)
 Constructor for an arc from a block's output port. More...
 
PortImpltail () const
 
PortImplhead () 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
 

Detailed Description

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 & Destructor Documentation

§ ArcImpl()

Ingen::Server::ArcImpl::ArcImpl ( PortImpl tail,
PortImpl head 
)

Constructor for an arc from a block's output port.

This handles both polyphonic and monophonic blocks, transparently to the user (InputPort).

Member Function Documentation

§ buffer()

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().


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