refactor: extract recording-output concern into MainViewModel.Recording.cs — Commit F
The original premise (extract FFmpegEncoder / StreamHealthMonitor / FramePump classes) was a no-op — those already exist as Services/Encoder/FfmpegEncoder.cs and Services/Encoder/FramePump.cs. The honest functional seam was the local recording-output concern, which was interleaved with live-stream orchestration: - New MainViewModel.Recording.cs (121): StartRecordFile, FinalizeRecordingAsync, UniquePath, ChooseRecordFolder, ResetRecordFolder, DefaultRecordFolder + the recording fields (_recordFolder, RecordFolderDisplay, _activeRecordPath, _recordStartTime, _recordLength). - MainViewModel.Streaming.Operations.cs 475 -> 377 (keeps live session lifecycle, health, visuals). - MainViewModel.Streaming.cs 328 -> 323 (keeps pills/state/properties intact). Same partial class — all MVVM bound-property glue untouched, no behavior change. Build 0 warnings; 246 pass, only the 2 known failures. Docs: ViewModels/index.md tracker updated in same commit.
This commit is contained in:
@@ -38,14 +38,9 @@ public partial class MainViewModel : ViewModelBase
|
||||
private bool _recordPillOn;
|
||||
private bool _onAirPillOn;
|
||||
private bool _isRecording;
|
||||
private string? _recordFolder;
|
||||
|
||||
/// <summary>Resolved record folder — the configured choice, or Downloads (0th case).</summary>
|
||||
public string RecordFolderDisplay => _recordFolder ?? DefaultRecordFolder();
|
||||
|
||||
private string? _activeRecordPath;
|
||||
private DateTime _recordStartTime;
|
||||
private TimeSpan _recordLength;
|
||||
|
||||
private readonly FramePump _framePump;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user