Esempio n. 1
0
        private string TranslateGenre(string content)
        {
            if (content == null || content.Length == 0)
            {
                return(null);
            }

            // Written as "Name" ?
            if (content[0] != '(')
            {
                return(content);
            }

            int pos = content.IndexOf(')');

            if (pos == -1)
            {
                return(content);
            }

            // Written as "(id)" ?
            if (pos == content.Length - 1)
            {
                int num = Convert.ToInt32(content.Substring(1, content.Length - 2));
                return(TagGenres.Get(num));
            }

            // Written as "(id)Name" ?
            return(content.Substring(pos + 1));
        }
Esempio n. 2
0
        public bool Read(Id3Tag tag, Stream mp3Stream)
        {
            //Check wether the file contains an Id3v1 tag--------------------------------
            mp3Stream.Seek(-128, SeekOrigin.End);

            byte[] b = new byte[3];
            mp3Stream.Read(b, 0, 3);
            mp3Stream.Seek(0, SeekOrigin.Begin);
            string tagS = Encoding.ASCII.GetString(b);

            if (tagS != "TAG")
            {
                return(false);
            }

            mp3Stream.Seek(-128 + 3, SeekOrigin.End);
            //Parse the tag -)------------------------------------------------
            tag.AddTitle(Read(mp3Stream, 30));
            tag.AddArtist(Read(mp3Stream, 30));
            tag.AddAlbum(Read(mp3Stream, 30));
            //------------------------------------------------
            tag.AddYear(Read(mp3Stream, 4));
            tag.AddComment(Read(mp3Stream, 30));

            //string trackNumber;
            mp3Stream.Seek(-2, SeekOrigin.Current);
            b = new byte[2];
            mp3Stream.Read(b, 0, 2);

            if (b[0] == 0)
            {
                tag.AddTrack(b[1].ToString());
            }

            byte genreByte = (byte)mp3Stream.ReadByte();

            mp3Stream.Seek(0, SeekOrigin.Begin);
            tag.AddGenre(TagGenres.Get(genreByte));

            return(true);
        }