Issue
Update CLIMain wiring to use IAudioStrategy and IAudioHardwareProvider.
Background
CLIMain currently wires up IAudioMode + IAudioRenderer. After Option B refactoring, it needs to wire up IAudioStrategy + IAudioHardwareProvider.
Goal
Update CLIMain to:
- Create IAudioHardwareProvider (CoreAudioHardwareProvider for macOS)
- Create IAudioStrategy via AudioStrategyFactory
- Wire dependencies correctly
- Remove old AudioModeFactory and AudioRendererFactory references
Implementation Plan
- Update CLIMain.cpp to create CoreAudioHardwareProvider
- Update CLIMain.cpp to create IAudioStrategy via AudioStrategyFactory
- Update SimulationConfig to use IAudioStrategy instead of IAudioMode
- Remove AudioModeFactory includes and usage
- Remove AudioRendererFactory includes and usage
- Update all strategy/creation logic
- Test all audio modes (--threaded, --sync-pull)
Acceptance Criteria
- CLIMain creates IAudioHardwareProvider
- CLIMain creates IAudioStrategy via factory
- All old factory references removed
- All smoke tests pass (--sine, --threaded, --sync-pull)
- Clean build with no warnings
- No behavioral changes (audio sounds identical)
Testing
- All smoke tests pass
- Simulator-level audio tests produce identical output
- Integration tests pass
- Manual testing of all audio modes
Dependencies
Related Issues
None - this is final wiring task for Option B
Success Criteria
When this issue is complete, Option B refactoring is complete:
- 10+ classes reduced to 2 interfaces + 4 implementations
- Architecture is simplified and SOLID-compliant
- All tests pass (GREEN)
- No behavioral changes
Issue
Update CLIMain wiring to use IAudioStrategy and IAudioHardwareProvider.
Background
CLIMain currently wires up IAudioMode + IAudioRenderer. After Option B refactoring, it needs to wire up IAudioStrategy + IAudioHardwareProvider.
Goal
Update CLIMain to:
Implementation Plan
Acceptance Criteria
Testing
Dependencies
Related Issues
None - this is final wiring task for Option B
Success Criteria
When this issue is complete, Option B refactoring is complete: