aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Entities/PhotoAlbum.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-04-05 11:01:57 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-04-05 11:01:57 -0400
commit30104bd8de62715d127823e69dc0de9e65d99840 (patch)
tree224778b0ee698cc387e1e28058b5398f99a0da23 /MediaBrowser.Controller/Entities/PhotoAlbum.cs
parent2b7a80cfb5b9212260734c095a5b3439af7d64e2 (diff)
probe live streams after opening
Diffstat (limited to 'MediaBrowser.Controller/Entities/PhotoAlbum.cs')
-rw-r--r--MediaBrowser.Controller/Entities/PhotoAlbum.cs36
1 files changed, 33 insertions, 3 deletions
diff --git a/MediaBrowser.Controller/Entities/PhotoAlbum.cs b/MediaBrowser.Controller/Entities/PhotoAlbum.cs
index 24ebf88153..5b48a70e9c 100644
--- a/MediaBrowser.Controller/Entities/PhotoAlbum.cs
+++ b/MediaBrowser.Controller/Entities/PhotoAlbum.cs
@@ -1,11 +1,15 @@
-using MediaBrowser.Model.Configuration;
+using MediaBrowser.Controller.Providers;
+using MediaBrowser.Model.Configuration;
+using MediaBrowser.Model.Users;
+using System;
using System.Linq;
using System.Runtime.Serialization;
-using MediaBrowser.Model.Users;
+using System.Threading;
+using System.Threading.Tasks;
namespace MediaBrowser.Controller.Entities
{
- public class PhotoAlbum : Folder
+ public class PhotoAlbum : Folder, IMetadataContainer
{
public override bool SupportsLocalMetadata
{
@@ -28,5 +32,31 @@ namespace MediaBrowser.Controller.Entities
{
return config.BlockUnratedItems.Contains(UnratedItem.Other);
}
+
+ public async Task RefreshAllMetadata(MetadataRefreshOptions refreshOptions, IProgress<double> progress, CancellationToken cancellationToken)
+ {
+ var items = GetRecursiveChildren().ToList();
+
+ var totalItems = items.Count;
+ var numComplete = 0;
+
+ // Refresh songs
+ foreach (var item in items)
+ {
+ cancellationToken.ThrowIfCancellationRequested();
+
+ await item.RefreshMetadata(refreshOptions, cancellationToken).ConfigureAwait(false);
+
+ numComplete++;
+ double percent = numComplete;
+ percent /= totalItems;
+ progress.Report(percent * 100);
+ }
+
+ // Refresh current item
+ await RefreshMetadata(refreshOptions, cancellationToken).ConfigureAwait(false);
+
+ progress.Report(100);
+ }
}
}