rust/bt-ascs: Implement Receiver Start Ready operation

This change implements the client-side "Receiver Start Ready" operation
as defined in ASCS v1.0.1, Section 5.4.

This also includes a major refactoring of the ASE control operations in
the `AudioStreamEndpointHandle` to use a common `perform_operation`
helper method. This reduces code duplication and improves
maintainability.

 - The `configure_codec`, `configure_qos`, and `enable` operations were
   updated to use this new helper.
 - The `AseControlOperation` enum was improved by renaming `is_valid_state`
   to `is_valid_operation` and `next_state` to `expected_next_state` to
   better reflect their purpose.

Test: cargo test -p bt-ascs
Bug: b/431814103

Change-Id: I916d9553eb529d6940635bcc14098e948f9a0cad
Reviewed-on: https://bluetooth-review.googlesource.com/c/bluetooth/+/2460
1 file changed
tree: 7d6d3928572d047a2e6384e25a84dbe9620423c9
  1. .agents/
  2. docs/
  3. infra/
  4. rust/
  5. .gitignore
  6. AUTHORS
  7. CONTRIBUTING.md
  8. GEMINI.md
  9. LICENSE
  10. OWNERS
  11. PATENTS
  12. presubmit.sh
  13. README.md
README.md

Bluetooth Shared Libraries

What is this?

This is a repository for shared libraries and tools that can be useful for multiple Bluetooth stacks.

These tools and libraries are meant to be:

  • Stack-agnostic and platform-agnostic
  • Implement a useful subset of a published Bluetooth specification.

It has been started as a repository for developing Rust crates but can be easily expanded to include libraries and tools written in other languages.

What is this not?

It is not a full Bluetooth stack. Google has two officially open-source Bluetooth stacks:

Structure

  • rust - Rust Crates
  • docs - General documentation (documentation for each library/tool is included in their directories)