Algorithm to create/process/transform OpenViBE dataThis class should be derived by any plugin that is related to data processing. It can be data acquisition/production from an hardware device or from a file. It can be data processing/transforming, moving time information into frequency space for example. It can be data classification generating discrete classification events better than continuous data flow. More...
Public Member Functions | |
Behavioral configuration | |
virtual OpenViBE::uint64 | getClockFrequency (OpenViBE::Kernel::IBoxAlgorithmContext &rBoxAlgorithmContext) |
Gets the clock frequency to call this algorithm. More... | |
Initialization / Uninitialization | |
virtual OpenViBE::boolean | initialize (OpenViBE::Kernel::IBoxAlgorithmContext &rBoxAlgorithmContext) |
Prepares plugin object. More... | |
virtual OpenViBE::boolean | uninitialize (OpenViBE::Kernel::IBoxAlgorithmContext &rBoxAlgorithmContext) |
Unprepares the object so it can be deleted. More... | |
Several event processing callbacks | |
virtual OpenViBE::boolean | processEvent (OpenViBE::Kernel::IBoxAlgorithmContext &rBoxAlgorithmContext, OpenViBE::Kernel::IMessageEvent &rMessageEvent) |
Reaction to an event launched by another box. More... | |
virtual OpenViBE::boolean | processSignal (OpenViBE::Kernel::IBoxAlgorithmContext &rBoxAlgorithmContext, OpenViBE::Kernel::IMessageSignal &rMessageSignal) |
Reaction to a signal. More... | |
virtual OpenViBE::boolean | processClock (OpenViBE::Kernel::IBoxAlgorithmContext &rBoxAlgorithmContext, OpenViBE::Kernel::IMessageClock &rMessageClock) |
Reaction to a clock tick. More... | |
virtual OpenViBE::boolean | processInput (OpenViBE::Kernel::IBoxAlgorithmContext &rBoxAlgorithmContext, OpenViBE::uint32 ui32InputIndex) |
Reaction to an input update. More... | |
Algorithm processing | |
virtual OpenViBE::boolean | process (OpenViBE::Kernel::IBoxAlgorithmContext &rBoxAlgorithmContext)=0 |
Processing function. More... | |
Public Member Functions inherited from IPluginObject | |
virtual void | release (void)=0 |
Informs the plugin object it won't be used anymore. More... | |
Public Member Functions inherited from IObject | |
virtual OpenViBE::CIdentifier | getClassIdentifier (void) const =0 |
Returns the final class identifier of the concrete class. More... | |
virtual OpenViBE::boolean | isDerivedFromClass (const OpenViBE::CIdentifier &rClassIdentifier) const |
Checks if this object is compatible with a class identifier. More... | |
virtual OpenViBE::boolean | acceptVisitor (OpenViBE::IObjectVisitor &rObjectVisitor) |
Requests this object to accept a visitor. More... | |
Detailed Description
Algorithm to create/process/transform OpenViBE data
This class should be derived by any plugin that is related to data processing. It can be data acquisition/production from an hardware device or from a file. It can be data processing/transforming, moving time information into frequency space for example. It can be data classification generating discrete classification events better than continuous data flow.
- Date
- 2006-06-19 This is the heart of the extension mechanism of the OpenViBE platform.
- See also
- OpenViBE::Kernel::IBoxAlgorithmDesc
- Todo:
- details about building new plugins
Member Function Documentation
|
inlinevirtual |
Gets the clock frequency to call this algorithm.
- Parameters
-
rBoxAlgorithmContext [in] : The current box state
- Returns
- The clock frequency to call this algorithm
- Note
- Default implementation returns 0
This function is used for algorithms that are triggered on clock signals. The frequency is given in Hz, with 32:32 fixed point representation thus returning (1<<32) will make the algorithm to be called every second, returning
(100<<32) will make the algorithm being called 100 times a second, returning
(1<<31) will make the algorithm be called once every two seconds and so on...
- Note
- Returning 0 means the algorithm should not be clock activated.
- See also
- processClock
|
inlinevirtual |
Prepares plugin object.
- Parameters
-
rBoxAlgorithmContext [in] : the plugin object context
- Returns
- true when this object successfully initialized or false if it didn't succeed to initialize.
- Note
- Default implementation simply returns true.
After a successful initialization, the caller knows the object can safely be used... On failure, this object should be ready to be uninitialized and then released.
- See also
- uninitialize
|
inlinevirtual |
Unprepares the object so it can be deleted.
- Parameters
-
rBoxAlgorithmContext [in] : the plugin object context
- Returns
- true when this object sucessfully uninitialized or false if didn't succeed to uninitialize.
- Exceptions
-
this method must be noexcept
- Note
- Default implementation simply returns true.
If this function returns false, it means it could not uninitialize the object members correctly. Thus, the object won't be released and none of its method will be called anymore for security. Note that this results in memory leaks. This is why this method should return true as often as possible.
- See also
- initialize
|
inlinevirtual |
Reaction to an event launched by another box.
- Parameters
-
rBoxAlgorithmContext [in] : the box algorithm context to use rMessageEvent [in] : the message the box just received
- Returns
- true when the message is processed.
- false when the message is not processed.
- Note
- Default implementation returns false
This function is called by the OpenViBE kernel when another box tries to send an event message to this box. This event message is described in the rMessageEvent parameter and can be interpreted by this algorithm.
- See also
- OpenViBE::IBoxAlgorithmContext
|
inlinevirtual |
Reaction to a signal.
- Parameters
-
rBoxAlgorithmContext [in] : the box algorithm context to use rMessageSignal [in] : the signal the box just received
- Returns
- true when the message is processed.
- false when the message is not processed.
- Note
- Default implementation returns false
This function is called by the OpenViBE kernel when it has sent a signal. Signal are special messages, mainly sent by the kernel to all of the OpenViBE boxes in order to tell them it is about to start, processing, stop processing, load a new scenario and so on...
|
inlinevirtual |
Reaction to a clock tick.
- Parameters
-
rBoxAlgorithmContext [in] : the box algorithm context to use rMessageClock [in] : the clock message the box received
- Returns
- true when the message is processed.
- false when the message is not processed.
- Note
- Default implementation returns false
This function is called by the OpenViBE kernel when it has sent clock messages. Clock messages are used for processes that should be executed regularly and which can not be triggered thanks to their inputs (for example acquisition modules). They also can be used for example when viewing inputs on smaller range than what input sends periodically, thus needing a moving 'viewed-window' on lastly received data.
|
inlinevirtual |
Reaction to an input update.
- Parameters
-
rBoxAlgorithmContext [in] : the box algorithm context to use ui32InputIndex [in] : the index of the input which has ben updated
- Returns
- true when the message is processed.
- false when the message is not processed.
- Note
- Default implementation returns false
This function is called by the OpenViBE kernel each time an input of this box is updated. This allows the algorithm to decide to call the process function and eventually to the received data.
|
pure virtual |
Processing function.
- Parameters
-
rBoxAlgorithmContext [in] : the box algorithm context to use
- Returns
- true on success, false when something went wrong.
This function is used to process the arrived data and eventually generate results. See OpenViBE global architecture to understand how the commponents interact and how an OpenViBE box works internally.
The processing function may use the provided context in order to read its inputs and write its outputs... Also it could use the provided context to send messages/events to other boxes. Finally, it may use the provided context in order to perform rendering tasks !
Generated on Tue Jun 26 2012 15:25:54 for Documentation by 1.7.4