TODO: BAP Broadcast Assistant Implementation
Phase 1: Broadcast Source Discovery & PA Synchronization
- [x] Define scan filters for Broadcast Audio Announcement Service (
0x1852). - [x] Parse
Broadcast_ID and Broadcast_Name from Extended Advertising (EA) payloads. - [x] Integrate
bt_gatt::periodic_advertising::PeriodicAdvertising trait for establishing PA sync when BASE data is missing. - [x] Parse Basic Audio Announcement Service (
0x1851) BASE structure (subgroups, Codec IDs, Codec Configurations, Metadata, BIS indices). - [x] Merge discovered BASE endpoint into internal
BroadcastSource state. - [x] Automatically abort/cancel PA sync once complete source information is gathered to conserve system resources.
Phase 2: Scan Delegator Discovery & BASS Client Integration
- [x] Define scan filters for Broadcast Audio Scan Service (BASS,
0x184F). - [x] Implement connection procedure to Scan Delegator peers.
- [x] Instantiate
BroadcastAudioScanServiceClient over discovered GATT service. - [x] Stream BASS events (Receive State characteristic updates) to upper layers.
Phase 3: Control Point Operations & Delegation
- [x] Implement
Add Source control point operation (add_broadcast_source). - [x] Implement
Modify Source control point operation (modify_broadcast_source). - [x] Implement
Remove Source control point operation (remove_broadcast_source). - [x] Implement
Set Broadcast Code control point operation (set_broadcast_code). - [ ] Implement Periodic Advertising Sync Transfer (PAST) offloading procedure for platforms supporting PAST.
Phase 4: Refinement, Advanced Features & Testing
- [x] Provide force discovery/debug mock helpers for testing without hardware radio.
- [ ] Support high-level multi-subgroup / multi-BIS synchronization selection helpers.
- [ ] Enhanced error handling for PA sync loss / establishment failures during scanning.
- [ ] End-to-end integration tests with real/mocked platform BLE controller.