| # TODO: BAP Unicast Simple Control Implementation |
| |
| ## Phase 1: Foundation and Discovery |
| - [x] Define core types for Configurations and Codec Capability Settings (enums/structs). |
| - [x] Implement `BapUnicastManager` skeleton with `PeerId` mapping. |
| - [ ] Implement `add_peer` function: |
| - [ ] Connect to PACS and read capabilities. |
| - [ ] Connect to ASCS and discover ASEs. |
| - [ ] Implement mapping logic from raw PACS/ASCS data to spec-defined Configurations. |
| |
| ## Phase 2: Stream Control (Prescriptive) |
| - [ ] Implement `start_streaming`: |
| - [ ] Generate Codec Specific Configuration LTVs for requested setting. |
| - [ ] Drive ASCS state machine (Config Codec, Config QoS, Enable). |
| - [ ] Extract and return CIS handles upon success. |
| - [ ] Implement `stop_streaming` / `release`: |
| - [ ] Drive ASCS state machine back to Idle. |
| - [ ] Ensure CIS is released. |
| |
| ## Phase 3: Pause and Resume |
| - [ ] Implement `pause_streaming`: |
| - [ ] Move ASEs to a state that retains CIS (e.g., QoS Configured or custom handling). |
| - [ ] Implement `resume_streaming`: |
| - [ ] Move ASEs back to Streaming state. |
| |
| ## Phase 4: Testing Support |
| - [ ] Ensure `start_streaming` skips capability validation check against discovered PACS data to allow testing unsupported configurations. |