[audio] Remove ADR support for Dai drivers

This is the first of four sequential CLs that reduce the
compatibility burden for audio.

Fuchsia has supported four audio driver "models": Codec,
Composite, Dai and StreamConfig. Of these, three (Codec, Dai
and StreamConfig) have been deprecated since API level 20 --
all current and future audio driver development should use
the Composite model.

AudioDeviceRegistry will be used in future products. In
addition to Composite drivers, it has long supported
StreamConfig (and Codec), to maintain the possibility that
we retrofit the legacy AudioCore (which serves StreamConfig
drivers) to eliminate a significant portion of older
duplicate code. However, it is now clear that the existing
AudioCore is certainly adequate for legacy products, and
for any future products that require mixing we would create
a new implementation. (See fxr/1209988, 1209989, 1209990
which remove the remnants of this 'v2' refactor and
migration, which has been in-progress, then halted/waiting
for more than two years.)

With the clarity that AudioDeviceRegistry need only support
Composite devices, we can simplify its internals and reduce
its API surface area. This is a perfect time to do this
simplification, because ADR is currently only used in new
products (and these only contain Composite drivers).

This first CL removes support for the Dai audio driver
model. All traces of this driver type are removed, as
shown by the removal of 'Dai' from the DeviceType enum
and DriverClient union.

Bug: b/390573488

Change-Id: I2f7a9fca03a3d4871c7e1607507937b7d453388a
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1212026
Commit-Queue: Martin Puryear <mpuryear@google.com>
API-Review: Yegor Pomortsev <ypomortsev@google.com>
Reviewed-by: Yegor Pomortsev <ypomortsev@google.com>
12 files changed
tree: 4ca3c0dddad1c1e55d81341c7bff1bbbd1292dd1
  1. .helix/
  2. boards/
  3. build/
  4. bundles/
  5. docs/
  6. examples/
  7. infra/
  8. products/
  9. scripts/
  10. sdk/
  11. src/
  12. third_party/
  13. tools/
  14. zircon/
  15. .clang-format
  16. .clang-tidy
  17. .editorconfig
  18. .git-blame-ignore-revs
  19. .gitattributes
  20. .gitignore
  21. .gitmodules
  22. .gn
  23. .ignore
  24. analysis_options.yaml
  25. AUTHORS
  26. BUILD.gn
  27. CODE_OF_CONDUCT.md
  28. CONTRIBUTING.md
  29. fuchsia.code-workspace
  30. LICENSE
  31. OWNERS
  32. PATENTS
  33. pyproject.toml
  34. pyrightconfig.json
  35. README.md
  36. rustfmt.toml
  37. shac.star
  38. shac.textproto
README.md

Fuchsia

What is Fuchsia?

Fuchsia is an open source, general purpose operating system supporting modern 64-bit Intel and ARM processors.

We expect everyone interacting with our project to respect our code of conduct.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.