public void Initialize(ArchiveDirectory archiveDirectory) { Debug.WriteLine(this, "Begin initializing"); Logger.Debug("Begin initializing"); ArchiveDirectory = archiveDirectory; MediaDirectoryPRI = ((CasparServerChannel)_engine.PlayoutChannelPRI)?.Owner.MediaDirectory; MediaDirectorySEC = ((CasparServerChannel)_engine.PlayoutChannelSEC)?.Owner.MediaDirectory; AnimationDirectoryPRI = ((CasparServerChannel)_engine.PlayoutChannelPRI)?.Owner.AnimationDirectory; AnimationDirectorySEC = ((CasparServerChannel)_engine.PlayoutChannelSEC)?.Owner.AnimationDirectory; if (_engine.Preview != null) { MediaDirectoryPRV = ((CasparServerChannel)_engine.Preview.Channel)?.Owner.MediaDirectory; AnimationDirectoryPRV = ((CasparServerChannel)_engine.Preview.Channel)?.Owner.AnimationDirectory; } ((WatcherDirectory)MediaDirectoryPRI)?.Initialize(); ((WatcherDirectory)MediaDirectorySEC)?.Initialize(); ((WatcherDirectory)MediaDirectoryPRV)?.Initialize(); ((WatcherDirectory)AnimationDirectoryPRI)?.Initialize(); ((WatcherDirectory)AnimationDirectorySEC)?.Initialize(); ((WatcherDirectory)AnimationDirectoryPRV)?.Initialize(); if (MediaDirectoryPRI is ServerDirectory sdir) { sdir.MediaPropertyChanged += _serverMediaPropertyChanged; sdir.MediaSaved += _serverDirectoryMediaSaved; sdir.MediaVerified += _mediaPRIVerified; sdir.MediaRemoved += _mediaPRIRemoved; } sdir = MediaDirectorySEC as ServerDirectory; if (MediaDirectoryPRI != MediaDirectorySEC && sdir != null) { sdir.MediaPropertyChanged += _serverMediaPropertyChanged; sdir.MediaSaved += _serverDirectoryMediaSaved; } if (AnimationDirectoryPRI is AnimationDirectory adir) { adir.MediaSaved += _animationDirectoryMediaSaved; adir.PropertyChanged += _animationDirectoryPropertyChanged; adir.MediaAdded += _animationDirectoryMediaAdded; adir.MediaRemoved += _animationDirectoryMediaRemoved; adir.MediaPropertyChanged += _animationDirectoryMediaPropertyChanged; } adir = AnimationDirectorySEC as AnimationDirectory; if (adir != null) { adir.PropertyChanged += _animationDirectoryPropertyChanged; } InitialMediaSynchronization(); Debug.WriteLine(this, "End initializing"); Logger.Debug("End initializing"); }
internal static ArchiveDirectory LoadArchiveDirectory(UInt64 idArchive) { if (Connect()) { string query = "SELECT Folder FROM archive WHERE idArchive=@idArchive;"; MySqlCommand cmd = new MySqlCommand(query, connection); cmd.Parameters.AddWithValue("@idArchive", idArchive); string folder = null; lock (connection) { folder = (string)cmd.ExecuteScalar(); } if (!string.IsNullOrEmpty(folder)) { ArchiveDirectory directory = new ArchiveDirectory() { IdArchive = idArchive, Folder = folder, }; directory.Initialize(); return directory; } } return null; }
private static ArchiveMedia _readArchiveMedia(MySqlDataReader dataReader, ArchiveDirectory dir) { byte typVideo = dataReader.IsDBNull(dataReader.GetOrdinal("typVideo")) ? (byte)0 : dataReader.GetByte("typVideo"); ArchiveMedia media = new ArchiveMedia() { idPersistentMedia = dataReader.GetUInt64("idArchiveMedia"), Directory = dir, }; _mediaReadFields(dataReader, media); ThreadPool.QueueUserWorkItem(o => media.Verify()); return media; }