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.