About the codebase
All Gen2 Bongiovi SDKs are built from a unified C codebase. This allows the same code to be used for operating system applications (embedded and standard) as well as specialized digital signal processing chip solutions.
To achieve this flexibility, the Bongiovi codebases are not built with an object-oriented foundation. Instead, libraries can be easily built to support a finite number of algorithm instances appropriate for the target platform. For example, the Linux/Android/iOS/Windows SDKs are built (by default) to support 20 instances while the NXP Dirana 3 solution (and its ~300kb memory limitation) is built to support a maximum of 2 stereo instances. An instance handler provides dynamic allocation in the background when required by the platform.
Object-oriented applications are supported by wrapping the core C audio processing code and instance handler in a C++ interface. C headers for this interface are also provided for situations where C++ cannot be used.
- Algorithm Blocks
- Instances (mono or stereo)
- Instance Handler
- Local API
- Communication (remote) API
- C++ Interface
- C Convenience Interface
When using the C interface, C++ components will still be present. Therefore, the C++ linker must be used when building the application.