aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.ServerApplication
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.ServerApplication')
-rw-r--r--MediaBrowser.ServerApplication/App.xaml.cs50
-rw-r--r--MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj30
-rw-r--r--MediaBrowser.ServerApplication/packages.config5
3 files changed, 74 insertions, 11 deletions
diff --git a/MediaBrowser.ServerApplication/App.xaml.cs b/MediaBrowser.ServerApplication/App.xaml.cs
index 4aa3cdbb4..1b6b6f98e 100644
--- a/MediaBrowser.ServerApplication/App.xaml.cs
+++ b/MediaBrowser.ServerApplication/App.xaml.cs
@@ -11,6 +11,9 @@ using MediaBrowser.Model.Logging;
using MediaBrowser.Model.MediaInfo;
using MediaBrowser.Model.Updates;
using MediaBrowser.Networking.Management;
+using MediaBrowser.Networking.Udp;
+using MediaBrowser.Networking.Web;
+using MediaBrowser.Networking.WebSocket;
using MediaBrowser.Server.Uninstall;
using MediaBrowser.ServerApplication.Implementations;
using Microsoft.Win32;
@@ -195,10 +198,10 @@ namespace MediaBrowser.ServerApplication
/// </summary>
protected async void LoadKernel()
{
- RegisterResources();
-
Kernel = new Kernel(this, Logger);
+ RegisterResources();
+
try
{
new MainWindow(Logger).Show();
@@ -511,15 +514,18 @@ namespace MediaBrowser.ServerApplication
/// </summary>
private void RegisterResources()
{
- Register<IApplicationHost>(this);
- Register(Logger);
+ RegisterSingleInstance<IApplicationHost>(this);
+ RegisterSingleInstance(Logger);
IsoManager = new PismoIsoManager(Logger);
- Register(IsoManager);
- Register<IBlurayExaminer>(new BdInfoExaminer());
- Register<IZipClient>(new DotNetZipClient());
- Register(typeof (INetworkManager), typeof (NetworkManager));
+ RegisterSingleInstance(IsoManager);
+ RegisterSingleInstance<IBlurayExaminer>(() => new BdInfoExaminer());
+ RegisterSingleInstance<INetworkManager>(() => new NetworkManager());
+ RegisterSingleInstance<IZipClient>(() => new DotNetZipClient());
+ RegisterSingleInstance<IWebSocketServer>(() => new AlchemyServer(Logger));
+ Register(typeof(IUdpServer), typeof(UdpServer));
+ RegisterSingleInstance<IHttpServer>(() => new HttpServer(this, Kernel, Logger, "Media Browser", "index.html"));
}
/// <summary>
@@ -546,20 +552,42 @@ namespace MediaBrowser.ServerApplication
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj">The obj.</param>
- public void Register<T>(T obj)
+ public void RegisterSingleInstance<T>(T obj)
where T : class
{
_container.RegisterSingle(obj);
}
/// <summary>
+ /// Registers the specified func.
+ /// </summary>
+ /// <typeparam name="T"></typeparam>
+ /// <param name="func">The func.</param>
+ public void Register<T>(Func<T> func)
+ where T : class
+ {
+ _container.Register(func);
+ }
+
+ /// <summary>
+ /// Registers the single instance.
+ /// </summary>
+ /// <typeparam name="T"></typeparam>
+ /// <param name="func">The func.</param>
+ public void RegisterSingleInstance<T>(Func<T> func)
+ where T : class
+ {
+ _container.RegisterSingle(func);
+ }
+
+ /// <summary>
/// Resolves this instance.
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns>``0.</returns>
public T Resolve<T>()
{
- return (T)_container.GetRegistration(typeof (T), true).GetInstance();
+ return (T)_container.GetRegistration(typeof(T), true).GetInstance();
}
/// <summary>
@@ -569,7 +597,7 @@ namespace MediaBrowser.ServerApplication
/// <returns>``0.</returns>
public T TryResolve<T>()
{
- var result = _container.GetRegistration(typeof (T), false);
+ var result = _container.GetRegistration(typeof(T), false);
if (result == null)
{
diff --git a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj
index 9b27351a1..0a364756a 100644
--- a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj
+++ b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj
@@ -128,6 +128,36 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\ThirdParty\UPnP\Libs\Platinum.Managed.dll</HintPath>
</Reference>
+ <Reference Include="ServiceStack, Version=3.9.37.0, Culture=neutral, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\packages\ServiceStack.3.9.37\lib\net35\ServiceStack.dll</HintPath>
+ </Reference>
+ <Reference Include="ServiceStack.Common, Version=3.9.37.0, Culture=neutral, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\packages\ServiceStack.Common.3.9.37\lib\net35\ServiceStack.Common.dll</HintPath>
+ </Reference>
+ <Reference Include="ServiceStack.Interfaces, Version=3.9.37.0, Culture=neutral, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\packages\ServiceStack.Common.3.9.37\lib\net35\ServiceStack.Interfaces.dll</HintPath>
+ </Reference>
+ <Reference Include="ServiceStack.OrmLite, Version=3.9.37.0, Culture=neutral, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\packages\ServiceStack.OrmLite.SqlServer.3.9.37\lib\ServiceStack.OrmLite.dll</HintPath>
+ </Reference>
+ <Reference Include="ServiceStack.OrmLite.SqlServer">
+ <HintPath>..\packages\ServiceStack.OrmLite.SqlServer.3.9.37\lib\ServiceStack.OrmLite.SqlServer.dll</HintPath>
+ </Reference>
+ <Reference Include="ServiceStack.Redis">
+ <HintPath>..\packages\ServiceStack.Redis.3.9.37\lib\net35\ServiceStack.Redis.dll</HintPath>
+ </Reference>
+ <Reference Include="ServiceStack.ServiceInterface, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\packages\ServiceStack.3.9.37\lib\net35\ServiceStack.ServiceInterface.dll</HintPath>
+ </Reference>
+ <Reference Include="ServiceStack.Text, Version=3.9.37.0, Culture=neutral, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\packages\ServiceStack.Text.3.9.37\lib\net35\ServiceStack.Text.dll</HintPath>
+ </Reference>
<Reference Include="SimpleInjector, Version=2.0.0.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\SimpleInjector.2.0.0-beta5\lib\net40-client\SimpleInjector.dll</HintPath>
diff --git a/MediaBrowser.ServerApplication/packages.config b/MediaBrowser.ServerApplication/packages.config
index e1beae6da..28d6202f8 100644
--- a/MediaBrowser.ServerApplication/packages.config
+++ b/MediaBrowser.ServerApplication/packages.config
@@ -3,6 +3,11 @@
<package id="DotNetZip" version="1.9.1.8" targetFramework="net45" />
<package id="Hardcodet.Wpf.TaskbarNotification" version="1.0.4.0" targetFramework="net45" />
<package id="NLog" version="2.0.0.2000" targetFramework="net45" />
+ <package id="ServiceStack" version="3.9.37" targetFramework="net45" />
+ <package id="ServiceStack.Common" version="3.9.37" targetFramework="net45" />
+ <package id="ServiceStack.OrmLite.SqlServer" version="3.9.37" targetFramework="net45" />
+ <package id="ServiceStack.Redis" version="3.9.37" targetFramework="net45" />
+ <package id="ServiceStack.Text" version="3.9.37" targetFramework="net45" />
<package id="SimpleInjector" version="2.0.0-beta5" targetFramework="net45" />
<package id="System.Data.SQLite" version="1.0.84.0" targetFramework="net45" />
</packages> \ No newline at end of file