Skip to content

Design Overview

Phil Schatzmann edited this page Apr 14, 2024 · 22 revisions
  • The current code is purely dependent on the ESP-IDF framework (which is also provided by the Arduino ESP32 core). There are no other mandatory dependencies and this includes the Arduino API!

  • All state is managed with class variables and there should not be any need for any global variables.

  • The method names are using the snake_case convention.

  • The A2DP Sink and the A2DP Source are provided as C++ classes and all methods have been defined as virtual. So if you have some project specific requirements that can not be resolved by using callbacks, you can easily create your own Subclass and overwrite the method that you want to change or extend. There is usually no need to change basic code.

  • The output of audio is done with the help of output classes that can be defined in the sink. Initially this project contained the i2s logic to output the audio. This functionality has been depreciated in favor for the output functionality using the Arduino AudioTools: In order to send the output to I2S or other audio sinks, I recommend to use the AudioTools library. The other version independent, portable way to output audio is by using the callback method.

  • If you extend the functionality please let me know and share your work with the community by submitting a pull request.

Clone this wiki locally