public BaseBorderViewModel(StreamViewModel stream, PropertyBorderModel border) { this.Stream = stream; this.borderModel = border; videoViewModel = Stream.VideoViewModel; SetBorderRegion(borderModel.BorderRect); //Color color1 = Color.FromArgb(46, 131, 241); //Color color2 = Color.WhiteSmoke; //var bitmap = CreateStripesBitmap(new System.Drawing.Size(50, 50), color1, color2); //bitmapSource = null; //var hBitmap = bitmap.GetHbitmap(); //try //{ // bitmapSource = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap( // hBitmap, // IntPtr.Zero, System.Windows.Int32Rect.Empty, // BitmapSizeOptions.FromEmptyOptions()); //} //catch (Win32Exception) //{ // bitmapSource = null; //} //finally //{ // NativeMethods.DeleteObject(hBitmap); //} }
public StreamViewModel(MainViewModel mainViewModel, bool addInitialProperties, MediaStreamModel model) { MediaStreamer = model; dialogService = ServiceLocator.GetInstance <IDialogService>(); MainViewModel = mainViewModel; StartCommand = new DelegateCommand(SwitchStreamingState); //EditModeCommand = new RelayCommand(() => MainViewModel.IsEdit = true); //EditModeCommand = new DelegateCommand(() => MainViewModel.IsEdit = true); EditModeCommand = new DelegateCommand(SetEditMode); EditNameCommand = new DelegateCommand(SwitchEditNameState); CopyUrlCommand = new DelegateCommand(CopyUrl); PreferencesCommand = new DelegateCommand <WindowViewModel>(ShowPreferencesDialog); HideBorderCommand = new DelegateCommand(HideBorder); ShowSettingsCommand = new DelegateCommand(ShowSettings); if (addInitialProperties) { VideoViewModel = new PropertyVideoViewModel(this, MediaStreamer.PropertyVideo); PropertyAudio = new PropertyAudioViewModel(this, MediaStreamer.PropertyAudio); PropertyNetwork = new PropertyNetworkViewModel(this, MediaStreamer.PropertyNetwork); Properties.Add(VideoViewModel); Properties.Add(PropertyAudio); Properties.Add(PropertyNetwork); // Properties.Add(PropertyQuality = new PropertyQualityViewModel(this, Model.PropertyQuality)); // Properties.Add(PropertyCursor = new PropertyCursorViewModel(this, Model.PropertyCursor)); //Properties.Add(PropertyBorder = new PropertyBorderViewModel(this, Model.PropertyBorder)); } AdvancedSettingsViewModel = new AdvancedSettingsViewModel(MediaStreamer.AdvancedSettings, this); BorderViewModel = new BorderViewModel(this, MediaStreamer.PropertyBorder); DesignBorderViewModel = new DesignBorderViewModel(this, MediaStreamer.PropertyBorder); VideoViewModel.SetupDisplayRegion(); dispatcher = Dispatcher.CurrentDispatcher; dispatcher.BeginInvoke( DispatcherPriority.Loaded, new Action(() => OnStreamStateChanged(IsStarted))); MediaStreamer.StateChanged += MediaStreamer_StateChanged; MediaStreamer.ErrorOccurred += MediaStreamer_ErrorOccurred; }
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 VideoSettingsViewModel(PropertyVideoViewModel property, TrackableViewModel parent) : base(property, parent) { this.parent.PropertyChanged += (sender, args) => { if (args.PropertyName == nameof(IsChanged)) { RaisePropertyChanged(() => IsChanged); } }; UpdateVideoSourcesCommand = new Prism.Commands.DelegateCommand(UpdateSources); //Displays.AddRange(ScreenHelper.GetDisplayItems()); ScreenCaptures.AddRange(ScreenHelper.SupportedCaptures); var propVideoViewModel = ((PropertyVideoViewModel)this.Property); var streamModel = propVideoViewModel.Parent.MediaStreamer; var videoModel = streamModel.PropertyVideo; var captType = videoModel.CaptType; propVideoViewModel.CaptureType = ScreenCaptures.FirstOrDefault(c => c.CaptType == captType) ?? ScreenCaptures.FirstOrDefault(); Displays.AddRange(ScreenHelper.GetVideoSources()); var deviceId = videoModel.DeviceId; if (string.IsNullOrEmpty(deviceId)) {// если девайс не задан то берем первый попавшийся propVideoViewModel.Display = Displays.FirstOrDefault(); } else {// если девайс есть в конфиге, то используем его даже если его нет в списке // чтобы пользователь поменял его вручную propVideoViewModel.Display = Displays.FirstOrDefault(d => d.DeviceId == deviceId); } // ((PropertyVideoViewModel)this.Property).Display = Displays.FirstOrDefault(d => d.DeviceId == deviceId) ?? Displays.FirstOrDefault(); }