public void RenameFileToMask(string mask) { var sourceFile = this.MediaFile.File; var directory = sourceFile.Directory; mask = mask.MultipleReplace(new Dictionary <string, string> { { "{filename}", sourceFile.Name }, { "{extension}", sourceFile.Extension.Substring(1) }, { "{title}", this.Title }, { "{video:name}", this.Video0Name }, }); var targetFile = directory.File(mask); sourceFile.MoveTo(targetFile.FullName); this.MediaFile = MediaFile.FromFile(targetFile); }
public void ConvertToMkv() { var sourceFile = this.MediaFile.File; var targetFile = sourceFile.WithNewExtension("mkv"); Action action = () => { try { this._IsActionPending = true; MkvMerge.ConvertToMkv(sourceFile, targetFile, f => this.Progress = f); this.MediaFile = MediaFile.FromFile(targetFile); this.Progress = null; } finally { this._IsActionPending = true; } }; action.BeginInvoke(action.EndInvoke, null); }
public void CommitChanges() { if (!this.NeedsCommit) { return; } var file = this.MediaFile.File; if (!IsWriteableMediaType(file)) { throw new NotSupportedException("Can not write this media type."); } try { var data = this.commitData; if (data.ContainsKey(nameof(this.Title))) { MkvPropEdit.SetTitle(file, (string)data[(nameof(this.Title))]); } if (data.ContainsKey(nameof(this.Video0Name))) { MkvPropEdit.SetVideoName(file, (string)data[(nameof(this.Video0Name))]); } if (data.ContainsKey(nameof(this.Video0StereoscopicMode))) { MkvPropEdit.SetVideoStereoscopicMode(file, (int)data[(nameof(this.Video0StereoscopicMode))]); } if (data.ContainsKey(nameof(this.Audio0Language)) && (LanguageType)data[nameof(this.Audio0Language)] != LanguageType.Other) { MkvPropEdit.SetAudioLanguage(file, _ToCulture((LanguageType)data[nameof(this.Audio0Language)])); } if (data.ContainsKey(nameof(this.Audio1Language)) && (LanguageType)data[nameof(this.Audio1Language)] != LanguageType.Other) { MkvPropEdit.SetAudioLanguage(file, _ToCulture((LanguageType)data[nameof(this.Audio1Language)]), 1); } if (data.ContainsKey(nameof(this.Audio0IsDefault)) && data[nameof(this.Audio0IsDefault)] != null) { MkvPropEdit.SetAudioDefault(file, 0, (bool)data[nameof(this.Audio0IsDefault)]); } if (data.ContainsKey(nameof(this.Audio1IsDefault)) && data[nameof(this.Audio1IsDefault)] != null) { MkvPropEdit.SetAudioDefault(file, 1, (bool)data[nameof(this.Audio1IsDefault)]); } data.Clear(); } catch (Exception e) { #if DEBUG if (!Debugger.IsAttached) { Debugger.Launch(); } Debugger.Break(); #endif } this.MediaFile = MediaFile.FromFile(file); }