Example #1
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);
        }
Example #2
0
 /// <summary>
 /// Copy constructor.
 /// </summary>
 /// <param name="frame">Frame to copy.</param>
 protected internal TXXXFrame(TXXXFrame frame)
     : base(frame)
 {
     this.description = frame.description.Copy();
 }