protected override void DoDispose() { _disconnect(); _casparDevice.ConnectionStatusChanged -= _casparDevice_ConnectionStatusChanged; _casparDevice.UpdatedChannels -= _casparDevice_UpdatedChannels; _casparDevice.UpdatedRecorders -= _casparDevice_UpdatedRecorders; _casparDevice.Dispose(); MediaDirectory.Dispose(); AnimationDirectory.Dispose(); }
private PersistentMedia _getMediaFromDir(Guid mediaGuid, MediaDirectory dir) { if (dir != null) { var newMedia = dir.FindMediaByMediaGuid(mediaGuid); if (newMedia is PersistentMedia) { return((PersistentMedia)newMedia); } } return(null); }
private void _ingestSelectionToDir(MediaDirectory directory) { MediaDirectory currentDir = _mediaDirectory; if (currentDir is IngestDirectory) { List<ConvertOperation> ingestList = new List<ConvertOperation>(); foreach (Media sourceMedia in _getSelections()) { if (sourceMedia is IngestMedia && ((IngestDirectory)sourceMedia.Directory).AccessType == TDirectoryAccessType.Direct && !sourceMedia.Verified) ThreadPool.QueueUserWorkItem(o => sourceMedia.Verify()); Media destMedia = null; if (directory is ServerDirectory) destMedia = (directory as ServerDirectory).GetServerMedia(sourceMedia, false); if (directory is ArchiveDirectory) destMedia = (directory as ArchiveDirectory).GetArchiveMedia(sourceMedia, false); if (destMedia != null) { ingestList.Add(new ConvertOperation() { SourceMedia = sourceMedia, DestMedia = destMedia, OutputFormat = _mediaManager.Engine.VideoFormat, AudioVolume = (sourceMedia.Directory is IngestDirectory)? ((IngestDirectory)sourceMedia.Directory).AudioVolume : 0, SourceFieldOrderEnforceConversion = (sourceMedia.Directory is IngestDirectory) ? ((IngestDirectory)sourceMedia.Directory).SourceFieldOrder : TFieldOrder.Unknown, AspectConversion = (sourceMedia.Directory is IngestDirectory) ? ((IngestDirectory)sourceMedia.Directory).AspectConversion : TAspectConversion.NoConversion, }); } } if (ingestList.Count != 0) { using (IngestEditViewmodel ievm = new IngestEditViewmodel(ingestList)) { IngestEditorView iewnd = new IngestEditorView() { DataContext = ievm, Owner = App.Current.MainWindow, ShowInTaskbar = false }; if (iewnd.ShowDialog() == true) { foreach (ConvertOperation operation in ingestList) FileManager.Queue(operation); } else foreach (ConvertOperation operation in ingestList) operation.DestMedia.Remove(); } } } }
public MediaSearchViewmodel(EngineViewmodel engineVM, TMediaType mediaType, bool closeAfterAdd, TVideoFormat? videoFormat) { _manager = engineVM.Engine.MediaManager; _previewViewmodel = engineVM.PreviewViewmodel; if (_previewViewmodel != null) _previewViewmodel.PropertyChanged += OnPreviewPropertyChanged; _mediaType = mediaType; if (mediaType == TMediaType.AnimationFlash) _searchDirectory = _manager.AnimationDirectoryPGM; else _searchDirectory = _manager.MediaDirectoryPGM; _searchDirectory.MediaAdded += new EventHandler<MediaEventArgs>(_searchDirectory_MediaAdded); _searchDirectory.MediaRemoved += new EventHandler<MediaEventArgs>(_searchDirectory_MediaRemoved); _searchDirectory.MediaVerified += new EventHandler<MediaEventArgs>(_searchDirectory_MediaVerified); _videoFormat = videoFormat; _closeAfterAdd = closeAfterAdd; _mediaCategory = MediaCategories.FirstOrDefault(); NewEventStartType = TStartType.After; if (!closeAfterAdd) OkButtonText = Properties.Resources._button_Add; _createCommands(); _items = new ObservableCollection<MediaViewViewmodel>(_searchDirectory.Files .Where(m=> m.MediaType == mediaType && (videoFormat == null || m.VideoFormat == videoFormat)) .Select(m => new MediaViewViewmodel(m))); _itemsView = CollectionViewSource.GetDefaultView(_items); _itemsView.SortDescriptions.Add(new SortDescription("MediaName", ListSortDirection.Ascending)); _itemsView.Filter += _itemsFilter; _window = new MediaSearchView(); _window.Owner = App.Current.MainWindow; _window.DataContext = this; _window.Closed += _windowClosed; _window.Show(); //_window.Topmost = true; }