bluetooth: Modular API for A2DP codecs
authorPali Rohár <pali.rohar@gmail.com>
Sat, 6 Apr 2019 09:15:58 +0000 (11:15 +0200)
committerTanu Kaskinen <tanuk@iki.fi>
Fri, 12 Apr 2019 12:09:08 +0000 (15:09 +0300)
commit106aa91477e4243f00fd04fef3a038badea385c9
tree7678583f862b1d1fdd4bd46872c93815f75ddf91
parente8c4638f79abb4306d00d6edd942688e419e4e41
bluetooth: Modular API for A2DP codecs

This patch introduce new modular API for bluetooth A2DP codecs. Its
benefits are:

* bluez5-util and module-bluez5-device does not contain any codec specific
  code, they are codec independent.

* For adding new A2DP codec it is needed just to adjust one table in
  a2dp-codec-util.c file. All codec specific functions are in separate
  codec file.

* Support for backchannel (microphone voice). Some A2DP codecs (like
  FastStream or aptX Low Latency) are bi-directional and can be used for
  both music playback and audio call.

* Support for more configurations per codec. This allows to implement low
  quality mode of some codec together with high quality.

Current SBC codec implementation was moved from bluez5-util and
module-bluez5-device to its own file and converted to this new A2DP API.
src/Makefile.am
src/modules/bluetooth/a2dp-codec-api.h [new file with mode: 0644]
src/modules/bluetooth/a2dp-codec-sbc.c [new file with mode: 0644]
src/modules/bluetooth/a2dp-codec-util.c [new file with mode: 0644]
src/modules/bluetooth/a2dp-codec-util.h [new file with mode: 0644]
src/modules/bluetooth/bluez5-util.c
src/modules/bluetooth/bluez5-util.h
src/modules/bluetooth/module-bluez5-device.c