Buffer as Connections

next up previous contents
Next: The Graph Up: C++ Environment for Synchronos Previous: Operations   Contents

Buffer as Connections

In previous versions we talked about signals, but this word is very much occupied by the Unix signals or signals in libraries like GTK2 or QT3 so here the word ''connection'' to connect operations inputs to outputs is used. In scientific books, they sometimes known as edges to actors ( = operation) or arrows, are a kind of FIFO-channels also called tokens, since it represent the data in the data-flow graph.

The implementation of connections are buffers, which the operations use as data for their computations. Since we want to use as few as possible buffers, one can be used by several operation at the same schedule tick for different purposes, if their length and organization fits their tasks.

Buffers are assigned at schedule time of audio processing, not at construction time or the class operation, except of constant buffers (see below). This is important because the buffer length is defined as global that can be changed at run time in stop processing mode to adjust the throughput time. In an later version this can be done during process time, which assumes that operations always get the actual number of tokens per schedule.

Constant buffers are buffers owned by the operation and which cannot be changed by the scheduler, so static or operational data can be stored in it. This should be used only for output buffers and must be declared at initialize or construction phase of an operation. Be careful to respect the buffer-Len for the operation.

Default buffers are constant buffers which are used as input buffer if no connection is made to it.

next up previous contents
Next: The Graph Up: C++ Environment for Synchronos Previous: Operations   Contents
HAss.DI Winfried Ritsch - ritsch@algo.mur.at