Using the DPS Android SDK

The Sample App for Android

The Evaluation Package contains an Android application development project.  This project is designed to give you an example of how to use the Bongiovi DPS libraries in your project.  Here are some details:

  • The root SDK directory contains a sample project using the DPS library.
  • The sample project uses the OpenSL ES APIs introduced in Android 2.3 and therefore requires a minimum Android SDK version of 10.
  • The sample project uses a raw PCM file for demonstration purposes. When playing compressed audio, one must decompress the audio first. Decompressing the audio is out of the scope of this sample. Android 4.0 does have APIs to decompress audio to raw PCM, but if you would like to support older Android versions, you will need to develop or integrate a third party decompression library.

Setup:

  1. First, setup your Android development environment http://developer.android.com/sdk/installing/bundle.html
  2. The DPS process is written in C so you must install the NDK http://developer.android.com/tools/sdk/ndk/index.html
  3. Copy in the appropriate lib folder(s) from the DPS SDK package jni folder into your project’s jni/libs/ folder, if you are unsure which ones you need, use all 3.  Refer to this link for more details.  NOTE: Using the wrong libDPS.so will result in high CPU consumption and bad audio quality.
  4. Update your Android.mk file to reference the libDPS.so library… LOCAL_MODULE := DPS LOCAL_SRC_FILES := libs/$(TARGET_ARCH_ABI)/libDPS.so
  5. Put your DPS license file and any DPS profiles into your project’s assets/ folder. Only two test profile are included in this sample project.  Please contact Bongiovi Acoustics for access to the current profile library and details about licensing.
  6.  Copy in the DPS.h file into your project’s jni/ folder.  Click Here for information about the Bongiovi DPS SDK API.
  7. Run ndk-build script to copy and/or compile necessary code into your project:  http://developer.android.com/tools/sdk/ndk/index.html#GetStarted

Your project is now ready to build and run.

Basic Usage of the Bongiovi DPS API

  • Call DPSInitialize(JNIEnv* env, jobject android_context, jstring license_file) .  The java environment and variables are needed to validate the license. You must receive AUTH_SUCCESS (0) to be able to continue unrestricted.  All other messages will start the DPS libs in 10 minute demo mode.
  • Call DPSLoadPreset(“filenameAndPath”) or DPSLoadPresetBuf(char *c, int length)  to load a Bongiovi DPS profile.  The profiles use the .bgva extension.
  • Call DPSProcessBuffer(float *buffer, int N)  with a buffer of N interleaved stereo samples.  This is how you get audio into and out of the Bongiovi DPS algorithm.
  • Call DPSSetDPSEnabled(1)  to turn on the DPS audio effect.
  • Click Here for more details about the Bongiovi DPS Android API.

Options:

  • Use DPSSetKidSafe(1)  to turn on KidSafe/DPS HEAR audio level protection.  This adjusts the parameters of the Bongiovi DPS algorithm to provide quality sound at a healthier listening volume.
  • Use DPSSetDPSEnabled(0)  to Bypass DPS (DPS is enabled in default state), this is different from totally bypassing all of DPS in that KidSafe/DPS HEAR will continue to work.
  • Use FcKnobMoved/QKnobMoved/GKnobMoved to control the user equalizer.  Click here to learn more.