private void _ingestSelectionToDir(IServerDirectory directory)
        {
            IMediaDirectory currentDir = _selectedDirectory?.Directory;

            if (currentDir is IIngestDirectory)
            {
                List <IConvertOperation> ingestList = new List <IConvertOperation>();
                var selectedMedia = _getSelections();
                ThreadPool.QueueUserWorkItem(o =>
                {
                    selectedMedia.ForEach(m =>
                    {
                        if (!m.IsVerified)
                        {
                            m.Verify();
                        }
                    });
                });
                foreach (IMedia sourceMedia in selectedMedia)
                {
                    string destFileName = FileUtils.GetUniqueFileName(directory.Folder, $"{Path.GetFileNameWithoutExtension(sourceMedia.FileName)}{FileUtils.DefaultFileExtension(sourceMedia.MediaType)}");
                    IPersistentMediaProperties destMediaProperties = new PersistentMediaProxy {
                        FileName      = destFileName,
                        MediaName     = FileUtils.GetFileNameWithoutExtension(sourceMedia.FileName, sourceMedia.MediaType),
                        MediaType     = sourceMedia.MediaType == TMediaType.Unknown ? TMediaType.Movie : sourceMedia.MediaType,
                        Duration      = sourceMedia.Duration,
                        DurationPlay  = sourceMedia.DurationPlay,
                        MediaGuid     = sourceMedia.MediaGuid,
                        MediaCategory = sourceMedia.MediaCategory
                    };
                    ingestList.Add(
                        FileManagerViewmodel.CreateConvertOperation(
                            sourceMedia,
                            destMediaProperties,
                            directory,
                            _mediaManager.VideoFormat,
                            (sourceMedia.Directory is IIngestDirectory) ? ((IIngestDirectory)sourceMedia.Directory).AudioVolume : 0,
                            (sourceMedia.Directory is IIngestDirectory) ? ((IIngestDirectory)sourceMedia.Directory).SourceFieldOrder : TFieldOrder.Unknown,
                            (sourceMedia.Directory is IIngestDirectory) ? ((IIngestDirectory)sourceMedia.Directory).AspectConversion : TAspectConversion.NoConversion,
                            (sourceMedia.Directory is IIngestDirectory) ? ((IIngestDirectory)sourceMedia.Directory).MediaLoudnessCheckAfterIngest : false
                            ));
                }
                if (ingestList.Count != 0)
                {
                    using (IngestEditViewmodel ievm = new IngestEditViewmodel(ingestList, _preview, _mediaManager))
                    {
                        if (ievm.ShowDialog() == true)
                        {
                            foreach (var operationVm in ievm.OperationList)
                            {
                                _mediaManager.FileManager.Queue(operationVm.FileOperation, false);
                            }
                        }
                    }
                }
            }
        }
Esempio n. 2
0
        public void Apply()
        {
            _convertOperation.Trim          = _trim;
            _convertOperation.LoudnessCheck = _loudnessCheck;
            _convertOperation.AudioVolume   = _audioVolume;
            _convertOperation.StartTC       = _startTC;
            _convertOperation.Duration      = _duration;
            _convertOperation.SourceFieldOrderEnforceConversion = _sourceFieldOrderEnforceConversion;
            _convertOperation.AudioChannelMappingConversion     = _audioChannelMappingConversion;
            _convertOperation.AspectConversion = _aspectConversion;
            _convertOperation.SourceFieldOrderEnforceConversion = _sourceFieldOrderEnforceConversion;

            IMediaProperties newMediaProperties;

            if (_convertOperation.DestMediaProperties is IPersistentMediaProperties)
            {
                newMediaProperties = PersistentMediaProxy.FromMedia(_convertOperation.DestMediaProperties as IPersistentMediaProperties);
            }
            else
            {
                newMediaProperties = MediaProxy.FromMedia(_convertOperation.DestMediaProperties);
            }

            newMediaProperties.MediaName = _destMediaName;
            if (newMediaProperties is IPersistentMediaProperties)
            {
                ((IPersistentMediaProperties)newMediaProperties).IdAux         = _idAux;
                ((IPersistentMediaProperties)newMediaProperties).MediaEmphasis = _destMediaEmphasis;
            }
            newMediaProperties.VideoFormat        = _destMediaVideoFormat;
            newMediaProperties.FileName           = _destFileName;
            newMediaProperties.TcStart            = _startTC;
            newMediaProperties.TcPlay             = _startTC;
            newMediaProperties.Duration           = _duration;
            newMediaProperties.DurationPlay       = _duration;
            newMediaProperties.MediaCategory      = _destCategory;
            newMediaProperties.Parental           = _destParental;
            _convertOperation.DestMediaProperties = newMediaProperties;  //required to pass this parameter from client to server application
        }