OpenViBE 3.0.0-beta released

OpenViBE software releases, jobs and events
Posts: 67
Joined: Wed Mar 04, 2020 3:38 pm

OpenViBE 3.0.0-beta released

Post by Thomas »

We are pleased to announce the release of OpenViBE-3.0.0 (download) with a BETA version. This release contains important updates:
  • Many new functionalities were added: Riemannian geometry, Multimodal Graz visualization, Artefact detection, Features selection and Stimulation validator
  • Support for Ubuntu 18.04
  • Mainly for developers and contributors: the code has had a lot of modernisation changes, and some refactoring
For the contributions to this version, we would like to thank
  • Alexey Minin from UrFU for the Encephalan driver
  • Jimmy Leblanc & Yannis Bendi-Ouis from Polymont ITS for the pybox-manager
We will not provide the usual changelog based on code commits for this release,
but have a look at the following post for a list of required changes to your plugins in order to port them to the newer version.

We are planning to deliver the final release of OpenViBE-3.0.0 in a month or so, with potential bug fixes, and the support to Fedora 32.

We are looking forward to hearing your feedback for this new version. Please raise an issue on our bug tracker if you find something not working.

Once the release is out of the gate and stable, we will restart discussions about building a consortium around OpenViBE.
Please drop me an email if you wish to be included in the conversation.

On behalf of the development team,

Posts: 67
Joined: Wed Mar 04, 2020 3:38 pm

Re: OpenViBE 3.0.0-beta released

Post by Thomas »

Here is the list of changes necessary if you would like to migrate one of your plugins, compatible with OpenViBE 2:
  • OpenViBE types were removed and replaced with standard types:
    • OpenViBE::uintXX -> uintXX_t
    • OpenViBE::intXX -> intXX_t
    • OpenViBE::float64 -> double
    • OpenViBE::boolean -> bool
  • Some functions from System::Memory were removed and replaced with standard equivalent:
    • System::Memory::copy() -> std::memcpy()
    • System::Memory::move() -> std::memmove()
    • System::Memory::set() -> std::memset()
    • System::Memory::compare() -> std::memcmp()
  • Namespaces starting with OpenViBE having been split:
    • OpenViBEPlugins -> OpenViBE::Plugins
    • OpenViBEToolkit:: -> OpenViBE::Toolkit
    • OpenViBEVisualizationToolkit -> OpenViBE::VisualizationToolkit
  • Some ClassId variables were renamed:
    • variables containing StreamedMatrixStreamDecoder renamed with StreamedMatrixDecoder
      e.g. OVP_GD_ClassId_Algorithm_StreamedMatrixStreamDecoder -> OVP_GD_ClassId_Algorithm_StreamedMatrixDecoder
    • variables with StreamedMatrixStreamEncoder renamed with StreamedMatrixEncoder
      e.g. OVP_GD_ClassId_Algorithm_StreamedMatrixStreamEncoder -> OVP_GD_ClassId_Algorithm_StreamedMatrixEncoder
    • variables with SamplingRate renamed with Sampling
      e.g. OVP_GD_Algorithm_SignalEncoder_InputParameterId_SamplingRate -> OVP_GD_Algorithm_SignalEncoder_InputParameterId_Sampling
    • OVP_ClassId_Plugin_VisualizationContext -> OVP_ClassId_Plugin_VisualizationCtx
  • The include file <openvibe/ovITimeArithmetics.h> was removed and functionalities replaced:
    • New header: #include <openvibe/ovITimeArithmetics.h> -> #include <openvibe/CTime.hpp>
    • TimeArithmetics::timeToSeconds(timeVar) -> CTime(timeVar).toSeconds()
    • TimeArrithmetics::SecondsToTime(timeVar) -> CTime(timeVar).time()
    • TimeArithmetics::TimeToSampleCount(freqVar, timeVar) -> CTime(time).toSampleCount(freqVar)
  • In the package ovp_main.cpp, after the call to OVP_Declare_Begin(): rPluginModuleContext -> context
  • Signature of method processInput() overriden from class TBoxAlgorithm has changed (parameter type uint32_t -> const size_t):
    • OpenViBE::boolean processInput(OpenViBE::uint32) -> bool processInput(const size_t index)
  • Signature of method hasFunctionality() overridden from class IPluginObjectDesc ( in sdk/openvibe/include/openvibe/plugins/ovIPluginObjectDesc.h) has changed:
    • OpenViBE::boolean hasFunctionality(OpenViBE::CIdentifier functionalityIdentifier) const -> bool hasFunctionality(const EPluginFunctionality functionality) const
    • #define OVD_Functionality_Visualization replaced by EPluginFunctionality::Visualization
  • Method renamed to match coding rules:
    TCPTagging::createStimulusSender() -> TCPTagging::CreateStimulusSender()