blob: 857e2d6288ace35f1dc25bef864d794c8b963ca6 [file] [view] [edit]
# 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.