private void RefreshMainContent(PreviewMainDisplay mainDisplay, bool playingPreview) { // Close the video if we're swapping it out. var previewFrame = this.MainContent as IPreviewFrame; if (!playingPreview && previewFrame != null) { previewFrame.CloseVideo(); } switch (mainDisplay) { case PreviewMainDisplay.None: this.previewArea.Children.Clear(); break; case PreviewMainDisplay.Default: if (!(this.MainContent is PreviewFit)) { this.MainContent = new PreviewFit(); } break; case PreviewMainDisplay.FitToWindow: if (!(this.MainContent is PreviewFit)) { this.MainContent = new PreviewFit(); } break; case PreviewMainDisplay.OneToOne: if (!(this.MainContent is PreviewOneToOne)) { this.MainContent = new PreviewOneToOne(); } break; case PreviewMainDisplay.StillCorners: if (!(this.MainContent is PreviewCorners)) { this.MainContent = new PreviewCorners(); } break; default: throw new ArgumentOutOfRangeException(); } previewFrame = this.MainContent as IPreviewFrame; if (previewFrame != null) { if (playingPreview) { previewFrame.SetVideo(this.viewModel.OnVideoCompleted, this.viewModel.OnVideoFailed, this.viewModel.WhenAnyValue(x => x.Volume)); } else { previewFrame.SetImage(); } } }
private void OnMainDisplayUpdate(PreviewMainDisplay mainDisplay, bool playingPreview) { this.RefreshMainContent(mainDisplay, playingPreview); this.RefreshImageSize(); }