Issue
Create CoreAudioHardwareProvider implementing IAudioHardwareProvider for macOS platform.
Background
Current AudioPlayer uses CoreAudio AudioUnit directly. We need to extract platform-specific code into a dedicated provider class.
Goal
Create CoreAudioHardwareProvider that:
- Implements IAudioHardwareProvider interface
- Uses CoreAudio AudioUnit for audio playback on macOS
- Provides clean platform abstraction
- Supports callback registration for audio rendering
Implementation Plan
- Create CoreAudioHardwareProvider.h/cpp implementing IAudioHardwareProvider
- Extract AudioUnit setup from AudioPlayer::setupAudioUnit()
- Extract AudioUnit callback from AudioPlayer::audioUnitCallback()
- Implement all IAudioHardwareProvider methods
- Manage AudioUnit lifecycle internally
Acceptance Criteria
- CoreAudioHardwareProvider.h/cpp created implementing IAudioHardwareProvider
- Initializes AudioUnit with specified sample rate and buffer size
- Supports start/stop playback
- Supports volume control
- Supports audio callback registration
- All existing AudioPlayer tests pass
- Clean build with no warnings
Testing
- Unit tests for CoreAudioHardwareProvider
- Integration tests with AudioPlayer
- All smoke tests pass
- No behavioral changes (audio sounds identical)
Dependencies
Related Issues
Issue
Create CoreAudioHardwareProvider implementing IAudioHardwareProvider for macOS platform.
Background
Current AudioPlayer uses CoreAudio AudioUnit directly. We need to extract platform-specific code into a dedicated provider class.
Goal
Create CoreAudioHardwareProvider that:
Implementation Plan
Acceptance Criteria
Testing
Dependencies
Related Issues