Exemple #1
0
 public void ApplyValuesFrom(MusicMetadata sourceMetadata)
 {
     Artists     = sourceMetadata.Artists;
     Title       = sourceMetadata.Title;
     Rating      = sourceMetadata.Rating;
     Album       = sourceMetadata.Album;
     TrackNumber = sourceMetadata.TrackNumber;
     Year        = sourceMetadata.Year;
     Genre       = sourceMetadata.Genre;
     AlbumArtist = sourceMetadata.AlbumArtist;
     Publisher   = sourceMetadata.Publisher;
     Subtitle    = sourceMetadata.Subtitle;
     Composers   = sourceMetadata.Composers;
     Conductors  = sourceMetadata.Conductors;
 }
        public async Task ImplicitLoadMetadata()
        {
            var metadata = new MusicMetadata(TimeSpan.Zero, 0);
            var musicFile = new MusicFile(async fileNme => 
            {
                await Task.Yield();
                return metadata;
            }, "testfile.mp3");

            Assert.AreEqual("testfile.mp3", musicFile.FileName);
            Assert.IsFalse(musicFile.SharedMusicFiles.Any());
            Assert.IsFalse(musicFile.IsMetadataLoaded);

            Assert.IsNull(musicFile.Metadata);
            await Task.Delay(5);
            Assert.AreEqual(metadata, musicFile.Metadata);
            Assert.AreEqual(metadata, musicFile.GetMetadataAsync().Result);
            Assert.IsTrue(musicFile.IsMetadataLoaded);
        }
        public void ApplyValuesFromTest()
        {
            var metadata1 = new MusicMetadata(TimeSpan.FromSeconds(1), 64000);
            var metadata2 = new MusicMetadata(TimeSpan.FromSeconds(1), 64000);
            Assert.IsTrue(metadata1.IsSupported);
            Assert.IsTrue(metadata2.IsSupported);
            
            metadata2.Artists = new[] { "Artist1", "Artist2" };
            metadata2.Title = "Title";
            metadata2.Rating = 80;
            metadata2.Album = "Album";
            metadata2.TrackNumber = 3;
            metadata2.Year = 2000;
            metadata2.Genre = new[] { "Genre1", "Genre2" };
            metadata2.AlbumArtist = "AlbumArtist";
            metadata2.Publisher = "Publisher";
            metadata2.Subtitle = "Subtitle";
            metadata2.Composers = new[] { "Composer1", "Composer2" };
            metadata2.Conductors = new[] { "Conductor1", "Conductor2" };

            metadata1.ApplyValuesFrom(metadata2);

            TestHelper.AssertHaveEqualPropertyValues(metadata2, metadata1);
        }
 public MockMusicFile(MusicMetadata metadata, string fileName) : base(x => Task.FromResult(metadata), fileName)
 {
     GetMetadataAsync().GetAwaiter().GetResult();  // Ensure that the metadata is loaded.
 }
 public SampleMusicFile(MusicMetadata metadata, string fileName) : base(x => Task.FromResult(metadata), fileName)
 {
 }
 public void ApplyValuesFrom(MusicMetadata sourceMetadata)
 {
     Artists = sourceMetadata.Artists;
     Title = sourceMetadata.Title;
     Rating = sourceMetadata.Rating;
     Album = sourceMetadata.Album;
     TrackNumber = sourceMetadata.TrackNumber;
     Year = sourceMetadata.Year;
     Genre = sourceMetadata.Genre;
     AlbumArtist = sourceMetadata.AlbumArtist;
     Publisher = sourceMetadata.Publisher;
     Subtitle = sourceMetadata.Subtitle;
     Composers = sourceMetadata.Composers;
     Conductors = sourceMetadata.Conductors;
 }
 private static MusicFile CreateMockMusicFile(string fileName, string title, params string[] artists)
 {
     var metadata = new MusicMetadata(TimeSpan.FromSeconds(3), 128000) { Title = title, Artists = artists };
     return new MockMusicFile(metadata, fileName);
 }
        public void TotalDurationWithMetadataLoading()
        {
            var manager = new PlaylistManager();
            Assert.AreEqual(TimeSpan.Zero, manager.TotalDuration);
            var firstFile = new MockMusicFile(new MusicMetadata(TimeSpan.FromSeconds(10), 0), "");
            manager.AddAndReplaceItems(new[] { new PlaylistItem(firstFile) });
            
            var secondMetadata = new MusicMetadata(TimeSpan.FromSeconds(20), 0);
            var secondFile = new MusicFile(async x =>
            {
                await Task.Delay(10);
                return secondMetadata;
            }, "");

            manager.AddItems(new[] { new PlaylistItem(secondFile) });
            Assert.IsTrue(manager.IsTotalDurationEstimated);
            Assert.AreEqual(TimeSpan.FromSeconds(20), manager.TotalDuration);
            AssertHelper.PropertyChangedEvent(manager, x => x.TotalDuration, () => secondFile.GetMetadataAsync().GetResult());
            Assert.IsFalse(manager.IsTotalDurationEstimated);
            Assert.AreEqual(TimeSpan.FromSeconds(30), manager.TotalDuration);

            var thirdFile = new MockMusicFile(new MusicMetadata(TimeSpan.FromSeconds(30), 0), "");
            AssertHelper.PropertyChangedEvent(manager, x => x.TotalDuration, () => manager.AddItems(new[] { new PlaylistItem(thirdFile) }));
            Assert.AreEqual(TimeSpan.FromSeconds(60), manager.TotalDuration);
        }