mbox series

[BlueZ,0/5] ASHA plugin

Message ID 20240508154604.276763-1-arun@asymptotic.io (mailing list archive)
Headers show
Series ASHA plugin | expand

Message

Arun Raghavan May 8, 2024, 3:45 p.m. UTC
Hi folks,
I've written an implementation of the Android specification for
streaming to hearing aids over Bluetooth LE, ASHA[1]. This predates the
LE audio specification, and has been supported in hearing aids for a
while now, so I think this is worth supporting as these devices should
continue to be in use for several years.

I've reused the MediaEndpoint1 and MediaTransport1 interfaces at Luiz'
suggestion. The flow is slightly different from A2DP and LE Audio in
that there isn't really a negotiation step, so the endpoint and
transport are both available on connection.

Also included is a script to stream arbitrary audio to an ASHA device,
which is handy for making sure that the implementation does work. I have
tested this against a reference implementation on an onsemi RSL10 board.

The current implementation is written with a single device in mind. My
plan is to take this to completion along with a PipeWire implementation
to expose a single device for playback, and then do a second pass to
support a pair of devices.

Cheers,
Arun

[1] https://source.android.com/docs/core/connect/bluetooth/asha

Arun Raghavan (5):
  profiles: Add initial code for an ASHA plugin
  asha: Implement volume on transport
  test: Add a script to test ASHA
  gitignore: Add compile_commands.json
  gitignore: Add __pycache__

 .gitignore                 |   3 +
 Makefile.plugins           |   5 +
 configure.ac               |   4 +
 lib/uuid.h                 |   3 +
 profiles/audio/asha.c      | 835 +++++++++++++++++++++++++++++++++++++
 profiles/audio/asha.h      |  38 ++
 profiles/audio/media.c     |  28 ++
 profiles/audio/media.h     |   2 +
 profiles/audio/transport.c | 173 +++++++-
 test/simple-asha           | 158 +++++++
 10 files changed, 1247 insertions(+), 2 deletions(-)
 create mode 100644 profiles/audio/asha.c
 create mode 100644 profiles/audio/asha.h
 create mode 100755 test/simple-asha