예제 #1
0
 public RememberByName(Settings Settings,
                       VideoSourcesViewModel VideoSourcesViewModel,
                       VideoWritersViewModel VideoWritersViewModel,
                       AudioSourceViewModel AudioSourceViewModel,
                       IEnumerable <IVideoSourceProvider> VideoSourceProviders)
 {
     _settings = Settings;
     _videoSourcesViewModel = VideoSourcesViewModel;
     _videoWritersViewModel = VideoWritersViewModel;
     _audioSourceViewModel  = AudioSourceViewModel;
     _videoSourceProviders  = VideoSourceProviders;
 }
예제 #2
0
        static void HandleVideoSource(VideoSourcesViewModel VideoSourcesViewModel, CommonCmdOptions CommonOptions)
        {
            if (CommonOptions.Source == null)
            {
                return;
            }

            var providers = ServiceProvider.Get <IEnumerable <IVideoSourceProvider> >();

            var provider = providers.FirstOrDefault(M => M.ParseCli(CommonOptions.Source));

            if (provider != null)
            {
                VideoSourcesViewModel.RestoreSourceKind(provider);
            }
        }
예제 #3
0
 public RememberByName(Settings Settings,
                       VideoSourcesViewModel VideoSourcesViewModel,
                       VideoWritersViewModel VideoWritersViewModel,
                       AudioSource AudioSource,
                       ScreenShotModel ScreenShotModel,
                       IEnumerable <IVideoSourceProvider> VideoSourceProviders,
                       WebcamModel WebcamModel)
 {
     _settings = Settings;
     _videoSourcesViewModel = VideoSourcesViewModel;
     _videoWritersViewModel = VideoWritersViewModel;
     _audioSource           = AudioSource;
     _screenShotModel       = ScreenShotModel;
     _videoSourceProviders  = VideoSourceProviders;
     _webcamModel           = WebcamModel;
 }
예제 #4
0
 public RememberByName(Settings.Settings settings,
                       VideoSourcesViewModel videoSourcesViewModel,
                       VideoWritersViewModel videoWritersViewModel,
                       AudioSource audioSource,
                       IWebCamProvider webCamProvider,
                       ScreenShotModel screenShotModel,
                       IEnumerable <IVideoSourceProvider> videoSourceProviders)
 {
     _settings = settings;
     _videoSourcesViewModel = videoSourcesViewModel;
     _videoWritersViewModel = videoWritersViewModel;
     _audioSource           = audioSource;
     _webCamProvider        = webCamProvider;
     _screenShotModel       = screenShotModel;
     _videoSourceProviders  = videoSourceProviders;
 }
예제 #5
0
 public RememberByName(Settings Settings,
                       VideoSourcesViewModel VideoSourcesViewModel,
                       VideoWritersViewModel VideoWritersViewModel,
                       AudioSource AudioSource,
                       IWebCamProvider WebCamProvider,
                       ScreenShotViewModel ScreenShotViewModel,
                       IEnumerable <IVideoSourceProvider> VideoSourceProviders)
 {
     _settings = Settings;
     _videoSourcesViewModel = VideoSourcesViewModel;
     _videoWritersViewModel = VideoWritersViewModel;
     _audioSource           = AudioSource;
     _webCamProvider        = WebCamProvider;
     _screenShotViewModel   = ScreenShotViewModel;
     _videoSourceProviders  = VideoSourceProviders;
 }
        //private readonly ServiceLocator serviceLocator;

        public RecordStreamViewModel(Settings Settings, ILocalizationProvider Loc,
                                     VideoSourcesViewModel VideoSourcesViewModel,
                                     VideoWritersViewModel VideoWritersViewModel,
                                     AudioSourceViewModel AudioSourceViewModel,
                                     RecordingViewModel RecordingViewModel) : base(Settings, Loc)
        {
            //Init();

            //serviceLocator = new ServiceLocator();
            //RecordCommand = serviceLocator.RecordingViewModel.RecordCommand;
            //PauseCommand = serviceLocator.RecordingViewModel.PauseCommand;

            //serviceLocator.VideoSourcesViewModel.SelectedVideoSourceKind =
            //    serviceLocator.VideoSourcesViewModel.VideoSources.FirstOrDefault(M => M is FullScreenSourceProvider);

            //serviceLocator.VideoWritersViewModel.SelectedVideoWriterKind =
            //    serviceLocator.VideoWritersViewModel.VideoWriterProviders.FirstOrDefault(M =>
            //        M is FFmpegWriterProvider);

            //serviceLocator.VideoWritersViewModel.SelectedVideoWriter =
            //    serviceLocator.VideoWritersViewModel.AvailableVideoWriters.FirstOrDefault(M => M is X264VideoCodec);

            //foreach (var availableSpeaker in serviceLocator.AudioSourceViewModel.AvailableSpeakers)
            //{
            //    Console.WriteLine("Speaker name: " + availableSpeaker.Name);
            //}

            //Console.WriteLine("Speaker : " + serviceLocator.AudioSourceViewModel.AvailableSpeakers[1].Name);
            //serviceLocator.RecordingViewModel.Settings.Audio.RecordSpeaker = true;
            //serviceLocator.AudioSourceViewModel.SelectedSpeaker =
            //    serviceLocator.AudioSourceViewModel.AvailableSpeakers[1];


            videoSourceViewModel   = VideoSourcesViewModel;
            videoWriterViewmoModel = VideoWritersViewModel;
            audioSourceViewModel   = AudioSourceViewModel;
            recordingViewModel     = RecordingViewModel;

            RecordCommand = RecordingViewModel.RecordCommand;
            PauseCommand  = RecordingViewModel.PauseCommand;

            ConfigDefault();
        }
예제 #7
0
        public RecordingViewModel(RecordingModel recordingModel,
                                  Settings settings,
                                  TimerModel timerModel,
                                  VideoSourcesViewModel videoSourcesViewModel)
        {
            _recordingModel = recordingModel;

            RecordCommand = new[]
            {
                settings.Audio
                .ObserveProperty(audioSettings => audioSettings.Enabled),
                videoSourcesViewModel
                .ObserveProperty(sourcesViewModel => sourcesViewModel.SelectedVideoSourceKind)
                .Select(videoSourceProvider => !(videoSourceProvider is NoVideoSourceProvider))
            }
            .CombineLatest(bools => bools[0] || bools[1])
            .ToReactiveCommand()
            .WithSubscribe(recordingModel.OnRecordExecute);

            PauseCommand = new[]
            {
                timerModel
                .ObserveProperty(model => model.Waiting),
                recordingModel
                .ObserveProperty(model => model.RecorderState)
                .Select(recorderState => recorderState != RecorderState.NotRecording)
            }
            .CombineLatest(bools => !bools[0] && bools[1])
            .ToReactiveCommand()
            .WithSubscribe(recordingModel.OnPauseExecute);

            recordingModel.PropertyChanged += (sender, e) =>
            {
                switch (e.PropertyName)
                {
                case "":
                case null:
                case nameof(RecorderState):
                    RaisePropertyChanged(nameof(RecorderState));
                    break;
                }
            };
        }
예제 #8
0
        public ConsoleManager(Settings Settings,
                              RecordingModel RecordingModel,
                              MainModel MainModel,
                              ScreenShotModel ScreenShotModel,
                              VideoSourcesViewModel VideoSourcesViewModel,
                              IEnumerable <IVideoSourceProvider> VideoSourceProviders,
                              IWebCamProvider WebCamProvider, VideoWritersViewModel VideoWritersViewModel)
        {
            _settings              = Settings;
            _recordingModel        = RecordingModel;
            _mainModel             = MainModel;
            _screenShotModel       = ScreenShotModel;
            _videoSourcesViewModel = VideoSourcesViewModel;
            _videoSourceProviders  = VideoSourceProviders;
            _webCamProvider        = WebCamProvider;
            _videoWritersViewModel = VideoWritersViewModel;

            // Hide on Full Screen Screenshot doesn't work on Console
            Settings.UI.HideOnFullScreenShot = false;
        }
예제 #9
0
        public ConsoleManager(Settings settings,
                              RecordingModel recordingModel,
                              MainModel mainModel,
                              ScreenShotModel screenShotModel,
                              VideoSourcesViewModel videoSourcesViewModel,
                              IEnumerable <IVideoSourceProvider> videoSourceProviders,
                              IWebCamProvider webCamProvider,
                              VideoWritersViewModel videoWritersViewModel,
                              IPlatformServices platformServices)
        {
            _settings              = settings;
            _recordingModel        = recordingModel;
            _mainModel             = mainModel;
            _screenShotModel       = screenShotModel;
            _videoSourcesViewModel = videoSourcesViewModel;
            _videoSourceProviders  = videoSourceProviders;
            _webCamProvider        = webCamProvider;
            _videoWritersViewModel = videoWritersViewModel;
            _platformServices      = platformServices;

            // Hide on Full Screen Screenshot doesn't work on Console
            settings.Ui.HideOnFullScreenShot = false;
        }
예제 #10
0
        public ConsoleManager(Settings Settings,
                              RecordingModel RecordingModel,
                              ScreenShotModel ScreenShotModel,
                              VideoSourcesViewModel VideoSourcesViewModel,
                              IEnumerable <IVideoSourceProvider> VideoSourceProviders,
                              VideoWritersViewModel VideoWritersViewModel,
                              IPlatformServices PlatformServices,
                              WebcamModel WebcamModel,
                              IMessageProvider MessageProvider)
        {
            _settings              = Settings;
            _recordingModel        = RecordingModel;
            _screenShotModel       = ScreenShotModel;
            _videoSourcesViewModel = VideoSourcesViewModel;
            _videoSourceProviders  = VideoSourceProviders;
            _videoWritersViewModel = VideoWritersViewModel;
            _platformServices      = PlatformServices;
            _webcamModel           = WebcamModel;
            _messageProvider       = MessageProvider;

            // Hide on Full Screen Screenshot doesn't work on Console
            Settings.UI.HideOnFullScreenShot = false;
        }