public static Subtitles LoadSRTfile(string filename) { if (!File.Exists(filename)) { return null; } Subtitles sub = new Subtitles(); using (StreamReader reader = File.OpenText(filename)) { SubtitleItem elm = GetSubItemFromFile(reader); while (elm != null) { sub.Items.Add(elm); elm = GetSubItemFromFile(reader); } reader.Close(); } sub.Name = "[ext] " + filename; return sub; }
private void CmdDispatcher_SubtitlesGrid(Subtitles sub,string cmd) { switch (cmd) { case "Edit": Save(); Player.Pause(); NavigationService.NavigateForward(Form.SubtitleEditor,new SubtitleEditor_parameters() { subtitles = sub }); break; default: throw new NotImplementedException(); } }
private void PopulateDesignMode() { Subtitles = new Subtitles(); Subtitles.IsThereDictionary = true; Subtitles.Items.Add(new SubtitleItem { Number = 1, TimeStart = 10234, TimeEnd = 11032, Text = "Hello world!", Text2 = "Привет мир!", WordsCollection = new SynchronizedObservableCollection<SubtitleItem.Word>() }); Subtitles.Items.Add(new SubtitleItem { Number =2, TimeStart = 12234, TimeEnd = 13032, Text ="Good news everyone!", Text2 ="У нас хорошие новости!", WordsCollection = new SynchronizedObservableCollection<SubtitleItem.Word>() }); Subtitles.Items[0].WordsCollection.Add(new SubtitleItem.Word { number = 1, word = "Hello", word_of_dictionary = new WordOfDictionary {translation_as_string="Привет" } }); Subtitles.Items[0].WordsCollection.Add(new SubtitleItem.Word { number = 2, word = "world", word_of_dictionary = new WordOfDictionary { translation_as_string = "Мир" } }); Subtitles.Items[0].WordsCollection.Add(new SubtitleItem.Word { number = 1, word ="Hello" }); Subtitles.Items[0].WordsCollection.Add(new SubtitleItem.Word { number = 2, word ="world" }); Subtitles.Items[0].WordsCollection.Add(new SubtitleItem.Word { number = 3, word ="world" }); Subtitles.Dictionary = new Dictionary(); Subtitles.Dictionary.Words = new SynchronizedObservableCollection<WordOfDictionary>(); Subtitles.Dictionary.Words.Add(new WordOfDictionary {word="Hello",translation_as_string="Привет"}); Subtitles.Dictionary.Words.Add(new WordOfDictionary {word="Morning",translation_as_string="Утро",dont_auto_add_to_personal_dictionary_for_learning=true}); Subtitles.Dictionary.Words.Add(new WordOfDictionary {word="Twelve",translation_as_string="Двенадцать",status = WordOfDictionary.WordStatuses.GetByStatus(WordOfDictionary.WordStatuses.enStatus.ManualEditing)}); }
private static void AnalizeTrackEntry(EbmlReader ebmlReader, MatroskaElementDescriptorProvider medp, ResultOfParsingMKV resPars, StringBuilder sb, string GroupName = "", string add = "") { ulong TrackNumber = 0; ulong TrackUID = 0; ulong TrackType = 0; ulong FlagDefault = 0; ulong FlagLacing = 0; string CodecID = ""; string Name = ""; ulong DefaultDuration = 0; string Language = ""; ebmlReader.EnterContainer(); while (ebmlReader.ReadNext()) { var descriptor = medp.GetElementDescriptor(ebmlReader.ElementId); if (descriptor == null) { sb.Append(add + "undefined \r\n"); continue; } string dName = descriptor.Name; sb.Append(add + dName); switch (descriptor.Type) { case ElementType.MasterElement: sb.Append("\r\n"); //ReadContainer(ebmlReader, medp, dicSub, CurrentClusterTimeCode, sb, descriptor.Name, add + " "); break; case ElementType.AsciiString: string strVal = ebmlReader.ReadAscii(); if(dName == "CodecID") CodecID = strVal; if (dName == "Language") Language = strVal; sb.Append(" = " + strVal); break; case ElementType.Binary: break; case ElementType.Date: sb.Append(" = " + ebmlReader.ReadDate()); break; case ElementType.Float: double flVal = ebmlReader.ReadFloat(); sb.Append(" = " + flVal); break; case ElementType.None: sb.Append(" (none)"); break; case ElementType.SignedInteger: sb.Append(" = " + ebmlReader.ReadInt()); break; case ElementType.UnsignedInteger: ulong ulVal = ebmlReader.ReadUInt(); if(dName == "TrackNumber") TrackNumber = ulVal; if(dName == "TrackType") TrackType = ulVal; if(dName == "FlagDefault") FlagDefault = ulVal; if(dName == "FlagLacing ") FlagLacing = ulVal; if(dName == "DefaultDuration") DefaultDuration = ulVal; if (dName == "TrackUID") TrackUID = ulVal; sb.Append(" = " + ulVal); break; case ElementType.Utf8String: string utfStr = ebmlReader.ReadUtf(); if (dName == "Name") Name = utfStr; sb.Append(" = " + utfStr); break; } sb.Append("\r\n"); } ebmlReader.LeaveContainer(); // If it's subtitles track if (TrackType == 17) { Subtitles sub = new Subtitles(); sub.Items = new SynchronizedObservableCollection<SubtitleItem>(); sub.Language = Language.Length == 0 ? "eng" : Language; sub.Type = Name; sub.Format = CodecID; sub.TrackUID = TrackUID; resPars.dicSub.Add(Convert.ToInt16(TrackNumber),sub); } // If it's subtitles track if (TrackType == 2) { AudioTrack aud = new AudioTrack(); aud.Language = Language.Length == 0 ? "eng" : Language; aud.CodecID = CodecID; aud.Number = resPars.AudioTracks.Count + 1; resPars.AudioTracks.Add(aud); } }