aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Providers
diff options
context:
space:
mode:
authorLukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com>2012-08-19 16:38:47 -0400
committerLukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com>2012-08-19 16:38:47 -0400
commit5b7063e7c612f9447372f52ea337f37c0f0fb11d (patch)
tree0d5a0d04cc4572d1ad63611b76ff81860573d61b /MediaBrowser.Controller/Providers
parenta129c93c42ee02aa7ecdb9227552d18eac034b98 (diff)
parent937d27ae9d6aa571ab9327f138bfba1b84c158db (diff)
Merge
Diffstat (limited to 'MediaBrowser.Controller/Providers')
-rw-r--r--MediaBrowser.Controller/Providers/AudioInfoProvider.cs5
-rw-r--r--MediaBrowser.Controller/Providers/BaseMetadataProvider.cs23
-rw-r--r--MediaBrowser.Controller/Providers/FolderProviderFromXml.cs4
-rw-r--r--MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs9
-rw-r--r--MediaBrowser.Controller/Providers/LocalTrailerProvider.cs11
5 files changed, 39 insertions, 13 deletions
diff --git a/MediaBrowser.Controller/Providers/AudioInfoProvider.cs b/MediaBrowser.Controller/Providers/AudioInfoProvider.cs
index 934f082d54..70adb688f1 100644
--- a/MediaBrowser.Controller/Providers/AudioInfoProvider.cs
+++ b/MediaBrowser.Controller/Providers/AudioInfoProvider.cs
@@ -12,12 +12,12 @@ namespace MediaBrowser.Controller.Providers
[Export(typeof(BaseMetadataProvider))]
public class AudioInfoProvider : BaseMetadataProvider
{
- public override bool Supports(BaseItem item)
+ public override bool Supports(BaseEntity item)
{
return item is Audio;
}
- public async override Task Fetch(BaseItem item, ItemResolveEventArgs args)
+ public async override Task Fetch(BaseEntity item, ItemResolveEventArgs args)
{
Audio audio = item as Audio;
@@ -62,6 +62,7 @@ namespace MediaBrowser.Controller.Providers
{
base.Init();
+ // Do this now so that we don't have to do this on every operation, which would require us to create a lock in order to maintain thread-safety
for (int i = 0; i <= 9; i++)
{
EnsureDirectory(Path.Combine(Kernel.Instance.ApplicationPaths.FFProbeAudioCacheDirectory, i.ToString()));
diff --git a/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs b/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs
index 93d9ef10e4..e40d30372d 100644
--- a/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs
+++ b/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs
@@ -1,10 +1,11 @@
-using System.Threading.Tasks;
+using System;
+using System.Threading.Tasks;
using MediaBrowser.Controller.Events;
using MediaBrowser.Model.Entities;
namespace MediaBrowser.Controller.Providers
{
- public abstract class BaseMetadataProvider
+ public abstract class BaseMetadataProvider : IDisposable
{
/// <summary>
/// If the provider needs any startup routines, add them here
@@ -13,11 +14,23 @@ namespace MediaBrowser.Controller.Providers
{
}
- public virtual bool Supports(BaseItem item)
+ /// <summary>
+ /// Disposes anything created during Init
+ /// </summary>
+ public virtual void Dispose()
+ {
+ }
+
+ public abstract bool Supports(BaseEntity item);
+
+ public virtual bool RequiresInternet
{
- return true;
+ get
+ {
+ return false;
+ }
}
- public abstract Task Fetch(BaseItem item, ItemResolveEventArgs args);
+ public abstract Task Fetch(BaseEntity item, ItemResolveEventArgs args);
}
}
diff --git a/MediaBrowser.Controller/Providers/FolderProviderFromXml.cs b/MediaBrowser.Controller/Providers/FolderProviderFromXml.cs
index 14067dd202..2ef2142375 100644
--- a/MediaBrowser.Controller/Providers/FolderProviderFromXml.cs
+++ b/MediaBrowser.Controller/Providers/FolderProviderFromXml.cs
@@ -9,12 +9,12 @@ namespace MediaBrowser.Controller.Providers
[Export(typeof(BaseMetadataProvider))]
public class FolderProviderFromXml : BaseMetadataProvider
{
- public override bool Supports(BaseItem item)
+ public override bool Supports(BaseEntity item)
{
return item is Folder;
}
- public async override Task Fetch(BaseItem item, ItemResolveEventArgs args)
+ public async override Task Fetch(BaseEntity item, ItemResolveEventArgs args)
{
var metadataFile = args.GetFileByName("folder.xml");
diff --git a/MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs b/MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs
index 2df07251af..5b086f795a 100644
--- a/MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs
+++ b/MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs
@@ -12,13 +12,18 @@ namespace MediaBrowser.Controller.Providers
[Export(typeof(BaseMetadataProvider))]
public class ImageFromMediaLocationProvider : BaseMetadataProvider
{
- public override Task Fetch(BaseItem item, ItemResolveEventArgs args)
+ public override bool Supports(BaseEntity item)
+ {
+ return item is BaseItem;
+ }
+
+ public override Task Fetch(BaseEntity item, ItemResolveEventArgs args)
{
return Task.Run(() =>
{
if (args.IsFolder)
{
- PopulateImages(item, args);
+ PopulateImages(item as BaseItem, args);
}
});
}
diff --git a/MediaBrowser.Controller/Providers/LocalTrailerProvider.cs b/MediaBrowser.Controller/Providers/LocalTrailerProvider.cs
index 027c2f75d2..9d909934d4 100644
--- a/MediaBrowser.Controller/Providers/LocalTrailerProvider.cs
+++ b/MediaBrowser.Controller/Providers/LocalTrailerProvider.cs
@@ -10,8 +10,15 @@ namespace MediaBrowser.Controller.Providers
[Export(typeof(BaseMetadataProvider))]
public class LocalTrailerProvider : BaseMetadataProvider
{
- public async override Task Fetch(BaseItem item, ItemResolveEventArgs args)
+ public override bool Supports(BaseEntity item)
{
+ return item is BaseItem;
+ }
+
+ public async override Task Fetch(BaseEntity item, ItemResolveEventArgs args)
+ {
+ BaseItem baseItem = item as BaseItem;
+
var trailerPath = args.GetFolderByName("trailers");
if (trailerPath.HasValue)
@@ -32,7 +39,7 @@ namespace MediaBrowser.Controller.Providers
}
}
- item.LocalTrailers = localTrailers;
+ baseItem.LocalTrailers = localTrailers;
}
}
}