public virtual void readMetadata(MediaProbe mediaProbe, Stream data, MetadataFactory.ReadOptions options, BaseMetadata media, CancellationToken token, int timeoutSeconds) { XMPLib.MetaData.ErrorCallbackDelegate errorCallbackDelegate = new XMPLib.MetaData.ErrorCallbackDelegate(errorCallback); //XMPLib.MetaData xmpMetaDataReader = new XMPLib.MetaData(errorCallbackDelegate, null); XMPLib.MetaData xmpMetaDataReader = new XMPLib.MetaData(null, null); try { FileInfo info = new FileInfo(media.Location); info.Refresh(); media.LastModifiedDate = info.LastWriteTime < sqlMinDate ? sqlMinDate : info.LastWriteTime; media.FileDate = info.CreationTime < sqlMinDate ? sqlMinDate : info.CreationTime; media.MimeType = MediaFormatConvert.fileNameToMimeType(media.Name); if (media.SupportsXMPMetadata == false) { return; } xmpMetaDataReader.open(media.Location, Consts.OpenOptions.XMPFiles_OpenForRead); readXMPMetadata(xmpMetaDataReader, media); } catch (Exception e) { Logger.Log.Error("Cannot read XMP metadata for: " + media.Location, e); media.MetadataReadError = e; } finally { xmpMetaDataReader.Dispose(); xmpMetaDataReader = null; } }
protected BaseMetadata(String location, Stream data) { Tags = new List <Tag>(); MimeType = MediaFormatConvert.fileNameToMimeType(location); Location = location; Data = data; Thumbnail = null; isReadOnly = false; isImported = false; isModified = false; metadataReadError = null; }
public MainWindowViewModel() { WindowTitle = "MediaViewer"; // recieve messages requesting the display of media items /* * GlobalMessenger.Instance.Register<string>("MainWindowViewModel.ViewMediaCommand", new Action<string>((fileName) => * { * ViewMediaCommand.DoExecute(fileName); * })); */ ViewMediaCommand = new Command <String>(new Action <String>((location) => { if (String.IsNullOrEmpty(location)) { return; } String mimeType = MediaFormatConvert.fileNameToMimeType(location); if (mimeType.StartsWith("image")) { CurrentImageLocation = location; } else if (mimeType.StartsWith("video")) { CurrentVideoLocation = location; } else { Logger.Log.Warn("Trying to view media of unknown mime type: " + (string)location + ", mime type: " + mimeType); } })); TagEditorCommand = new Command(() => { //TagEditorView tagEditor = new TagEditorView(); //tagEditor.ShowDialog(); }); ShowLogCommand = new Command(() => { //log4net.Appender.IAppender[] appenders = log4net.LogManager.GetRepository().GetAppenders(); //VisualAppender appender = (VisualAppender)(appenders[0]); LogView logView = new LogView(); //logView.DataContext = appender.LogViewModel; logView.Show(); }); ClearHistoryCommand = new Command(() => { if (MessageBox.Show("Clear all history?", "Warning", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { Settings.Default.Reset(); } }); }