public virtual void TestShouldConsiderTwoEquivalentObjectsEqual() { ID3v2ChapterFrameData frameData1 = new ID3v2ChapterFrameData(false, "ch1", 1, 380, 3, 400); ID3v2TextFrameData subFrameData1 = new ID3v2TextFrameData(false, new EncodedText("Hello there")); frameData1.AddSubframe("TIT2", subFrameData1); ID3v2ChapterFrameData frameData2 = new ID3v2ChapterFrameData(false, "ch1", 1, 380, 3, 400); ID3v2TextFrameData subFrameData2 = new ID3v2TextFrameData(false, new EncodedText("Hello there")); frameData2.AddSubframe("TIT2", subFrameData2); Assert.AreEqual(frameData1, frameData2); }
public virtual void TestShouldConsiderTwoEquivalentObjectsEqual() { string[] children = new string[] { "ch1", "ch2" }; ID3v2ChapterTOCFrameData frameData1 = new ID3v2ChapterTOCFrameData(false, true, false, "toc1", children); ID3v2TextFrameData subFrameData1 = new ID3v2TextFrameData(false, new EncodedText("Hello there")); frameData1.AddSubframe("TIT2", subFrameData1); ID3v2ChapterTOCFrameData frameData2 = new ID3v2ChapterTOCFrameData(false, true, false, "toc1", children); ID3v2TextFrameData subFrameData2 = new ID3v2TextFrameData(false, new EncodedText("Hello there")); frameData2.AddSubframe("TIT2", subFrameData2); Assert.AreEqual(frameData1, frameData2); }
public virtual void TestShouldConvertFrameDataToBytesAndBackToEquivalentObject() { ID3v2TextFrameData frameData = new ID3v2TextFrameData(false, new EncodedText(EncodedText.TEXT_ENCODING_ISO_8859_1, TEST_TEXT)); byte[] bytes = frameData.ToBytes(); byte[] expectedBytes = new byte[] { 0, (byte)('A'), (byte)('B'), (byte)('C'), (byte )('D'), (byte)('E'), (byte)('F'), (byte)('G'), (byte)('H'), (byte)('I'), (byte)( 'J'), (byte)('K'), (byte)('L'), (byte)('M'), (byte)('N'), (byte)('O'), (byte)('P' ), (byte)('Q') }; Assert.IsTrue(Arrays.Equals(expectedBytes, bytes)); ID3v2TextFrameData frameDataCopy = new ID3v2TextFrameData(false, bytes); Assert.AreEqual(frameData, frameDataCopy); }
public virtual void TestShouldConvertFrameDataWithUnicodeToBytesAndBackToEquivalentObject() { ID3v2TextFrameData frameData = new ID3v2TextFrameData(false, new EncodedText(EncodedText.TEXT_ENCODING_UTF_16, TEST_TEXT_UNICODE)); byte[] bytes = frameData.ToBytes(); byte[] expectedBytes = new byte[] { 1, unchecked((byte)unchecked((int)(0xff))), unchecked( (byte)unchecked((int)(0xfe))), unchecked((byte)unchecked((int)(0xb3))), unchecked( (int)(0x03)), unchecked((byte)unchecked((int)(0xb5))), unchecked((int)(0x03)), unchecked( (byte)unchecked((int)(0xb9))), unchecked((int)(0x03)), unchecked((byte)unchecked( (int)(0xac))), unchecked((int)(0x03)) }; Assert.IsTrue(Arrays.Equals(expectedBytes, bytes)); ID3v2TextFrameData frameDataCopy = new ID3v2TextFrameData(false, bytes); Assert.AreEqual(frameData, frameDataCopy); }
public virtual void TestShouldConvertFrameDataToBytesAndBackToEquivalentObject() { ID3v2ChapterFrameData frameData = new ID3v2ChapterFrameData(false, "ch1", 1, 380, 3, 400); ID3v2TextFrameData subFrameData = new ID3v2TextFrameData(false, new EncodedText("Hello there")); frameData.AddSubframe("TIT2", subFrameData); byte[] bytes = frameData.ToBytes(); byte[] expectedBytes = new byte[] { (byte)('c'), (byte)('h'), (byte)('1'), 0, 0, 0, 0, 1, 0, 0, 1, unchecked((byte)unchecked((int)(0x7c))), 0, 0, 0, 3, 0, 0, 1, unchecked((byte)unchecked((int)(0x90))), (byte)('T'), (byte)('I'), (byte)('T'), (byte)('2'), 0, 0, 0, unchecked((byte)unchecked((int)(0xc))), 0, 0, 0, (byte)('H' ), (byte)('e'), (byte)('l'), (byte)('l'), (byte)('o'), (byte)(' '), (byte)('t'), (byte)('h'), (byte)('e'), (byte)('r'), (byte)('e') }; Assert.IsTrue(Arrays.Equals(expectedBytes, bytes)); ID3v2ChapterFrameData frameDataCopy = new ID3v2ChapterFrameData(false, bytes); Assert.AreEqual(frameData, frameDataCopy); }
public virtual void SetYear(string year) { if (year != null && year.Length > 0) { InvalidateDataLength(); ID3v2TextFrameData frameData = new ID3v2TextFrameData(UseFrameUnsynchronisation() , new EncodedText(year)); AddFrame(CreateFrame(ID_YEAR, frameData.ToBytes()), true); } }
public virtual void SetTrack(string track) { if (track != null && track.Length > 0) { InvalidateDataLength(); ID3v2TextFrameData frameData = new ID3v2TextFrameData(UseFrameUnsynchronisation() , new EncodedText(track)); AddFrame(CreateFrame(ID_TRACK, frameData.ToBytes()), true); } }
public virtual void SetAlbumArtist(string albumArtist) { if (albumArtist != null && albumArtist.Length > 0) { InvalidateDataLength(); ID3v2TextFrameData frameData = new ID3v2TextFrameData(UseFrameUnsynchronisation() , new EncodedText(albumArtist)); AddFrame(CreateFrame(ID_ALBUM_ARTIST, frameData.ToBytes()), true); } }
public virtual void SetPartOfSet(string partOfSet) { if (partOfSet != null && partOfSet.Length > 0) { InvalidateDataLength(); ID3v2TextFrameData frameData = new ID3v2TextFrameData(UseFrameUnsynchronisation() , new EncodedText(partOfSet)); AddFrame(CreateFrame(ID_PART_OF_SET, frameData.ToBytes()), true); } }
public virtual void SetOriginalArtist(string originalArtist) { if (originalArtist != null && originalArtist.Length > 0) { InvalidateDataLength(); ID3v2TextFrameData frameData = new ID3v2TextFrameData(UseFrameUnsynchronisation() , new EncodedText(originalArtist)); AddFrame(CreateFrame(ID_ORIGINAL_ARTIST, frameData.ToBytes()), true); } }
public virtual void SetGenre(int genre) { if (genre >= 0) { InvalidateDataLength(); string genreDescription; try { genreDescription = ID3v1Genres.GENRES[genre]; } catch (IndexOutOfRangeException) { genreDescription = string.Empty; } string combinedGenre = "(" + Mp3net.Helpers.Extensions.ToString(genre) + ")" + genreDescription; ID3v2TextFrameData frameData = new ID3v2TextFrameData(UseFrameUnsynchronisation() , new EncodedText(combinedGenre)); AddFrame(CreateFrame(ID_GENRE, frameData.ToBytes()), true); } }
public virtual void SetCopyright(string copyright) { if (copyright != null && copyright.Length > 0) { InvalidateDataLength(); ID3v2TextFrameData frameData = new ID3v2TextFrameData(UseFrameUnsynchronisation() , new EncodedText(copyright)); AddFrame(CreateFrame(ID_COPYRIGHT, frameData.ToBytes()), true); } }
public virtual void SetComposer(string composer) { if (composer != null && composer.Length > 0) { InvalidateDataLength(); ID3v2TextFrameData frameData = new ID3v2TextFrameData(UseFrameUnsynchronisation() , new EncodedText(composer)); AddFrame(CreateFrame(ID_COMPOSER, frameData.ToBytes()), true); } }
public virtual void SetCompilation(bool compilation) { InvalidateDataLength(); ID3v2TextFrameData frameData = new ID3v2TextFrameData(UseFrameUnsynchronisation() , new EncodedText(compilation ? "1" : "0")); AddFrame(CreateFrame(ID_COMPILATION, frameData.ToBytes()), true); }
public virtual void TestShouldConsiderTwoEquivalentObjectsEqual() { ID3v2TextFrameData frameData1 = new ID3v2TextFrameData(false, new EncodedText(EncodedText.TEXT_ENCODING_ISO_8859_1, TEST_TEXT)); ID3v2TextFrameData frameData2 = new ID3v2TextFrameData(false, new EncodedText(EncodedText.TEXT_ENCODING_ISO_8859_1, TEST_TEXT)); Assert.AreEqual(frameData1, frameData2); }
public virtual void SetPublisher(string publisher) { if (publisher != null && publisher.Length > 0) { InvalidateDataLength(); ID3v2TextFrameData frameData = new ID3v2TextFrameData(UseFrameUnsynchronisation() , new EncodedText(publisher)); AddFrame(CreateFrame(ID_PUBLISHER, frameData.ToBytes()), true); } }
public virtual void SetTitle(string title) { if (title != null && title.Length > 0) { InvalidateDataLength(); ID3v2TextFrameData frameData = new ID3v2TextFrameData(UseFrameUnsynchronisation() , new EncodedText(title)); AddFrame(CreateFrame(ID_TITLE, frameData.ToBytes()), true); } }
public virtual void TestShouldExtractChapterTOCAndChapterFramesFromMp3() { byte[] buffer = TestHelper.LoadFile("Resources/v23tagwithchapters.mp3"); ID3v2 id3tag = ID3v2TagFactory.CreateTag(buffer); IList<ID3v2ChapterFrameData> chapters = id3tag.GetChapters(); Assert.AreEqual(3, chapters.Count); ID3v2ChapterFrameData chapter1 = chapters[0]; Assert.AreEqual("ch1", chapter1.GetId()); Assert.AreEqual(0, chapter1.GetStartTime()); Assert.AreEqual(5000, chapter1.GetEndTime()); Assert.AreEqual(-1, chapter1.GetStartOffset()); Assert.AreEqual(-1, chapter1.GetEndOffset()); IList<ID3v2Frame> subFrames1 = chapter1.GetSubframes(); Assert.AreEqual(1, subFrames1.Count); ID3v2Frame subFrame1 = subFrames1[0]; Assert.AreEqual("TIT2", subFrame1.GetId()); ID3v2TextFrameData frameData1 = new ID3v2TextFrameData(false, subFrame1.GetData()); Assert.AreEqual("start", frameData1.GetText().ToString()); ID3v2ChapterFrameData chapter2 = chapters[1]; Assert.AreEqual("ch2", chapter2.GetId()); Assert.AreEqual(5000, chapter2.GetStartTime()); Assert.AreEqual(10000, chapter2.GetEndTime()); Assert.AreEqual(-1, chapter2.GetStartOffset()); Assert.AreEqual(-1, chapter2.GetEndOffset()); IList<ID3v2Frame> subFrames2 = chapter2.GetSubframes(); Assert.AreEqual(1, subFrames2.Count); ID3v2Frame subFrame2 = subFrames2[0]; Assert.AreEqual("TIT2", subFrame2.GetId()); ID3v2TextFrameData frameData2 = new ID3v2TextFrameData(false, subFrame2.GetData()); Assert.AreEqual("5 seconds", frameData2.GetText().ToString()); ID3v2ChapterFrameData chapter3 = chapters[2]; Assert.AreEqual("ch3", chapter3.GetId()); Assert.AreEqual(10000, chapter3.GetStartTime()); Assert.AreEqual(15000, chapter3.GetEndTime()); Assert.AreEqual(-1, chapter3.GetStartOffset()); Assert.AreEqual(-1, chapter3.GetEndOffset()); IList<ID3v2Frame> subFrames3 = chapter3.GetSubframes(); Assert.AreEqual(1, subFrames3.Count); ID3v2Frame subFrame3 = subFrames3[0]; Assert.AreEqual("TIT2", subFrame3.GetId()); ID3v2TextFrameData frameData3 = new ID3v2TextFrameData(false, subFrame3.GetData()); Assert.AreEqual("10 seconds", frameData3.GetText().ToString()); }
private ID3v2TextFrameData ExtractTextFrameData(string id) { ID3v2FrameSet frameSet = frameSets.Get(id); if (frameSet != null) { ID3v2Frame frame = (ID3v2Frame)frameSet.GetFrames()[0]; ID3v2TextFrameData frameData; try { frameData = new ID3v2TextFrameData(UseFrameUnsynchronisation(), frame.GetData()); return frameData; } catch (InvalidDataException) { } } // do nothing return null; }