[bt][hfp] ServiceLevelConnection codecs_supported

Add new CodecId type which represents a type identifying a codec used in
HFP.  The initial IDs are taken from HFP v1.8, Sec 10 / Appendix B.

Add support for querying the supported codecs from the
ServiceLevelConnection, including when codec negotiation is not
supported.

Add protection against codec IDs over the wire that are out of the
allowed range.

Will be used to setup codecs during audio connection setup.

Includes minor cleanup / DRYing of tests.

Bug: 64523
Test: added and updated unit tests
Test: fx test bt-hfp-audio-gateway-tests
Change-Id: Ifca50cc28fc6b62b3af940e44049fbbb0b222678
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/519922
Fuchsia-Auto-Submit: Marie Janssen 💖 <jamuraa@google.com>
Commit-Queue: Auto-Submit <auto-submit@fuchsia-infra.iam.gserviceaccount.com>
Reviewed-by: Jeff Belgum <belgum@google.com>
3 files changed
tree: 5aa26b337fc303e70e217ea605ce43ee07f91c92
  1. boards/
  2. build/
  3. buildtools/
  4. bundles/
  5. docs/
  6. examples/
  7. garnet/
  8. products/
  9. scripts/
  10. sdk/
  11. src/
  12. third_party/
  13. tools/
  14. zircon/
  15. .clang-format
  16. .clang-tidy
  17. .git-blame-ignore-revs
  18. .gitattributes
  19. .gitignore
  20. .gn
  21. .style.yapf
  22. AUTHORS
  23. BUILD.gn
  24. CODE_OF_CONDUCT.md
  25. CONTRIBUTING.md
  26. LICENSE
  27. OWNERS
  28. PATENTS
  29. README.md
  30. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

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.