コード例 #1
0
        void RestoreRemembered()
        {
            // Restore Video Source
            if (!string.IsNullOrEmpty(Settings.Video.SourceKind))
            {
                var kind = VideoViewModel.AvailableVideoSourceKinds.FirstOrDefault(M => M.Name == Settings.Video.SourceKind);

                if (kind != null)
                {
                    VideoViewModel.SelectedVideoSourceKind = kind;

                    switch (kind)
                    {
                    case RegionSourceProvider _:
                        if (RectangleConverter.ConvertFromInvariantString(Settings.Video.Source) is Rectangle rect)
                        {
                            _regionProvider.SelectedRegion = rect;
                        }
                        break;

                    default:
                        var source = VideoViewModel.AvailableVideoSources
                                     .FirstOrDefault(S => S.ToString() == Settings.Video.Source);

                        if (source != null)
                        {
                            VideoViewModel.SelectedVideoSource = source;
                        }
                        break;
                    }
                }
            }

            // Restore Video Codec
            if (!string.IsNullOrEmpty(Settings.Video.WriterKind))
            {
                var kind = VideoViewModel.AvailableVideoWriterKinds.FirstOrDefault(W => W.Name == Settings.Video.WriterKind);

                if (kind != null)
                {
                    VideoViewModel.SelectedVideoWriterKind = kind;

                    var codec = VideoViewModel.AvailableVideoWriters.FirstOrDefault(C => C.ToString() == Settings.Video.Writer);

                    if (codec != null)
                    {
                        VideoViewModel.SelectedVideoWriter = codec;
                    }
                }
            }

            // Restore Microphones
            if (Settings.Audio.Microphones != null)
            {
                foreach (var source in AudioSource.AvailableRecordingSources)
                {
                    source.Active = Settings.Audio.Microphones.Contains(source.Name);
                }
            }

            // Restore Loopback Speakers
            if (Settings.Audio.Speakers != null)
            {
                foreach (var source in AudioSource.AvailableLoopbackSources)
                {
                    source.Active = Settings.Audio.Speakers.Contains(source.Name);
                }
            }

            // Restore ScreenShot Format
            if (!string.IsNullOrEmpty(Settings.ScreenShots.ImageFormat))
            {
                var format = ScreenShotImageFormats.FirstOrDefault(F => F.ToString() == Settings.ScreenShots.ImageFormat);

                if (format != null)
                {
                    SelectedScreenShotImageFormat = format;
                }
            }

            // Restore ScreenShot Target
            if (Settings.ScreenShots.SaveTargets != null)
            {
                foreach (var imageWriter in VideoViewModel.AvailableImageWriters)
                {
                    imageWriter.Active = Settings.ScreenShots.SaveTargets.Contains(imageWriter.Display);
                }

                // Activate First if none
                if (!VideoViewModel.AvailableImageWriters.Any(M => M.Active))
                {
                    VideoViewModel.AvailableImageWriters[0].Active = true;
                }
            }
        }
コード例 #2
0
        void RestoreRemembered()
        {
            // Restore Video Source
            if (!string.IsNullOrEmpty(Settings.Video.SourceKind))
            {
                var kind = VideoViewModel.AvailableVideoSourceKinds.FirstOrDefault(M => M.Name == Settings.Video.SourceKind);

                if (kind != null)
                {
                    VideoViewModel.SelectedVideoSourceKind = kind;

                    switch (kind)
                    {
                    case RegionSourceProvider _:
                        if (RectangleConverter.ConvertFromInvariantString(Settings.Video.Source) is Rectangle rect)
                        {
                            _regionProvider.SelectedRegion = rect;
                        }
                        break;

                    default:
                        var source = VideoViewModel.AvailableVideoSources
                                     .FirstOrDefault(S => S.ToString() == Settings.Video.Source);

                        if (source != null)
                        {
                            VideoViewModel.SelectedVideoSource = source;
                        }
                        break;
                    }
                }
            }

            // Restore Video Codec
            if (!string.IsNullOrEmpty(Settings.Video.WriterKind))
            {
                var kind = VideoViewModel.AvailableVideoWriterKinds.FirstOrDefault(W => W.Name == Settings.Video.WriterKind);

                if (kind != null)
                {
                    VideoViewModel.SelectedVideoWriterKind = kind;

                    var codec = VideoViewModel.AvailableVideoWriters.FirstOrDefault(C => C.ToString() == Settings.Video.Writer);

                    if (codec != null)
                    {
                        VideoViewModel.SelectedVideoWriter = codec;
                    }
                }
            }

            // Restore Microphone
            if (!string.IsNullOrEmpty(Settings.Audio.Microphone))
            {
                var source = AudioSource.AvailableRecordingSources.FirstOrDefault(C => C.ToString() == Settings.Audio.Microphone);

                if (source != null)
                {
                    AudioSource.SelectedRecordingSource = source;
                }
            }

            // Restore Loopback Speaker
            if (!string.IsNullOrEmpty(Settings.Audio.Speaker))
            {
                var source = AudioSource.AvailableLoopbackSources.FirstOrDefault(C => C.ToString() == Settings.Audio.Speaker);

                if (source != null)
                {
                    AudioSource.SelectedLoopbackSource = source;
                }
            }

            // Restore ScreenShot Format
            if (!string.IsNullOrEmpty(Settings.ScreenShots.ImageFormat))
            {
                var format = ScreenShotImageFormats.FirstOrDefault(F => F.ToString() == Settings.ScreenShots.ImageFormat);

                if (format != null)
                {
                    SelectedScreenShotImageFormat = format;
                }
            }

            // Restore ScreenShot Target
            if (!string.IsNullOrEmpty(Settings.ScreenShots.SaveTarget))
            {
                var saveTo = VideoViewModel.AvailableImageWriters.FirstOrDefault(S => S.ToString() == Settings.ScreenShots.SaveTarget);

                if (saveTo != null)
                {
                    VideoViewModel.SelectedImageWriter = saveTo;
                }
            }

            // Restore Webcam
            if (!string.IsNullOrEmpty(Settings.Video.Webcam))
            {
                var webcam = WebCamProvider.AvailableCams.FirstOrDefault(C => C.Name == Settings.Video.Webcam);

                if (webcam != null)
                {
                    WebCamProvider.SelectedCam = webcam;
                }
            }
        }