OpenViBE Documentation

OpenViBE::Kernel Namespace Reference

Kernel specifications of the OpenViBE platform. More...


Classes

class  IAlgorithmContext
 Exectution context for algorithm objects. More...
class  IAlgorithmManager
 Manager for all kind of plugin algorithms. More...
class  IAlgorithmProto
 Prototype interface for algorithm. More...
class  IAlgorithmProxy
 Application interface to an algorithm plugin. More...
class  ILogListener
 Log manager's listener interface. More...
class  ILogManager
 Log manager. More...
class  IConfigurable
 Configurable object interface. More...
class  IKernelContext
 Kernel context interface, gives access to each manager the kernel owns. More...
class  IKernelDesc
 A kernel description. More...
class  IKernelObject
 Base class for all kernel objects. More...
class  IKernelObjectFactory
 Kernel object factory, creates all kernel objects. More...
class  IObjectVisitorContext
 Exectution context for visitor objects. More...
class  IParameter
 Generic parameter handler for configurable objects. More...
class  ITypeManager
 Type manager, provides information on platform's handled types, parameters, streams etc... More...
class  TParameterHandler
 Helper class in order to manipulate IParameter and IParameter values natively. More...
class  IBoxAlgorithmContext
 Specific context to use for box algorithm plugins

This 'context' is given by the player to an algorithm plugin so it has all the necessary tools to work. This algorithm context mainly consists in getting other contexts which could be defined and used more generically (such as the box interface or a global player interface for example). More...

class  IMessage
 Base message class. More...
class  IMessageClock
 Clock message. More...
class  IMessageEvent
 Event message. More...
class  IMessageSignal
 Signal message. More...
class  IPlayer
 The main player class

A player is responsible for the playback of a specific scenario. This player scenario is provided at initialisation stage and should not be changed until the player terminates. The player idea of calling a "play" function forces the use of threads in order to avoid CPU locking. Thus we prefer the idea of having a "short-time" function that is to be called repeatedly until the player terminates. This is the role of the IPlayer::loop function, that should be called repeatedly by the outside application. More...

class  IPlayerContext
 Player interface for plugin objects

Instances of this class are given to plugin object so they can communicate with the platform kernel, providing services such as message sending etc... More...

class  IPlayerManager
 The manager responsible for scenario playback

The player manager is responsible for creating the different player instances. Each player is responsible for the playback of a specific scenario. More...

class  IPluginManager
 Log manager. More...
class  IPluginModule
 Plugin module. More...
class  IPluginModuleContext
 Plugin context. More...
class  IAttributable
class  IBox
 Complete OpenViBE box interface

This interface can be used in order to fully describe an OpenViBE black box. It describes its identification values, its inputs, its outputs and its settings. More...

class  IBoxIO
 Main OpenViBE box interface to communicate with the kernel

This context allows the object which uses it to check inputs states, read them, write outputs while being in a dynamic context (used by player). More...

class  IBoxListenerContext
 Exectution context for box algorithm descriptors. More...
class  IBoxProto
 OpenViBE box prototype

This class is used by a plugin algorithm descriptor to let the OpenViBE platform know what an algorithm box looks like. It declares several things, like it input types, output types and settings. More...

class  ILink
 Link information between OpenViBE box

This class collects informations between OpenViBE boxes : box identifiers and input / output indices. More...

class  IProcessingUnit
 Processing unit information for OpenViBE boxes. More...
class  IScenario
 A static OpenViBE scenario

This class is a static scenario description. It is used to manipulate an OpenViBE box/connection collection... More...

class  IScenarioManager
 The scenario manager

This manager is responsible to organize and handle all the scenarios of the kernel. More...

class  IVisualisationContext
 Visualisation manager interface for plugin objects. More...
class  IVisualisationManager
 The VisualisationManager handles IVisualisationTree objects It maintains a list of IVisualisationTree objects, each of which is associated to a scenario. This manager is used both at scenario creation time (to load or create IVisualisationTree objects), and when the scenario is being run (to forward IVisualisationWidget pointers to the related IVisualisationTree). More...
struct  ITreeViewCB
 Tree view interface It must be implemented by classes which communicate with the IVisualisationTree class in order to display the contents of the visualisation tree. More...
class  IVisualisationTree
 Handles visualisation widgets and their arrangement in space This interface lets applications configure visualisation widgets by adding them to windows and tabs, positioning them next to each other using paned widgets, and resizing them as the user sees fit. All widgets are saved in a symbolic way as IVisualisationWidget instances referenced in a tree store. Methods of this class are essentially meant to be called from an external class inheriting from the ITreeViewCB interface, for offline design or online use of the widgets. More...
class  IVisualisationWidget
 Interface of visualisation widgets that are handled by an IVisualisationTree These objects are stored in an IVisualisationTree object as they are being created and modified to suit the graphical needs of a scenario. More...
class  CVisualisationContext
 Visualisation context made available to plugins and allowing them to interact with a 3D scene This class offers a simplified, library independent 3D API to be used by plugin developers. More...

Enumerations

enum  ELogLevel
 Log levels.
enum  ELogColor
 Log colors.
enum  EParameterType {
  ParameterType_None, ParameterType_Integer, ParameterType_UInteger, ParameterType_Enumeration,
  ParameterType_Boolean, ParameterType_Float, ParameterType_String, ParameterType_Identifier,
  ParameterType_Matrix, ParameterType_StimulationSet, ParameterType_MemoryBuffer, ParameterType_Object,
  ParameterType_Pointer
}
 Parameter type enumeration for a configurable object. More...
enum  EBoxFlag
 This enum lists all the flags a box can be have. More...
enum  EStandard3DObject
 Standard 3D objects.
enum  EDragDataLocation
 Drag locations around a widget.
enum  EVisualisationTreeColumn {
  EVisualisationTreeColumn_StringName, EVisualisationTreeColumn_StringStockIcon, EVisualisationTreeColumn_ULongNodeType, EVisualisationTreeColumn_StringIdentifier,
  EVisualisationTreeColumn_PointerWidget
}
 Column types in a visualisation tree. More...
enum  EVisualisationTreeNode {
  EVisualisationTreeNode_Undefined, EVisualisationTreeNode_VPU, EVisualisationTreeNode_VisualisationWindow, EVisualisationTreeNode_VisualisationPanel,
  EVisualisationTreeNode_VisualisationBox, EVisualisationTreeNode_VerticalSplit, EVisualisationTreeNode_HorizontalSplit, EVisualisationTreeNode_Unaffected
}
 Node types in a visualisation tree. More...
enum  EVisualisationWidgetType {
  EVisualisationWidget_Undefined, EVisualisationWidget_VisualisationWindow, EVisualisationWidget_VisualisationPanel, EVisualisationWidget_VisualisationBox,
  EVisualisationWidget_VerticalSplit, EVisualisationWidget_HorizontalSplit
}
 This enum lists the different types of IVisualisationWidget supported by the platform. More...
enum  EBoxModification
 This enum lists all the way a box can be modified. More...
enum  EPluginFunctionality
 Functionality enumeration in order to know what a plugin is capable of.
enum  ELicenseType {
  LicenseType_Unspecified, LicenseType_Commercial, LicenseType_AFL, LicenseType_AL20,
  LicenseType_ASL, LicenseType_APSL, LicenseType_BSD, LicenseType_CPL,
  LicenseType_CeCILL, LicenseType_CeCILLB, LicenseType_CeCILLC, LicenseType_EFL2,
  LicenseType_GPL, LicenseType_LGPL, LicenseType_IBMPL, LicenseType_IOSL,
  LicenseType_MPL10, LicenseType_MPL11, LicenseType_NPL10, LicenseType_NPL11,
  LicenseType_OSL, LicenseType_PHPL, LicenseType_PAL, LicenseType_CNRIPL,
  LicenseType_PSFL, LicenseType_QPL, LicenseType_SL, LicenseType_SISSL,
  LicenseType_SPL, LicenseType_W3C, LicenseType_WXWLL, LicenseType_ZLL,
  LicenseType_ZPL
}
 License type enumeration in order to know what software license a plugin can be released with. More...

Functions

template<class T >
OpenViBE::Kernel::ILogManageroperator<< (OpenViBE::Kernel::ILogManager &rLogManager, const T &rObject)
 Stream output operator.


Detailed Description

Kernel specifications of the OpenViBE platform.

Author:
Yann Renard (INRIA/IRISA)
Date:
2006-06 This OpenViBE subnamespace contains the specifications of the kernel classes. Those classes are overloaded by the kernel developpers to implement a complete kernel.


Enumeration Type Documentation

Parameter type enumeration for a configurable object.

See also:
IConfigurable

IParameter

Enumerator:
ParameterType_None  No parameter.
ParameterType_Integer  Integer parameter.
ParameterType_UInteger  Unsigned integer parameter.
ParameterType_Enumeration  Enumeration integer parameter.
ParameterType_Boolean  Boolean parameter.
ParameterType_Float  Float parameter.
ParameterType_String  String parameter.
ParameterType_Identifier  Identifier parameter.
ParameterType_Matrix  Matrix pointer parameter.
ParameterType_StimulationSet  Stimulation set pointer parameter.
ParameterType_MemoryBuffer  Memory buffer pointer parameter.
ParameterType_Object  Object pointer parameter.
ParameterType_Pointer  Raw pointer parameter.

enum EBoxFlag

This enum lists all the flags a box can be have.

See also:
OpenViBE::Kernel::IBoxProto::addFlag

Column types in a visualisation tree.

Enumerator:
EVisualisationTreeColumn_StringName  Node name Depending on the node type, it refers to : the name given to the window for EVisualisationTreeNode_VisualisationWindow nodes, the name of the notebook tab for EVisualisationTreeNode_VisualisationPanel nodes, the name of the related IBox for EVisualisationTreeNode_VisualisationBox nodes, "Vertical split" for EVisualisationTreeNode_VerticalSplit nodes, "Horizontal split" for EVisualisationTreeNode_HorizontalSplit nodes, "Unaffected display plugins" for the EVisualisationTreeNode_Unaffected node.
EVisualisationTreeColumn_StringStockIcon  Icon associated to a node Constant except for type EVisualisationTreeNode_VisualisationBox, for which it can be specified in the plugin descriptor.
EVisualisationTreeColumn_ULongNodeType  EVisualisationTreeNode type.
EVisualisationTreeColumn_StringIdentifier  IVisualisationWidget identifier.
EVisualisationTreeColumn_PointerWidget  Pointer to the GtkWidget associated to the node (if any).

Node types in a visualisation tree.

Enumerator:
EVisualisationTreeNode_Undefined  May be used for placeholders.
EVisualisationTreeNode_VPU  Not used yet.
EVisualisationTreeNode_VisualisationWindow  A top level window.
EVisualisationTreeNode_VisualisationPanel  A notebook tab inside a window.
EVisualisationTreeNode_VisualisationBox  A visualisation box (a plugin which displays something).
EVisualisationTreeNode_VerticalSplit  A vertical split widget.
EVisualisationTreeNode_HorizontalSplit  A horizontal split widget.
EVisualisationTreeNode_Unaffected  A special node parent to all unaffected visualisation boxes.

This enum lists the different types of IVisualisationWidget supported by the platform.

Enumerator:
EVisualisationWidget_Undefined  Undefined widget (empty slot in an IVisualisationTree)
EVisualisationWidget_VisualisationWindow  Top-level IVisualisationWidget container
EVisualisationWidget_VisualisationPanel  Notebook tab containing IVisualisationWidget objects
EVisualisationWidget_VisualisationBox  Visualisation plugin
EVisualisationWidget_VerticalSplit  Split widget that divides its client area vertically in two
EVisualisationWidget_HorizontalSplit  Split widget that divides its client area horizontally in two

This enum lists all the way a box can be modified.

See also:
OpenViBE::Plugins::IBoxListener::process

License type enumeration in order to know what software license a plugin can be released with.

Enumerator:
LicenseType_Unspecified  Generic for unspecified license type.
LicenseType_Commercial  Generic for commercial software.
LicenseType_AFL  Academic Free License.
LicenseType_AL20  Apache License, Version 2.0.
LicenseType_ASL  Apache Software License.
LicenseType_APSL  Apple Public Source Licenses.
LicenseType_BSD  BSD License.
LicenseType_CPL  Common Public License.
LicenseType_CeCILL  Licence CEA CNRS INRIA Logiciel Libre.
LicenseType_CeCILLB  Licence CEA CNRS INRIA Logiciel Libre B.
LicenseType_CeCILLC  Licence CEA CNRS INRIA Logiciel Libre C.
LicenseType_EFL2  Eiffel Forum License Version 2.0.
LicenseType_GPL  GNU General Public License.
LicenseType_LGPL  GNU Lesser General Public License.
LicenseType_IBMPL  IBM Public License.
LicenseType_IOSL  Intel Open Source License.
LicenseType_MPL10  Mozilla Public License Version 1.0.
LicenseType_MPL11  Mozilla Public License Version 1.1.
LicenseType_NPL10  Netscape Public License Version 1.0.
LicenseType_NPL11  Netscape Public License Version 1.1.
LicenseType_OSL  Open Software License.
LicenseType_PHPL  PHP License.
LicenseType_PAL  Perl Artistic License.
LicenseType_CNRIPL  Python License (CNRI Python License).
LicenseType_PSFL  Python Software Foundation License.
LicenseType_QPL  Q Public Licence (QT).
LicenseType_SL  Sleepycat Software Product License.
LicenseType_SISSL  Sun Industry Standards Source License.
LicenseType_SPL  Sun Public License.
LicenseType_W3C  W3C Software License.
LicenseType_WXWLL  wxWindows Library License
LicenseType_ZLL  zlib/libpng License
LicenseType_ZPL  Zope Public License.


Function Documentation

OpenViBE::Kernel::ILogManager& OpenViBE::Kernel::operator<< ( OpenViBE::Kernel::ILogManager rLogManager,
const T &  rObject 
) [inline]

Stream output operator.

Parameters:
rLogManager [in] : the log manager that takes the object
rObject [in] : the object to log
Returns:
The log manager itself
See also:
OpenViBE::Kernel::ILogManager
This function helps in logging different objects thanks to the stream operator. The log manager can almost be used as any std ostream object.