Ejemplo n.º 1
0
 public static void Write(string fileName, MediaCover picture)
 {
     if (!File.Exists(fileName))
     {
         File.WriteAllBytes(fileName, picture.Data);
     }
 }
Ejemplo n.º 2
0
 public void AddEntry(string key, MediaCover image)
 => imageCache.Add(key, image);
Ejemplo n.º 3
0
 public void AddEntry(MediaCover image)
 => AddEntry(image.Id, image);
Ejemplo n.º 4
0
        public static void Tag(TrackFile trackFile, bool canWriteWatermark = false)
        {
            var track = trackFile.Track;

            // Get album artwork from cache
            MediaCover coverArt = ImageCache.Instance.GetImage(track.Album);

            // Write track tags
            using var tfile = File.Create(
                      new File.LocalFileAbstraction(trackFile.FullPath), trackFile.FileType.MimeType, ReadStyle.Average);

            tfile.Tag.Title      = track.Title;
            tfile.Tag.Album      = track.Album.Title;
            tfile.Tag.Performers = new[] { track.Artist.Name };

            if (track.Album.Artist != null)
            {
                tfile.Tag.AlbumArtists = new[] { track.Album.Artist.Name };
            }

            tfile.Tag.Genres = new[] { track.Genre };
            tfile.Tag.Track  = (uint)track.TrackNumber;

            if (track.Album.Tracks != null)
            {
                tfile.Tag.TrackCount = (uint)(track.Album.GetNumberOfTracks(track.DiscNumber));
            }

            tfile.Tag.Disc      = (uint)track.DiscNumber;
            tfile.Tag.DiscCount = (uint)track.Album.NumberOfDiscs;
            tfile.Tag.Year      = (uint)track.Year;
            tfile.Tag.Composers = track.Composer;
            tfile.Tag.ISRC      = track.Isrc;
            tfile.Tag.Copyright = track.Copyright;

            if (track.ReplayGain.HasValue)
            {
                tfile.Tag.ReplayGainTrackGain = track.ReplayGain.Value;
            }

            if (track.Peak.HasValue)
            {
                tfile.Tag.ReplayGainTrackPeak = track.Peak.Value;
            }

            if (canWriteWatermark)
            {
                tfile.Tag.Comment = WatermarkText;
            }

            if (coverArt != null)
            {
                IPicture pic = new Picture(new ByteVector(coverArt.Data));
                tfile.Tag.Pictures = new IPicture[]
                {
                    new Picture
                    {
                        Data     = pic.Data.Data,
                        MimeType = pic.MimeType
                    }
                };
            }

            tfile.Save();
        }