From dea93e5f8da5b15a8f64abdc3bc4cd96bc537128 Mon Sep 17 00:00:00 2001
From: 42Geese <0E5EB1FB2C894978ADAD6308@gmail.com>
Date: Sun, 9 Apr 2023 21:15:13 -0400
Subject: [PATCH] Audio Id3v2 Add Support For EncodedBy
---
.../TaggingFormats/Id3V2Test.cs | 29 +++++++++++++++++++
src/TaglibSharp/Id3v2/FrameTypes.cs | 1 +
src/TaglibSharp/Id3v2/Tag.cs | 14 +++++++++
3 files changed, 44 insertions(+)
diff --git a/src/TaglibSharp.Tests/TaggingFormats/Id3V2Test.cs b/src/TaglibSharp.Tests/TaggingFormats/Id3V2Test.cs
index 8b2ea676..d3394761 100644
--- a/src/TaglibSharp.Tests/TaggingFormats/Id3V2Test.cs
+++ b/src/TaglibSharp.Tests/TaggingFormats/Id3V2Test.cs
@@ -968,6 +968,35 @@ public void TestPublisher ()
}
}
+
+ [Test]
+ public void TestEncodedBy ()
+ {
+ Tag tag = new Tag ();
+ for (byte version = 2; version <= 4; version++) {
+ tag.Version = version;
+
+ TagTestWithSave (ref tag, delegate (Tag t, string m) {
+ Assert.IsTrue (t.IsEmpty, "Initial (IsEmpty): " + m);
+ Assert.IsNull (t.EncodedBy, "Initial (Null): " + m);
+ });
+
+ tag.EncodedBy = val_sing;
+
+ TagTestWithSave (ref tag, delegate (Tag t, string m) {
+ Assert.IsFalse (t.IsEmpty, "Value Set (!IsEmpty): " + m);
+ Assert.AreEqual (val_sing, t.EncodedBy, "Value Set (!Null): " + m);
+ });
+
+ tag.EncodedBy = string.Empty;
+
+ TagTestWithSave (ref tag, delegate (Tag t, string m) {
+ Assert.IsTrue (t.IsEmpty, "Value Cleared (IsEmpty): " + m);
+ Assert.IsNull (t.EncodedBy, "Value Cleared (Null): " + m);
+ });
+ }
+ }
+
[Test]
public void TestISRC ()
{
diff --git a/src/TaglibSharp/Id3v2/FrameTypes.cs b/src/TaglibSharp/Id3v2/FrameTypes.cs
index 2fda85de..36b86c07 100644
--- a/src/TaglibSharp/Id3v2/FrameTypes.cs
+++ b/src/TaglibSharp/Id3v2/FrameTypes.cs
@@ -101,5 +101,6 @@ static class FrameType
public static readonly ReadOnlyByteVector WPUB = "WPUB";
public static readonly ReadOnlyByteVector WXXX = "WXXX";
public static readonly ReadOnlyByteVector ETCO = "ETCO";
+ public static readonly ReadOnlyByteVector TENC = "TENC"; // Encoded By Frame.
}
}
diff --git a/src/TaglibSharp/Id3v2/Tag.cs b/src/TaglibSharp/Id3v2/Tag.cs
index 1c3676ff..d38a9ae5 100644
--- a/src/TaglibSharp/Id3v2/Tag.cs
+++ b/src/TaglibSharp/Id3v2/Tag.cs
@@ -2265,6 +2265,20 @@ public override string Publisher {
set { SetTextFrame (FrameType.TPUB, value); }
}
+ ///
+ /// Gets and sets the TENC (Encoded by) of the song.
+ ///
+ ///
+ /// A object containing the TENC of the song.
+ ///
+ ///
+ /// This property is implemented using the "TENC" field.
+ ///
+ public string EncodedBy {
+ get { return GetTextAsString (FrameType.TENC); }
+ set { SetTextFrame (FrameType.TENC, value); }
+ }
+
///
/// Gets and sets the ISRC (International Standard Recording Code) of the song.
///