Skeleton-Generator (beta)

  • NB: last update for OpenViBE 0.16.0.

Introduction

The skeleton-generator is a tool useful for those who want to implement a new driver or plugin. Using the GUI, the developer gives various information that will be automatically integrated in the C++ skeletons, such as driver sampling frequencies or box inputs and outputs. All fields are required, and each one can be explained by pressing the corresponding “help” button.

Once all entries are filled, they are checked and the generation process can be executed. The files produced must be integrated in an OpenViBE project (contrib/plugins/processing/signal-processing for example).

Important Warnings

The skeleton-generator uses the GNU utility sed to replace tags by user’s specific information in template files. To perform these replacements without any problem, the tool checks the information provided. Some particular entries have constraints, for example you cannot use letters in the field “sampling frequencies” of your driver skeleton.

Such constraints are checked before generation, and you will be asked to change any faulty field. However, some fields such as box description are free of restriction. We tried to ensure that every character can be used in such field, but still have some doubts on sed/OS compatibility.

For that reasons, the Skeleton-Generator is given as a beta version. Don’t hesitate to report unstability or compatibility issues when using this tool.

How to use it ?

To start the skeleton-generator application, please use:

In Linux : go to script directory then launch ./openvibe-skeleton-generator.sh

in Windows go to dist directory and double-click on openvibe-skeleton-generator.cmd

The first interface is simple. You have to enter the developer name and its affiliation. Then choose the skeleton you want to generate : Acquisition Driver or Box Algorithm.

 

Fig.1 Skeleton generator dialog window.

For both skeleton generator you will have 3 buttons:

  • Check : verify all fields, and asks for modification if needed.
  • Ok : generate the files. This button is enabled only after successful check process. If you modify some entries, please be sure to check them again.
  • Save & Exit : exit the application and save the current fields for the next time.

Press any “help!” buttons for more details about a field.

Don’t forget to read the README file produced ! It explains how to integrate your skeleton in OpenViBE and build it.

The Acquisition Driver Skeleton Generator

This generator is quiet simple : it needs the driver name, the class name (which should be close to the driver name), the maximum and minimum channel count and the different sampling frequencies. Choose the target directory and you’re done.

 

Fig.2 Driver Skeleton Generator.

Please read the dedicated tutorials to learn how to implement your new driver.

The Box Algorithm Skeleton Generator

Bulding a new plugin is a bit more complicated. Generating the skeleton can be done in several steps, each one on a different tab.

  • General: basic information, such as box name, category, icon used in the designer, etc.
  • Inputs : add box inputs by specifying name and type.
  • Outputs : add box outputs by specifying name and type.
  • Settings : add box settings by specifying name, type and default value.
  • Codec Algorithms : add input decoders and output encoders. You should add one algorithm per input/output, even if they have the same type.
  • Processing Method : you can choose to call the process method on a given clock or every time it receives data on its inputs.
  • Box Listener : you can implement a box listener to define callbacks called when the box structure changes (user add input for example).
  • Message Inputs : add message inputs by specifying name.
  • Message Outputs : add message output by specifying name.

WARNING : the settings default values are not checked. Please be sure to enter coherent values (i.e. not “hello” for an integer setting).

 

SkeletonGenerator_BoxOverview
Fig.3 Box description.

The skeleton code is widely commented to help you understand the various possibilities of implementation. For a first tutorial, please read the dedicated pages.

Feel free to ask your questions on the forum. Experienced developers will answer you asap !

This entry was posted in Developer tools and tagged , , . Bookmark the permalink.