/// <summary> /// Copy constructor. /// </summary> /// <param name="frame">Frame to copy.</param> protected internal GEOBFrame(GEOBFrame frame) : base(frame) { this.mimeType = frame.mimeType.Copy(); this.filename = frame.filename.Copy(); this.description = frame.description.Copy(); this.encapsulatedObject = new byte[frame.encapsulatedObject.Length]; frame.encapsulatedObject.CopyTo(this.encapsulatedObject, 0); }
/// <summary> /// Initializes the prototype registry. /// </summary> private static void InitializePrototypeRegistry() { ID3v2Frame commPrototype = new COMMFrame(); ID3v2Frame geobPrototype = new GEOBFrame(); ID3v2Frame privPrototype = new PRIVFrame(); ID3v2Frame pcntPrototype = new PCNTFrame(); ID3v2Frame textPrototype = new TextInformationFrame(); ID3v2Frame tconPrototype = new TCONFrame(); ID3v2Frame trckPrototype = new TRCKFrame(); ID3v2Frame txxxPrototype = new TXXXFrame(); ID3v2Frame ufidPrototype = new UFIDFrame(); ID3v2Frame urlPrototype = new URLLinkFrame(); ID3v2Frame wxxxPrototype = new WXXXFrame(); ID3v2Frame unimplementedPrototype = new UnimplementedFrame(); prototypeRegistry.Add(FrameType.UniqueFileIdentifier, ufidPrototype); prototypeRegistry.Add(FrameType.ContentGroupDescription, textPrototype); prototypeRegistry.Add(FrameType.Title, textPrototype); prototypeRegistry.Add(FrameType.Subtitle, textPrototype); prototypeRegistry.Add(FrameType.AlbumTitle, textPrototype); prototypeRegistry.Add(FrameType.OriginalAlbumTitle, textPrototype); prototypeRegistry.Add(FrameType.TrackNumber, trckPrototype); prototypeRegistry.Add(FrameType.PartOfASet, textPrototype); prototypeRegistry.Add(FrameType.SetSubtitle, textPrototype); prototypeRegistry.Add(FrameType.InternationalStandardRecordingCode, textPrototype); prototypeRegistry.Add(FrameType.LeadArtist, textPrototype); prototypeRegistry.Add(FrameType.Band, textPrototype); prototypeRegistry.Add(FrameType.Conductor, textPrototype); prototypeRegistry.Add(FrameType.ModifiedBy, textPrototype); prototypeRegistry.Add(FrameType.OriginalArtist, textPrototype); prototypeRegistry.Add(FrameType.Lyricist, textPrototype); prototypeRegistry.Add(FrameType.OriginalLyricist, textPrototype); prototypeRegistry.Add(FrameType.Composer, textPrototype); prototypeRegistry.Add(FrameType.MusicianCreditsList, textPrototype); prototypeRegistry.Add(FrameType.InvolvedPeopleList2, textPrototype); prototypeRegistry.Add(FrameType.EncodedBy, textPrototype); prototypeRegistry.Add(FrameType.BeatsPerMinute, textPrototype); prototypeRegistry.Add(FrameType.Length, textPrototype); prototypeRegistry.Add(FrameType.InitialKey, textPrototype); prototypeRegistry.Add(FrameType.Language, textPrototype); prototypeRegistry.Add(FrameType.ContentType, tconPrototype); prototypeRegistry.Add(FrameType.FileType, textPrototype); prototypeRegistry.Add(FrameType.MediaType, textPrototype); prototypeRegistry.Add(FrameType.Mood, textPrototype); prototypeRegistry.Add(FrameType.CopyrightMessage, textPrototype); prototypeRegistry.Add(FrameType.ProducedNotice, textPrototype); prototypeRegistry.Add(FrameType.Publisher, textPrototype); prototypeRegistry.Add(FrameType.FileOwner, textPrototype); prototypeRegistry.Add(FrameType.InternetRadioStationName, textPrototype); prototypeRegistry.Add(FrameType.InternetRadioStationOwner, textPrototype); prototypeRegistry.Add(FrameType.OriginalFilename, textPrototype); prototypeRegistry.Add(FrameType.PlaylistDelay, textPrototype); prototypeRegistry.Add(FrameType.EncodingTime, textPrototype); prototypeRegistry.Add(FrameType.OriginalReleaseTime, textPrototype); prototypeRegistry.Add(FrameType.RecordingTime, textPrototype); prototypeRegistry.Add(FrameType.ReleaseTime, textPrototype); prototypeRegistry.Add(FrameType.TaggingTime, textPrototype); prototypeRegistry.Add(FrameType.SoftwareHardwareAndSettingsUsedForEncoding, textPrototype); prototypeRegistry.Add(FrameType.AlbumSortOrder, textPrototype); prototypeRegistry.Add(FrameType.PerformerSortOrder, textPrototype); prototypeRegistry.Add(FrameType.TitleSortOrder, textPrototype); prototypeRegistry.Add(FrameType.UserDefinedText, txxxPrototype); prototypeRegistry.Add(FrameType.CommercialInformation, urlPrototype); prototypeRegistry.Add(FrameType.CopyrightLegalInformation, urlPrototype); prototypeRegistry.Add(FrameType.OfficialAudioFileWebpage, urlPrototype); prototypeRegistry.Add(FrameType.OfficialArtistWebpage, urlPrototype); prototypeRegistry.Add(FrameType.OfficialAudioSourceWebpage, urlPrototype); prototypeRegistry.Add(FrameType.OfficialInternetRadioStationHomepage, urlPrototype); prototypeRegistry.Add(FrameType.Payment, urlPrototype); prototypeRegistry.Add(FrameType.PublishersOfficialWebpage, urlPrototype); prototypeRegistry.Add(FrameType.UserDefinedUrlLink, wxxxPrototype); prototypeRegistry.Add(FrameType.MusicCDIdentifier, unimplementedPrototype); prototypeRegistry.Add(FrameType.EventTimingCodes, unimplementedPrototype); prototypeRegistry.Add(FrameType.MpegLocationLookupTable, unimplementedPrototype); prototypeRegistry.Add(FrameType.SynchronizedTempoCodes, unimplementedPrototype); prototypeRegistry.Add(FrameType.UnsynchronizedLyrics, unimplementedPrototype); prototypeRegistry.Add(FrameType.SynchronizedLyrics, unimplementedPrototype); prototypeRegistry.Add(FrameType.Comments, commPrototype); prototypeRegistry.Add(FrameType.RelativeVolumeAdjustment2, unimplementedPrototype); prototypeRegistry.Add(FrameType.Equalization2, unimplementedPrototype); prototypeRegistry.Add(FrameType.Reverb, unimplementedPrototype); prototypeRegistry.Add(FrameType.AttachedPicture, unimplementedPrototype); prototypeRegistry.Add(FrameType.GeneralEncapsulatedObject, geobPrototype); prototypeRegistry.Add(FrameType.PlayCounter, pcntPrototype); prototypeRegistry.Add(FrameType.Popularimeter, unimplementedPrototype); prototypeRegistry.Add(FrameType.RecommendedBufferSize, unimplementedPrototype); prototypeRegistry.Add(FrameType.AudioEncryption, unimplementedPrototype); prototypeRegistry.Add(FrameType.LinkedInformation, unimplementedPrototype); prototypeRegistry.Add(FrameType.PositionSynchronization, unimplementedPrototype); prototypeRegistry.Add(FrameType.TermsOfUse, unimplementedPrototype); prototypeRegistry.Add(FrameType.Ownership, unimplementedPrototype); prototypeRegistry.Add(FrameType.Commercial, unimplementedPrototype); prototypeRegistry.Add(FrameType.EncryptionMethodRegistraion, unimplementedPrototype); prototypeRegistry.Add(FrameType.GroupIdentificationRegistration, unimplementedPrototype); prototypeRegistry.Add(FrameType.Private, privPrototype); prototypeRegistry.Add(FrameType.Signature, unimplementedPrototype); prototypeRegistry.Add(FrameType.Seek, unimplementedPrototype); prototypeRegistry.Add(FrameType.AudioSeekPointIndex, unimplementedPrototype); prototypeRegistry.Add(FrameType.Equalization, unimplementedPrototype); prototypeRegistry.Add(FrameType.InvolvedPeopleList, unimplementedPrototype); prototypeRegistry.Add(FrameType.RelativeVolumeAdjustment, unimplementedPrototype); prototypeRegistry.Add(FrameType.Date, textPrototype); prototypeRegistry.Add(FrameType.Time, textPrototype); prototypeRegistry.Add(FrameType.OriginalReleaseYear, textPrototype); prototypeRegistry.Add(FrameType.RecordingDates, textPrototype); prototypeRegistry.Add(FrameType.Size, textPrototype); prototypeRegistry.Add(FrameType.Year, textPrototype); prototypeRegistry.Add(FrameType.EncryptedMetaFrame, unimplementedPrototype); prototypeRegistry.Add(FrameType.Unknown, unimplementedPrototype); }