rust/bt-mcs: Handle GATT write requests and control point commands

Implement GATT write request processing and asynchronous Media Control
Point command execution for the Media Control Service.

Define an event that is yielded to upper layers. Events can be handled
and responded to which generate the required GATT notification.

Handle Media Control Point writes by checking opcode support and player
activity state, emitting immediate notifications for fast rejections.
For supported opcodes, provide a `ControlPointResponder` to allow the
application to complete the operation asynchronously.

Bug: 540400364
Test: cargo test -p bt-mcs, ./presubmit.sh
Change-Id: If4545955dce9873dfdf84f889898cb944c8f0e1c
Reviewed-on: https://bluetooth-review.googlesource.com/c/bluetooth/+/3740
4 files changed
tree: 5e14d96d95dddc344789f265092d7f828af3b8fd
  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)