PiPo
Plug In Plug Out / Plugin Interface for Processing Objects
PiPoSequence Class Reference
Inheritance diagram for PiPoSequence:
PiPo PiPoChain PiPoLpcFormants mimo_host

Public Member Functions

 PiPoSequence (PiPo::Parent *parent)
 
 PiPoSequence (const PiPoSequence &other)
 
const PiPoSequenceoperator= (const PiPoSequence &other)
 
PiPoSequence setup methods
void add (PiPo *pipo, bool autoconnect=true)
 
void add (PiPo &pipo, bool autoconnect=true)
 
void clear ()
 
bool connect (PiPo *receiver)
 
PiPoChain query methods
int getSize () const
 
PiPogetHead () const
 
PiPogetTail () const
 
PiPogetPiPo (unsigned int index) const
 
overloaded PiPo methods
void setParent (PiPo::Parent *parent)
 Sets PiPo parent. More...
 
void setReceiver (PiPo *receiver, bool add=false)
 Sets a PiPo modules receiver (call only by the PiPo host) More...
 
preparation of processing
int streamAttributes (bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int height, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
 
int reset ()
 Resets processing (optional) More...
 
processing
int frames (double time, double weight, PiPoValue *values, unsigned int size, unsigned int num)
 Processes a single frame or a block of frames. More...
 
int finalize (double inputEnd)
 Finalizes processing (optinal) More...
 
- Public Member Functions inherited from PiPo
 PiPo (Parent *parent, PiPo *receiver=NULL)
 
 PiPo (const PiPo &other)
 
int propagateStreamAttributes (bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int height, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
 Propagates a module's output stream attributes to its receiver. More...
 
int propagateReset (void)
 Propagates the reset control event. More...
 
int propagateFrames (double time, double weight, PiPoValue *values, unsigned int size, unsigned int num)
 Propagates a module's output frames to its receiver. More...
 
int propagateFinalize (double inputEnd)
 Propagates the finalize control event. More...
 
virtual PiPogetReceiver (unsigned int index=0)
 Gets a PiPo modules receiver (call only by the PiPo host) More...
 
virtual int segment (double time, bool start)
 Signals segment start or end. More...
 
void streamAttributesChanged (Attr *attr)
 
void signalError (std::string errorMsg)
 
void signalWarning (std::string errorMsg)
 
void addAttr (PiPo *pipo, const char *name, const char *descr, Attr *attr, bool clear=false)
 att attribute
 
AttrgetAttr (unsigned int index)
 Gets PiPo attribute by index. More...
 
AttrgetAttr (const char *name)
 Gets PiPo attribute by name. More...
 
AttrgetAttr (const char *piponame, const char *name)
 Gets PiPo attribute by qualified name. More...
 
bool setAttr (unsigned int index, int value, bool silently=false)
 
bool setAttr (unsigned int index, int *values, unsigned int numValues, bool silently=false)
 
bool setAttr (unsigned int index, double val, bool silently=false)
 
bool setAttr (unsigned int index, double *values, unsigned int numValues, bool silently=false)
 
unsigned int getNumAttrs (void)
 Gets number of attributes. More...
 
void cloneAttrs (PiPo *other)
 Copies current parent and attributes values. More...
 
void cloneAttr (PiPo::Attr *attr)
 Copies current value(s) of given attribute. More...
 

Additional Inherited Members

- Public Types inherited from PiPo
enum  Type {
  Undefined, Bool, Enum, Int,
  Float, Double, String
}
 
enum  Enumerate
 
- Static Public Member Functions inherited from PiPo
static float getVersion ()
 
- Protected Attributes inherited from PiPo
Parentparent
 
std::vector< PiPo * > receivers
 
std::vector< Attr * > attrs
 

Member Function Documentation

◆ add()

void PiPoSequence::add ( PiPo pipo,
bool  autoconnect = true 
)
inline

append module pipo to sequential data flow graph

◆ connect()

bool PiPoSequence::connect ( PiPo receiver)
inline

connect each PiPo in PiPoSequence (from end to start)

Parameters
receiveris terminating PiPo of the host that finally receives data

◆ finalize()

int PiPoSequence::finalize ( double  inputEnd)
inlinevirtual

Finalizes processing (optinal)

PiPo module: Any implementation of this method requires a propagateFinalize() method call and returns its return value.

PiPo host: A terminating receiver module provided by a PiPo host usally simply returns 0.

Parameters
inputEndend time of the finalized input stream
Returns
0 for ok or a negative error code (to be specified), -1 for an unspecified error

Reimplemented from PiPo.

◆ frames()

int PiPoSequence::frames ( double  time,
double  weight,
PiPoValue *  values,
unsigned int  size,
unsigned int  num 
)
inlinevirtual

Processes a single frame or a block of frames.

PiPo module: An implementation of this method may call propagateFrames(), typically like this:

return this->propagateFrames(time, weight, values, size, num);

PiPo host: A terminating receiver module provided by a PiPo host handles the received frames and usally returns 0.

Parameters
timetime-tag for a single frame or a block of frames
weightweight associated to frame or block
valuesinterleaved frames values, row by row (interleaving channels or columns), frame by frame TODO: should be const!!!
sizetotal size of each of all frames (size = number of elements = width * height = number of channels for audio)
numnumber of frames (number of samples for audio input)
Returns
0 for ok or a negative error code (to be specified), -1 for an unspecified error

Implements PiPo.

◆ reset()

int PiPoSequence::reset ( void  )
inlinevirtual

Resets processing (optional)

PiPo module: Any implementation of this method requires a propagateReset() method call and returns its return value.

PiPo host: A terminating receiver module provided by a PiPo host usally simply returns 0.

Returns
0 for ok or a negative error code (to be specified), -1 for an unspecified error

Reimplemented from PiPo.

◆ setParent()

void PiPoSequence::setParent ( PiPo::Parent parent)
inlinevirtual

Sets PiPo parent.

Parameters
parentPiPo parent

Reimplemented from PiPo.

◆ setReceiver()

void PiPoSequence::setReceiver ( PiPo receiver,
bool  add = false 
)
inlinevirtual

Sets a PiPo modules receiver (call only by the PiPo host)

Parameters
receiverPiPo module receiving this module's output stream
addreceiver (versus clear and set first)

Reimplemented from PiPo.

◆ streamAttributes()

int PiPoSequence::streamAttributes ( bool  hasTimeTags,
double  rate,
double  offset,
unsigned int  width,
unsigned int  height,
const char **  labels,
bool  hasVarSize,
double  domain,
unsigned int  maxFrames 
)
inlinevirtual

start stream preparation

Implements PiPo.