aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Kernel.cs
diff options
context:
space:
mode:
authorLukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com>2012-09-18 15:33:57 -0400
committerLukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com>2012-09-18 15:33:57 -0400
commit8b7effd6ff1694688e93d03a48c5dcddb4efe4f0 (patch)
tree28f2e6af0ded4cefa56bd15a963a213359cd852c /MediaBrowser.Controller/Kernel.cs
parent01a25c48a0c5718c40456c48e311e6c0955f7791 (diff)
Moved discovery of loggers and weather providers to MEF. Also added support for third-party image processors, also discovered through MEF.
Diffstat (limited to 'MediaBrowser.Controller/Kernel.cs')
-rw-r--r--MediaBrowser.Controller/Kernel.cs46
1 files changed, 17 insertions, 29 deletions
diff --git a/MediaBrowser.Controller/Kernel.cs b/MediaBrowser.Controller/Kernel.cs
index 682abb632..4c0dc6965 100644
--- a/MediaBrowser.Controller/Kernel.cs
+++ b/MediaBrowser.Controller/Kernel.cs
@@ -1,5 +1,6 @@
using MediaBrowser.Common.Kernel;
using MediaBrowser.Common.Logging;
+using MediaBrowser.Controller.Drawing;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.IO;
@@ -27,7 +28,6 @@ namespace MediaBrowser.Controller
public static Kernel Instance { get; private set; }
public ItemController ItemController { get; private set; }
- public WeatherClient WeatherClient { get; private set; }
public IEnumerable<User> Users { get; private set; }
public Folder RootFolder { get; private set; }
@@ -48,6 +48,12 @@ namespace MediaBrowser.Controller
}
/// <summary>
+ /// Gets the list of currently registered weather prvoiders
+ /// </summary>
+ [ImportMany(typeof(BaseWeatherProvider))]
+ public IEnumerable<BaseWeatherProvider> WeatherProviders { get; private set; }
+
+ /// <summary>
/// Gets the list of currently registered metadata prvoiders
/// </summary>
[ImportMany(typeof(BaseMetadataProvider))]
@@ -72,6 +78,12 @@ namespace MediaBrowser.Controller
internal IBaseItemResolver[] EntityResolvers { get; private set; }
/// <summary>
+ /// Gets the list of currently registered entity resolvers
+ /// </summary>
+ [ImportMany(typeof(BaseImageProcessor))]
+ internal IEnumerable<BaseImageProcessor> ImageProcessors { get; private set; }
+
+ /// <summary>
/// Creates a kernel based on a Data path, which is akin to our current programdata path
/// </summary>
public Kernel()
@@ -85,13 +97,15 @@ namespace MediaBrowser.Controller
/// </summary>
protected override void InitializeInternal(IProgress<TaskProgress> progress)
{
+ base.InitializeInternal(progress);
+
ItemController = new ItemController();
DirectoryWatchers = new DirectoryWatchers();
ItemController.PreBeginResolvePath += ItemController_PreBeginResolvePath;
ItemController.BeginResolvePath += ItemController_BeginResolvePath;
- base.InitializeInternal(progress);
+ ExtractFFMpeg();
}
/// <summary>
@@ -101,14 +115,11 @@ namespace MediaBrowser.Controller
{
await base.ReloadInternal(progress).ConfigureAwait(false);
- ReloadWeatherClient();
-
- ExtractFFMpeg();
-
ReportProgress(progress, "Loading Users");
ReloadUsers();
ReportProgress(progress, "Loading Media Library");
+
await ReloadRoot(allowInternetProviders: false).ConfigureAwait(false);
}
@@ -121,8 +132,6 @@ namespace MediaBrowser.Controller
DirectoryWatchers.Stop();
- DisposeWeatherClient();
-
ItemController.PreBeginResolvePath -= ItemController_PreBeginResolvePath;
ItemController.BeginResolvePath -= ItemController_BeginResolvePath;
}
@@ -413,26 +422,5 @@ namespace MediaBrowser.Controller
}
}
}
-
- /// <summary>
- /// Disposes the current WeatherClient
- /// </summary>
- private void DisposeWeatherClient()
- {
- if (WeatherClient != null)
- {
- WeatherClient.Dispose();
- }
- }
-
- /// <summary>
- /// Disposes the current WeatherClient and creates a new one
- /// </summary>
- private void ReloadWeatherClient()
- {
- DisposeWeatherClient();
-
- WeatherClient = new WeatherClient();
- }
}
}