コード例 #1
0
 protected override void DoDispose()
 {
     _disconnect();
     _casparDevice.ConnectionStatusChanged -= _casparDevice_ConnectionStatusChanged;
     _casparDevice.UpdatedChannels         -= _casparDevice_UpdatedChannels;
     _casparDevice.UpdatedRecorders        -= _casparDevice_UpdatedRecorders;
     _casparDevice.Dispose();
     MediaDirectory.Dispose();
     AnimationDirectory.Dispose();
 }
コード例 #2
0
 private PersistentMedia _getMediaFromDir(Guid mediaGuid, MediaDirectory dir)
 {
     if (dir != null)
     {
         var newMedia = dir.FindMediaByMediaGuid(mediaGuid);
         if (newMedia is PersistentMedia)
         {
             return((PersistentMedia)newMedia);
         }
     }
     return(null);
 }
コード例 #3
0
 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();
             }
         }
     }
 }
コード例 #4
0
        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;
        }