public override byte[] GetBytes(ID3v2TagVersion tagVersion) { if (Items.Count == 0) { return(new byte[0]); } // Set TextEncoding to Unicode/UTF8 if required if (TextEncoding == EncodingType.ISO88591) { foreach (ILanguageItem languageItem in Items) { byte[] languageCodeData = ID3v2Utils.GetStringBytes(tagVersion, TextEncoding, languageItem.LanguageCode, true); this.RequiresFix(tagVersion, languageItem.LanguageCode, languageCodeData); } } using (MemoryStream frameData = new MemoryStream()) { frameData.WriteByte((byte)TextEncoding); bool isTerminated = true; //(tagVersion == TagVersion.ID3v24); for (int i = 0; i < Items.Count; i++) { ILanguageItem languageItem = Items[i]; if (i == Items.Count - 1) { isTerminated = false; } frameData.Write(ID3v2Utils.GetStringBytes(tagVersion, TextEncoding, languageItem.LanguageCode, isTerminated)); } return(_frameHeader.GetBytes(frameData, tagVersion, GetFrameID(tagVersion))); } }
public byte[] GetAudioData(AudioScramblingMode audioScramblingMode) { if (audioScramblingMode == AudioScramblingMode.Default) { audioScramblingMode = (_isMpegOrAac ? AudioScramblingMode.Unsynchronization : AudioScramblingMode.Scrambling); } switch (audioScramblingMode) { case AudioScramblingMode.Scrambling: return(Scramble(_audioData)); case AudioScramblingMode.Unsynchronization: return(ID3v2Utils.ReadUnsynchronized(_audioData)); default: if (_audioData == null) { return(null); } else { return((byte[])_audioData.Clone()); } } }
public override byte[] GetBytes(ID3v2TagVersion tagVersion) { if (_additionalData == null || _additionalData.Length == 0) { return(new byte[0]); } if (tagVersion == ID3v2TagVersion.ID3v22) { if (_frameIdentifier == null || _frameIdentifier.Length != 3) { return(new byte[0]); } } else { if (_frameIdentifier == null || _frameIdentifier.Length != 4) { return(new byte[0]); } } using (MemoryStream frameData = new MemoryStream()) { frameData.Write(ByteUtils.ISO88591GetBytes(_frameIdentifier)); frameData.Write(ID3v2Utils.GetStringBytes(tagVersion, EncodingType.ISO88591, _url, true)); frameData.Write(_additionalData); return(_frameHeader.GetBytes(frameData, tagVersion, GetFrameID(tagVersion))); } }
public override void Read(TagReadingInfo tagReadingInfo, Stream stream) { Reset(); _frameHeader.Read(tagReadingInfo, ref stream); int bytesLeft = _frameHeader.FrameSizeExcludingAdditions; if (bytesLeft > 0) { OwnerIdentifier = ID3v2Utils.ReadString(EncodingType.ISO88591, stream, ref bytesLeft); if (bytesLeft > 0) { MethodSymbol = stream.Read1(ref bytesLeft); if (bytesLeft > 0) { EncryptionData = stream.Read(bytesLeft); bytesLeft = 0; } } } if (bytesLeft != 0) { stream.Seek(bytesLeft, SeekOrigin.Current); } }
public override void Read(TagReadingInfo tagReadingInfo, Stream stream) { _frameHeader.Read(tagReadingInfo, ref stream); int bytesLeft = _frameHeader.FrameSizeExcludingAdditions; if (bytesLeft > 0) { UserEmail = ID3v2Utils.ReadString(EncodingType.ISO88591, stream, ref bytesLeft); if (bytesLeft > 0) { Rating = stream.Read1(ref bytesLeft); if (bytesLeft > 0) { byte[] playCount = stream.Read(bytesLeft); PlayCount = ByteUtils.ConvertToInt64(playCount); } else { PlayCount = 0; } } else { Rating = 0; PlayCount = 0; } } else { UserEmail = null; Rating = 0; PlayCount = 0; } }
public override byte[] GetBytes(ID3v2TagVersion tagVersion) { // TODO: Test if (string.IsNullOrEmpty(Text)) { return(new byte[0]); } byte[] contentDescriptorData; byte[] textData; do { contentDescriptorData = ID3v2Utils.GetStringBytes(tagVersion, TextEncoding, ContentDescriptor, true); textData = ID3v2Utils.GetStringBytes(tagVersion, TextEncoding, Text, false); } while ( this.RequiresFix(tagVersion, ContentDescriptor, contentDescriptorData) || this.RequiresFix(tagVersion, Text, textData) ); using (MemoryStream frameData = new MemoryStream()) { frameData.WriteByte((byte)TextEncoding); frameData.Write(ByteUtils.ISO88591GetBytes(LanguageCode)); frameData.Write(contentDescriptorData); frameData.Write(textData); return(_frameHeader.GetBytes(frameData, tagVersion, GetFrameID(tagVersion))); } }
public override byte[] GetBytes(ID3v2TagVersion tagVersion) { if (string.IsNullOrEmpty(_value)) { return(new byte[0]); } byte[] descriptionData; byte[] valueData; do { descriptionData = ID3v2Utils.GetStringBytes(tagVersion, TextEncoding, Description, true); valueData = ID3v2Utils.GetStringBytes(tagVersion, TextEncoding, Value, false); } while ( this.RequiresFix(tagVersion, Description, descriptionData) || this.RequiresFix(tagVersion, Value, valueData) ); using (MemoryStream stream = new MemoryStream()) { stream.WriteByte((byte)TextEncoding); stream.Write(descriptionData); stream.Write(valueData); return(_frameHeader.GetBytes(stream, tagVersion, GetFrameID(tagVersion))); } }
public override void Read(TagReadingInfo tagReadingInfo, Stream stream) { _frameHeader.Read(tagReadingInfo, ref stream); int bytesLeft = _frameHeader.FrameSizeExcludingAdditions; if (bytesLeft >= 4) { TextEncoding = (EncodingType)stream.Read1(ref bytesLeft); MimeType = ID3v2Utils.ReadString(EncodingType.ISO88591, stream, ref bytesLeft); if (bytesLeft > 0) { FileName = ID3v2Utils.ReadString(TextEncoding, stream, ref bytesLeft); if (bytesLeft > 0) { Description = ID3v2Utils.ReadString(TextEncoding, stream, ref bytesLeft); if (bytesLeft > 0) { EncapsulatedObject = stream.Read(bytesLeft); bytesLeft = 0; } } } } // Seek to end of frame if (bytesLeft > 0) { stream.Seek(bytesLeft, SeekOrigin.Current); } }
public override byte[] GetBytes(ID3v2TagVersion tagVersion) { if (_encapsulatedObject == null || _encapsulatedObject.Length == 0) { return(new byte[0]); } using (MemoryStream frameData = new MemoryStream()) { byte[] fileNameData; byte[] descriptionData; do { fileNameData = ID3v2Utils.GetStringBytes(tagVersion, TextEncoding, FileName, true); descriptionData = ID3v2Utils.GetStringBytes(tagVersion, TextEncoding, Description, true); } while ( this.RequiresFix(tagVersion, FileName, fileNameData) || this.RequiresFix(tagVersion, Description, descriptionData) ); frameData.WriteByte((byte)TextEncoding); frameData.Write(ID3v2Utils.GetStringBytes(tagVersion, EncodingType.ISO88591, MimeType, true)); frameData.Write(fileNameData); frameData.Write(descriptionData); frameData.Write(_encapsulatedObject); return(_frameHeader.GetBytes(frameData, tagVersion, GetFrameID(tagVersion))); } }
public override byte[] GetBytes(ID3v2TagVersion tagVersion) { if (string.IsNullOrEmpty(Value)) { return(new byte[0]); } if (LanguageCode == null || LanguageCode.Length != 3) { LanguageCode = "eng"; } byte[] descriptionData; byte[] valueData; do { descriptionData = ID3v2Utils.GetStringBytes(tagVersion, TextEncoding, Description, true); valueData = ID3v2Utils.GetStringBytes(tagVersion, TextEncoding, Value, false); } while ( this.RequiresFix(tagVersion, Description, descriptionData) || this.RequiresFix(tagVersion, Value, valueData) ); using (MemoryStream frameData = new MemoryStream()) { frameData.WriteByte((byte)TextEncoding); frameData.Write(ByteUtils.ISO88591GetBytes(LanguageCode)); frameData.Write(descriptionData); frameData.Write(valueData); return(_frameHeader.GetBytes(frameData, tagVersion, GetFrameID(tagVersion))); } }
public override byte[] GetBytes(ID3v2TagVersion tagVersion) { if (_audioData == null || _audioData.Length == 0) { return(new byte[0]); } string frameID = GetFrameID(tagVersion); if (frameID == null) { return(new byte[0]); } using (MemoryStream frameData = new MemoryStream()) { byte[] mimeType = ID3v2Utils.GetStringBytes(tagVersion, EncodingType.ISO88591, MimeType, true); byte[] equivText; do { equivText = ID3v2Utils.GetStringBytes(tagVersion, TextEncoding, EquivalentText, true); } while (this.RequiresFix(tagVersion, EquivalentText, equivText)); frameData.WriteByte((byte)TextEncoding); frameData.Write(mimeType, 0, mimeType.Length); frameData.WriteByte((byte)(_isMpegOrAac ? 0 : 1)); frameData.Write(equivText, 0, equivText.Length); frameData.Write(_audioData, 0, _audioData.Length); return(_frameHeader.GetBytes(frameData, tagVersion, frameID)); } }
public override byte[] GetBytes(ID3v2TagVersion tagVersion) { if (Items.Count == 0) { return(new byte[0]); } // Sets appropriate TextEncoding if ISO-8859-1 is insufficient if (TextEncoding == EncodingType.ISO88591) { foreach (IInvolvedPerson involvedPerson in Items) { if (string.IsNullOrEmpty(involvedPerson.Involvement) && string.IsNullOrEmpty(involvedPerson.Name)) { continue; } byte[] involvementData = ID3v2Utils.GetStringBytes(tagVersion, _textEncoding, involvedPerson.Involvement, true); byte[] nameData = ID3v2Utils.GetStringBytes(tagVersion, _textEncoding, involvedPerson.Name, true); if (this.RequiresFix(tagVersion, involvedPerson.Involvement, involvementData)) { break; } if (this.RequiresFix(tagVersion, involvedPerson.Name, nameData)) { break; } } } using (MemoryStream frameData = new MemoryStream()) { frameData.WriteByte((byte)_textEncoding); bool foundItem = false; foreach (IInvolvedPerson involvedPerson in Items) { if (string.IsNullOrEmpty(involvedPerson.Involvement) && string.IsNullOrEmpty(involvedPerson.Name)) { continue; } frameData.Write(ID3v2Utils.GetStringBytes(tagVersion, _textEncoding, involvedPerson.Involvement, true)); frameData.Write(ID3v2Utils.GetStringBytes(tagVersion, _textEncoding, involvedPerson.Name, true)); foundItem = true; } if (!foundItem) { return(new byte[0]); } return(_frameHeader.GetBytes(frameData, tagVersion, GetFrameID(tagVersion))); } }
public override byte[] GetBytes(ID3v2TagVersion tagVersion) { using (MemoryStream frameData = new MemoryStream()) { frameData.Write(ID3v2Utils.GetStringBytes(tagVersion, EncodingType.ISO88591, _ownerIdentifier, true)); frameData.WriteByte(_groupSymbol); if (_groupDependentData != null) { frameData.Write(_groupDependentData); } return(_frameHeader.GetBytes(frameData, tagVersion, GetFrameID(tagVersion))); } }
public override byte[] GetBytes(ID3v2TagVersion tagVersion) { using (MemoryStream stream = new MemoryStream()) { stream.Write(ID3v2Utils.GetStringBytes(tagVersion, EncodingType.ISO88591, OwnerIdentifier, true)); stream.Write(ByteUtils.Get2Bytes(PreviewStart)); stream.Write(ByteUtils.Get2Bytes(PreviewLength)); if (_encryptionInfo != null) { stream.Write(_encryptionInfo); } return(_frameHeader.GetBytes(stream, tagVersion, GetFrameID(tagVersion))); } }
public override byte[] GetBytes(ID3v2TagVersion tagVersion) { if (_rating == 0 && _playCount == 0) { return(new byte[0]); } using (MemoryStream frameData = new MemoryStream()) { frameData.Write(ID3v2Utils.GetStringBytes(tagVersion, EncodingType.ISO88591, _userEmail, true)); frameData.WriteByte(_rating); frameData.Write(ByteUtils.GetBytesMinimal(_playCount)); return(_frameHeader.GetBytes(frameData, tagVersion, GetFrameID(tagVersion))); } }
public override void Read(TagReadingInfo tagReadingInfo, Stream stream) { _frameHeader.Read(tagReadingInfo, ref stream); int bytesLeft = _frameHeader.FrameSizeExcludingAdditions; if (bytesLeft > 0) { OwnerIdentifier = ID3v2Utils.ReadString(EncodingType.ISO88591, stream, ref bytesLeft); if (bytesLeft > 0) { PrivateData = stream.Read(bytesLeft); } } }
public static bool RequiresFix(this ITextEncoding frame, ID3v2TagVersion tagVersion, string value, byte[] data) { if (frame.TextEncoding != EncodingType.ISO88591) { return(false); } if (value != null && value != ID3v2Utils.ReadString(frame.TextEncoding, data, data.Length)) { frame.TextEncoding = tagVersion == ID3v2TagVersion.ID3v24 ? EncodingType.UTF8 : EncodingType.Unicode; return(true); } return(false); }
public override byte[] GetBytes(ID3v2TagVersion tagVersion) { if (_pictureData == null || _pictureData.Length == 0) { return(new byte[0]); } // iTunes doesn't like Unicode in APIC descriptions - fixed in iTunes 7.1.0.59 //TextEncoding = EncodingType.ISO88591; using (MemoryStream stream = new MemoryStream()) { byte[] descriptionData; do { descriptionData = ID3v2Utils.GetStringBytes(tagVersion, _textEncoding, _description, true); } while ( this.RequiresFix(tagVersion, _description, descriptionData) ); stream.WriteByte((byte)_textEncoding); if (tagVersion == ID3v2TagVersion.ID3v22) { string format = PictureExtension; if (string.IsNullOrEmpty(format) || format.Length < 3) { format = " "; } else if (format.Length > 3) { format = format.Substring(0, 3); } stream.Write(Encoding.ASCII.GetBytes(format)); } else { SetMimeType(); // iTunes needs this set properly stream.Write(ByteUtils.ISO88591GetBytes(_mimeType)); stream.WriteByte(0); // terminator } stream.WriteByte((byte)_pictureType); stream.Write(descriptionData); stream.Write(_pictureData); return(_frameHeader.GetBytes(stream, tagVersion, GetFrameID(tagVersion))); } }
public override void Read(TagReadingInfo tagReadingInfo, Stream stream) { _languageItems.Clear(); _frameHeader.Read(tagReadingInfo, ref stream); int bytesLeft = _frameHeader.FrameSizeExcludingAdditions; if (bytesLeft >= 4) { TextEncoding = (EncodingType)stream.Read1(ref bytesLeft); // This could be implemented many ways // engfraspa etc // eng 0x00 fra 0x00 spa 0x00 etc // English // English 0x00 French 0x00 Spanish 0x00 // TODO: Finish implementation string languageCode = ID3v2Utils.ReadString(TextEncoding, stream, ref bytesLeft); if (languageCode.Length != 3) { if (languageCode.ToLower() == "english" || languageCode.ToLower() == "en") { Items.AddNew().LanguageCode = "eng"; } else { foreach (KeyValuePair <string, string> kvp in LanguageHelper.Languages) { if (kvp.Value.ToLower() == languageCode.ToLower()) { Items.AddNew().LanguageCode = kvp.Key; break; } } } } else { Items.AddNew().LanguageCode = languageCode; } } if (bytesLeft > 0) { stream.Seek(bytesLeft, SeekOrigin.Current); } }
public override void Read(TagReadingInfo tagReadingInfo, Stream stream) { _frameHeader.Read(tagReadingInfo, ref stream); int bytesLeft = _frameHeader.FrameSizeExcludingAdditions; if (bytesLeft > 0) { TextEncoding = (EncodingType)stream.Read1(ref bytesLeft); if (bytesLeft > 0) { MimeType = ID3v2Utils.ReadString(EncodingType.ISO88591, stream, ref bytesLeft); if (bytesLeft > 1) { byte flags = stream.Read1(ref bytesLeft); _isMpegOrAac = ((flags & 0x01) == 0x00); EquivalentText = ID3v2Utils.ReadString(TextEncoding, stream, ref bytesLeft); if (bytesLeft > 0) { _audioData = stream.Read(bytesLeft); bytesLeft = 0; } } else { EquivalentText = null; _audioData = null; } } else { MimeType = null; EquivalentText = null; _audioData = null; } } else { TextEncoding = EncodingType.ISO88591; MimeType = null; EquivalentText = null; _audioData = null; } if (bytesLeft > 0) { stream.Seek(bytesLeft, SeekOrigin.Current); } }
public override void Read(TagReadingInfo tagReadingInfo, Stream stream) { _frameHeader.Read(tagReadingInfo, ref stream); int bytesLeft = _frameHeader.FrameSizeExcludingAdditions; if (bytesLeft > 0) { OwnerIdentifier = ID3v2Utils.ReadString(EncodingType.ISO88591, stream, ref bytesLeft); if (bytesLeft >= 4) { PreviewStart = stream.ReadInt16(ref bytesLeft); PreviewLength = stream.ReadInt16(ref bytesLeft); if (bytesLeft > 0) { EncryptionInfo = stream.Read(bytesLeft); bytesLeft = 0; } else { // Incomplete frame EncryptionInfo = null; } } else { // Incomplete frame PreviewStart = 0; PreviewLength = 0; EncryptionInfo = null; } } else { // Incomplete frame OwnerIdentifier = null; PreviewStart = 0; PreviewLength = 0; EncryptionInfo = null; } // Seek to end of frame if (bytesLeft != 0) { stream.Seek(bytesLeft, SeekOrigin.Current); } }
public override void Read(TagReadingInfo tagReadingInfo, Stream stream) { _frameHeader.Read(tagReadingInfo, ref stream); if (_frameHeader.FrameSizeExcludingAdditions > 0) { TextEncoding = (EncodingType)stream.Read1(); int bytesLeft = _frameHeader.FrameSizeExcludingAdditions - 1; Description = ID3v2Utils.ReadString(TextEncoding, stream, ref bytesLeft); Value = ID3v2Utils.ReadString(TextEncoding, stream, bytesLeft); } else { /*String msg = String.Format("0 length frame '{0}' at position {1}", "TXXX", stream.Position); * Trace.WriteLine(msg);*/ Description = string.Empty; Value = string.Empty; } }
public override void Read(TagReadingInfo tagReadingInfo, Stream stream) { _frameHeader.Read(tagReadingInfo, ref stream); // Some taggers write 0 byte sized frames (which is explicitly forbidden by the spec) if (_frameHeader.FrameSizeExcludingAdditions >= 1) { TextEncoding = (EncodingType)stream.Read1(); Value = ID3v2Utils.ReadString(_textEncoding, stream, _frameHeader.FrameSizeExcludingAdditions - 1); } else { //String msg = String.Format("Under-sized ({0} bytes) text frame at position {1}", m_FrameHeader.FrameSizeExcludingAdditions, stream.Position); //Trace.WriteLine(msg); TextEncoding = EncodingType.ISO88591; Value = ""; } }
public override void Read(TagReadingInfo tagReadingInfo, Stream stream) { _frameHeader.Read(tagReadingInfo, ref stream); int bytesLeft = _frameHeader.FrameSizeExcludingAdditions; int frameIDSize = (tagReadingInfo.TagVersion == ID3v2TagVersion.ID3v22 ? 3 : 4); if (bytesLeft > frameIDSize) { FrameIdentifier = ID3v2Utils.ReadString(EncodingType.ISO88591, stream, frameIDSize); bytesLeft -= frameIDSize; Url = ID3v2Utils.ReadString(EncodingType.ISO88591, stream, ref bytesLeft); AdditionalData = stream.Read(bytesLeft); } else { stream.Seek(bytesLeft, SeekOrigin.Current); } }
public override byte[] GetBytes(ID3v2TagVersion tagVersion) { if (Items.Count == 0) { return(new byte[0]); } if (TextEncoding == EncodingType.ISO88591) { foreach (ISynchronizedTextItem item in Items) { byte[] textData = ID3v2Utils.GetStringBytes(tagVersion, TextEncoding, item.Text, true); if (this.RequiresFix(tagVersion, item.Text, textData)) { break; } } } byte[] contentDescriptorData; do { contentDescriptorData = ID3v2Utils.GetStringBytes(tagVersion, TextEncoding, ContentDescriptor, true); } while (this.RequiresFix(tagVersion, ContentDescriptor, contentDescriptorData)); using (MemoryStream frameData = new MemoryStream()) { frameData.WriteByte((byte)TextEncoding); frameData.Write(ByteUtils.ISO88591GetBytes(LanguageCode)); frameData.WriteByte((byte)TimestampFormat); frameData.WriteByte((byte)ContentType); frameData.Write(contentDescriptorData); foreach (ISynchronizedTextItem item in Items) { frameData.Write(ID3v2Utils.GetStringBytes(tagVersion, TextEncoding, item.Text, true)); frameData.Write(ByteUtils.Get4Bytes(item.Timestamp)); } return(_frameHeader.GetBytes(frameData, tagVersion, GetFrameID(tagVersion))); } }
public override byte[] GetBytes(ID3v2TagVersion tagVersion) { if (string.IsNullOrEmpty(_value)) { return(new byte[0]); } byte[] valueData; do { valueData = ID3v2Utils.GetStringBytes(tagVersion, _textEncoding, _value, false); } while (this.RequiresFix(tagVersion, _value, valueData)); using (MemoryStream frameData = new MemoryStream()) { frameData.WriteByte((byte)_textEncoding); frameData.Write(ByteUtils.ISO88591GetBytes(_languageCode)); frameData.Write(valueData); return(_frameHeader.GetBytes(frameData, tagVersion, GetFrameID(tagVersion))); } }
public void SetAudioData(string mimeType, byte[] audioData, bool isMpegOrAac) { MimeType = mimeType; _isMpegOrAac = isMpegOrAac; if (audioData == null) { _audioData = null; } else { if (_isMpegOrAac) { _audioData = ID3v2Utils.ConvertToUnsynchronized(_audioData); } else { _audioData = Scramble(_audioData); } } RaisePropertyChanged("AudioData"); }
public override byte[] GetBytes(ID3v2TagVersion tagVersion) { if (string.IsNullOrEmpty(Value)) { return(new byte[0]); } byte[] descriptionData; do { descriptionData = ID3v2Utils.GetStringBytes(tagVersion, TextEncoding, Description, true); } while (this.RequiresFix(tagVersion, Description, descriptionData)); using (MemoryStream frameData = new MemoryStream()) { frameData.WriteByte((byte)TextEncoding); frameData.Write(descriptionData); frameData.Write(ByteUtils.ISO88591GetBytes(Value)); return(_frameHeader.GetBytes(frameData, tagVersion, GetFrameID(tagVersion))); } }
public override void Read(TagReadingInfo tagReadingInfo, Stream stream) { _frameHeader.Read(tagReadingInfo, ref stream); if (_frameHeader.FrameSizeExcludingAdditions >= 4) { TextEncoding = (EncodingType)stream.Read1(); LanguageCode = ID3v2Utils.ReadString(EncodingType.ISO88591, stream, 3); int tmpBytesLeft = _frameHeader.FrameSizeExcludingAdditions - 1 /*encoding*/ - 3 /*language code*/; ContentDescriptor = ID3v2Utils.ReadString(TextEncoding, stream, ref tmpBytesLeft); Text = ID3v2Utils.ReadString(_textEncoding, stream, tmpBytesLeft); } else { string msg = string.Format("Under-sized ({0} bytes) unsynchronized text frame at position {1}", _frameHeader.FrameSizeExcludingAdditions, stream.Position); Trace.WriteLine(msg); LanguageCode = "eng"; ContentDescriptor = ""; Text = ""; } }
public override void Read(TagReadingInfo tagReadingInfo, Stream stream) { _frameHeader.Read(tagReadingInfo, ref stream); _involvedPersons.Clear(); int bytesLeft = _frameHeader.FrameSizeExcludingAdditions; if (bytesLeft > 0) { TextEncoding = (EncodingType)stream.Read1(ref bytesLeft); while (bytesLeft > 0) { string involvement = ID3v2Utils.ReadString(TextEncoding, stream, ref bytesLeft); string name = ID3v2Utils.ReadString(TextEncoding, stream, ref bytesLeft); if (!string.IsNullOrEmpty(involvement) || !string.IsNullOrEmpty(name)) { IInvolvedPerson involvedPerson = _involvedPersons.AddNew(); involvedPerson.Involvement = involvement; involvedPerson.Name = name; } } } }