Issue Type
Implementation - Architecture Refactoring
Severity
High - Critical path for Option B implementation
Problem Statement
SyncPullAudioMode and SyncPullRenderer are separate coupled classes. Need to consolidate into single SyncPullStrategy that combines lifecycle + rendering.
Current State
- SyncPullAudioMode (11 methods) - mode lifecycle
- SyncPullRenderer (4 methods) - on-demand rendering
- Tight coupling: SyncPullAudioMode creates SyncPullRenderer in createContext()
- Cannot use SyncPullRenderer independently
- SRP violation: Responsibility split across two classes
Target State
Single SyncPullStrategy class implementing IAudioStrategy:
- Combines all SyncPullAudioMode + SyncPullRenderer functionality
- Implements IAudioStrategy interface completely
- Self-contained (no external renderer creation)
- Maintains on-demand rendering behavior
- Preserves all existing functionality
Implementation Tasks
- Create SyncPullStrategy.h implementing IAudioStrategy
- Merge SyncPullAudioMode + SyncPullRenderer into SyncPullStrategy
- Remove SyncPullAudioMode + SyncPullRenderer files
- Update AudioPlayer to use SyncPullStrategy
- Ensure all existing tests pass
Acceptance Criteria
Testing Requirements
Related Issues
References
- ARCHITECTURE_FILE_CLASS_AUDIT.md - Coupling violations
- AUDIO_MODULE_ARCHITECTURE.md - Phase 6 consolidation plan
- test/unit/SyncPullRendererTest.cpp - Existing test coverage
Issue Type
Implementation - Architecture Refactoring
Severity
High - Critical path for Option B implementation
Problem Statement
SyncPullAudioMode and SyncPullRenderer are separate coupled classes. Need to consolidate into single SyncPullStrategy that combines lifecycle + rendering.
Current State
Target State
Single SyncPullStrategy class implementing IAudioStrategy:
Implementation Tasks
Acceptance Criteria
Testing Requirements
Related Issues
References