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  IConfigurationManager
 Manager for all kind of configuration. 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 pluginsThis '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  IMessageWithData
 A type of message that can contain different kinds of arbitrary dataA message that can contain different kinds of data. The intended usage is for the message to be exchanged between boxes. A message can hold four types of data: uint64, float64, CString and IMatrix. Each data item is accessed by its string identifier key using a getter/setter corresponding to the data type. The key is unique within the data type. More...
class  IPlayer
 The main player classA 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 objectsInstances 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 playbackThe 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 interfaceThis 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 kernelThis 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 prototypeThis 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  IComment
 A comment class for scenariosThis interface can be used in order to fully describe an OpenViBE comment in order to help the understanding of a given scenario. More...
class  ILink
 Link information between OpenViBE boxThis 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 scenarioThis class is a static scenario description. It is used to manipulate an OpenViBE box/connection collection... More...
class  IScenarioManager
 The scenario managerThis manager is responsible to organize and handle all the scenarios of the kernel. More...
class  IServerExtensionContext
 Static context of a Server Extension object. More...
class  IServerExtensionDynamicContext
 Dynamic context of a Server Extension objectThis class contains accessors to data structures made available by the driver running in the Acquisition Server during the acquisition. More...
class  IServerExtensionProto
 Prototype interface for a server extension. 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, 64bit.

ParameterType_UInteger 

Unsigned integer parameter, 64bit.

ParameterType_Enumeration 

Enumeration integer parameter.

ParameterType_Boolean 

Boolean parameter.

ParameterType_Float 

Float parameter, 64bit.

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 
)

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.

References ILogListener::log().