-
Notifications
You must be signed in to change notification settings - Fork 4
Software
This section provides a detailed description of the software layer of bzzzbz on a high level perspective. The code is documented with Doxygen for details on the specific functions. You can find the HTML generated docuentation in the docs/ folder, or run
doxygen Doxyfile
in the main folder to generate it from the code.
To meet the real-time requirements of the system, the core functionalities of the software were implemented using C/C++.
Below you can find a conceptual software diagram that outlines single components and their interactions.

The diagram will be used as a reference for the following sections that will outline the implementation of the main functionalities:
- Video Processing
- Audio Processing
- Control Processing
bzzzbz uses OpenGL ES 2.0 to generate visuals. OpenGL is the standard cross-platform API for video generation, used in the majority of interactive visuals (such as game development). The OpenGL ES (Embedded System) is optimised for microcontrollers and systems with limited hardware resources. It is therefore suitable for the Raspberry Pi environment.
The main.cpp program and all the ex_.cpp* programs in the examples/ folder use OpenGL functions to:
- Initialise the display window and the graphic algorithms:
init_resources(). - Set up an "update screen" function in between frames:
onIdle(). - Render the frame:
onDisplay() - Start the rendering loop.
The graphical algorithms are called shaders and are defined externally in .glsl files, a language specific to create GPU accelerated graphics. During the init_resources() phase the shaders are "read in" by OpenGL and will be used later during the rendering.
JACK audio.