CLAM-Development
1.4.0
|
A Processing Object that delays a certain number of ProcessingDataObjects wherever the specific object it is. More...
#include <TokenDelay.hxx>
Public Member Functions | |
TokenDelay (const TokenDelayConfig &cfg=TokenDelayConfig()) | |
virtual | ~TokenDelay () |
bool | ConcreteConfigure (const ProcessingConfig &c) |
Concrete configuration change method. | |
virtual const ProcessingConfig & | GetConfig () const |
Configuration access. | |
virtual bool | Do (void) |
Supervised-mode execution method. | |
virtual bool | Do (const T &in, T &out) |
Non-supervised-mode execution method. | |
void | Debug () const |
Debug method for viewing all the relevant parameter. | |
void | FulfillsInvariant () const |
It cheks many invariants restrictions of the object and throws an error if they are not fulfilled. | |
const char * | GetClassName () const |
Override it in every subclass and retur the name of that class. | |
TSize | RealDelay () const |
Informative value about the current delay applied (different from the requested) | |
unsigned | MaxDelay () const |
unsigned | GivenDelay () |
![]() | |
bool | Configure (const ProcessingConfig &config) |
Configuration change method. | |
void | Start (void) |
Method to turn the object into running state. | |
void | Stop (void) |
Method to put the object out of running state When in execution mode, this method must be called before any further call to Configure() methods. | |
Processing () | |
virtual | ~Processing () |
virtual bool | CanProcessInplace () |
Override this method if your processing cannot process inplace. | |
bool | CanConsumeAndProduce () |
Check that Supervised Do() can be safely called. | |
void | ConsumeAndProduce () |
Acknoledges data tokens in published ports as read/writen by calling Produce() for all registered OutPorts and Consume() to all registered InPorts. | |
std::string | GetExecStateString () const |
bool | IsConfigured () const |
bool | IsRunning () const |
void | RegisterOutPort (OutPortBase *out) |
void | RegisterInPort (InPortBase *in) |
void | RegisterOutControl (OutControlBase *out) |
void | RegisterInControl (InControlBase *in) |
void | SetParent (Processing *p) |
void | SetNetworkBackLink (Network *network) |
virtual bool | ModifiesPortsAndControlsAtConfiguration () |
This method is used to determine if a given processing can change its interface of ports/controls after its construction (i.e. | |
bool | HasInPort (const std::string &name) |
bool | HasOutPort (const std::string &name) |
bool | HasInControl (const std::string &name) |
bool | HasOutControl (const std::string &name) |
InPortBase & | GetInPort (const std::string &name) |
OutPortBase & | GetOutPort (const std::string &name) |
InControlBase & | GetInControl (const std::string &name) |
OutControlBase & | GetOutControl (const std::string &name) |
InPortBase & | GetInPort (unsigned index) |
OutPortBase & | GetOutPort (unsigned index) |
InControlBase & | GetInControl (unsigned index) |
OutControlBase & | GetOutControl (unsigned index) |
unsigned | GetNInPorts () const |
unsigned | GetNOutPorts () const |
unsigned | GetNInControls () const |
unsigned | GetNOutControls () const |
const std::string & | GetConfigErrorMessage () const |
Returns a string describing configuration errors if any. | |
virtual bool | IsSyncSource () const |
Wether the processing is a sync source such as audio i/o device, or an audio callback hook (i.e. | |
virtual bool | SupportsVariableAudioSize () const |
This method reports whether the processing supports dynamic buffer-size host. |
Additional Inherited Members | |
![]() | |
enum | ExecState { Unconfigured = 0, Ready, Running } |
Processing Object possible execution states. More... | |
typedef NullProcessingConfig | Config |
![]() | |
virtual bool | ConcreteStart () |
Processing objects have to redefine this method when starting them implies some internal changes. | |
virtual bool | ConcreteStop () |
Processing objects have to redefine this method when stoping them implies some internal changes. | |
unsigned | BackendBufferSize () |
Given by the NetworkPlayer (backend) if exists. | |
unsigned | BackendSampleRate () |
Given by the NetworkPlayer (backend) if exists. | |
InControlRegistry & | GetInControls () |
Accessor to published Controls manager. | |
OutControlRegistry & | GetOutControls () |
Accessor to published Controls manager. | |
InPortRegistry & | GetInPorts () |
Accessor to published Ports manager. | |
OutPortRegistry & | GetOutPorts () |
Accessor to published Portss manager. | |
bool | AddConfigErrorMessage (const std::string &msg) |
Use this method to append a configuration errors to the processing when implementing ConcreteConfigure. | |
bool | AbleToExecute (void) const |
In debug-mode checks that the processing is configured and started. | |
template<typename ConcreteConfig > | |
void | CopyAsConcreteConfig (ConcreteConfig &concrete, const ProcessingConfig &abstract) const |
Helper template to convert a reference to a ProcessingConfig to the concrete ProcessingConfig specified on the first parameter. | |
void | SetExecState (ExecState state) |
![]() | |
ProcessingComposite * | mpParent |
Pointer to the parent (composite) processing object, or 0. | |
Network * | _network |
The parent network if any. |
A Processing Object that delays a certain number of ProcessingDataObjects wherever the specific object it is.
This class is only usefull in the non supervised context so it hasn't the generic Do() implemented It works buffering these ProcessingDataObjects, feeded by using the arguments of the Do(...) method. Important: the processig data objects (tokens) that flows through the token delay can only be deleted once have got out from the delay. It can also happen that decrementing the delay value, some tokens will never get out. And these tokens will be deleted by the delay object.
Definition at line 76 of file TokenDelay.hxx.
|
inline |
Definition at line 88 of file TokenDelay.hxx.
|
inlinevirtual |
Definition at line 96 of file TokenDelay.hxx.
|
virtual |
Concrete configuration change method.
The generic calls this one. It will accept such changes when not in running mode.
Reimplemented from CLAM::Processing.
Definition at line 203 of file TokenDelay.hxx.
void CLAM::TokenDelay< T >::Debug | ( | ) | const |
Debug method for viewing all the relevant parameter.
Definition at line 278 of file TokenDelay.hxx.
|
virtual |
Supervised-mode execution method.
Because this class only works in non-supervised mode, it hrows an error
Implements CLAM::Processing.
Definition at line 218 of file TokenDelay.hxx.
Referenced by CLAM::SpectralDelay::Do(), and CLAM::SMSHarmonizer::Do().
|
virtual |
Non-supervised-mode execution method.
in | Reference to the input ProcessingData object. |
out | Pointer to a ProcessingData that has previously been entered. this object pointed by out parameter can be safely deleted only when the last call to this Do method has output a different object. In others words: when the delay value gets increased, the out object can be the same for a number of Do executions. |
Definition at line 234 of file TokenDelay.hxx.
void CLAM::TokenDelay< T >::FulfillsInvariant | ( | ) | const |
It cheks many invariants restrictions of the object and throws an error if they are not fulfilled.
Very usefull when developing or maintaining this class.
Definition at line 294 of file TokenDelay.hxx.
|
inlinevirtual |
Override it in every subclass and retur the name of that class.
Implements CLAM::Processing.
Definition at line 136 of file TokenDelay.hxx.
|
inlinevirtual |
Configuration access.
Reimplemented from CLAM::Processing.
Definition at line 108 of file TokenDelay.hxx.
|
inline |
Definition at line 149 of file TokenDelay.hxx.
|
inline |
Definition at line 145 of file TokenDelay.hxx.
|
inline |
Informative value about the current delay applied (different from the requested)
Definition at line 141 of file TokenDelay.hxx.