public AdvancedSettingsViewModel(AdvancedSettingsModel model, TrackableViewModel parent) : base(parent) { _model = model; videoVeiwModel = ((StreamViewModel)parent).VideoViewModel; var encoders = EncoderHelper.GetVideoEncoders(); VideoEncoders.AddRange(encoders); var encoder = encoders.FirstOrDefault(e => e.Id == _model.EncoderId) ?? encoders.FirstOrDefault(); this.VideoEncoder = encoder; AdjustResolutionCommand = new DelegateCommand(AdjustVideoResolution); }
//public EncoderItem VideoEncoder { get; set; } public void Init(IEnumerable <EncoderItem> encoders = null) { if (encoders == null) { encoders = EncoderHelper.GetVideoEncoders(); } var encoder = encoders.FirstOrDefault(e => e.Id == EncoderId) ?? encoders.FirstOrDefault(); if (encoder == null) { // Что то пошло не так... // throw new Exception... } if (encoder.Id != EncoderId) { this.EncoderId = encoder.Id; } }
public bool Init() { logger.Debug("Init()"); var winVersion = Environment.OSVersion.Version; Version minOsVersion = new Version(MinOSVersion); if (winVersion < minOsVersion) { //... logger.Warn($"OS version {winVersion} currently not supported!"); //throw new NotSupportedException($"This version of the operating system currently is not supported."); } var appVersion = new Version(AppVersion); var configVersion = new Version(ConfigVersion); logger.Info("Application Version: " + appVersion); logger.Info("Configuration Version: " + configVersion); if (appVersion != configVersion) { if (appVersion.Major != configVersion.Major) { logger.Warn("AppVersion is not the same as ConfigVersion: " + AppVersion + " != " + ConfigVersion); //Проверяем совместимость версий... } //... } if (StreamList.Count == 0) { logger.Warn("StreamList.Count == 0"); StreamList.Add(new MediaStreamModel() { Name = $"{Environment.MachineName} (Stream 1)" }); } if (MaxStreamCount < 1) { MaxStreamCount = 4; } if (StreamList.Count > MaxStreamCount) { logger.Warn("MaxStreamCountLimit: " + StreamList.Count + " > " + MaxStreamCount); StreamList.RemoveAt(MaxStreamCount - 1); } var videoEncoders = EncoderHelper.GetVideoEncoders(); if (videoEncoders.Count == 0) { logger.Warn("videoEncoders.Count == 0"); //... } var audioSources = AudioHelper.GetAudioSources(); if (audioSources.Count == 0) { logger.Warn("audioSources.Count == 0"); //... } var videoSources = ScreenHelper.GetVideoSources(); if (videoSources.Count == 0) { logger.Warn("videoSources.Count == 0"); //... } foreach (var stream in StreamList) { stream.Init(videoEncoders, videoSources, audioSources); } return(true); }