Browse Source

reworked iso manager

Luke Pulverenti 12 years ago
parent
commit
e0c387446b
26 changed files with 122 additions and 24 deletions
  1. 1 0
      MediaBrowser.Api/Playback/BaseStreamingService.cs
  2. 1 0
      MediaBrowser.Api/Playback/Hls/AudioHlsService.cs
  3. 1 0
      MediaBrowser.Api/Playback/Hls/BaseHlsService.cs
  4. 1 0
      MediaBrowser.Api/Playback/Hls/VideoHlsService.cs
  5. 1 0
      MediaBrowser.Api/Playback/Progressive/AudioService.cs
  6. 1 0
      MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs
  7. 1 0
      MediaBrowser.Api/Playback/Progressive/VideoService.cs
  8. 1 0
      MediaBrowser.Api/Playback/StreamState.cs
  9. 0 2
      MediaBrowser.Common/MediaBrowser.Common.csproj
  10. 1 0
      MediaBrowser.Controller/MediaInfo/MediaEncoderHelpers.cs
  11. 28 0
      MediaBrowser.Model/ApiClient/IApiClient.cs
  12. 34 0
      MediaBrowser.Model/IO/IIsoManager.cs
  13. 1 1
      MediaBrowser.Model/IO/IIsoMount.cs
  14. 7 7
      MediaBrowser.Model/IO/IIsoMounter.cs
  15. 3 0
      MediaBrowser.Model/MediaBrowser.Model.csproj
  16. 27 0
      MediaBrowser.Model/Querying/SimilarItemsQuery.cs
  17. 1 0
      MediaBrowser.Providers/MediaInfo/BaseFFMpegProvider.cs
  18. 1 0
      MediaBrowser.Providers/MediaInfo/BaseFFProbeProvider.cs
  19. 1 0
      MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs
  20. 1 1
      MediaBrowser.Server.Implementations/Library/LibraryManager.cs
  21. 2 7
      MediaBrowser.Server.Implementations/Persistence/SqliteExtensions.cs
  22. 1 0
      MediaBrowser.Server.Implementations/ScheduledTasks/VideoImagesTask.cs
  23. 1 1
      MediaBrowser.ServerApplication/ApplicationHost.cs
  24. 2 2
      Nuget/MediaBrowser.Common.Internal.nuspec
  25. 1 1
      Nuget/MediaBrowser.Common.nuspec
  26. 2 2
      Nuget/MediaBrowser.Server.Core.nuspec

+ 1 - 0
MediaBrowser.Api/Playback/BaseStreamingService.cs

@@ -18,6 +18,7 @@ using System.IO;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
+using MediaBrowser.Model.IO;
 
 namespace MediaBrowser.Api.Playback
 {

+ 1 - 0
MediaBrowser.Api/Playback/Hls/AudioHlsService.cs

@@ -3,6 +3,7 @@ using MediaBrowser.Common.MediaInfo;
 using MediaBrowser.Controller;
 using MediaBrowser.Controller.Library;
 using MediaBrowser.Model.Dto;
+using MediaBrowser.Model.IO;
 using ServiceStack.ServiceHost;
 using System;
 using System.IO;

+ 1 - 0
MediaBrowser.Api/Playback/Hls/BaseHlsService.cs

@@ -8,6 +8,7 @@ using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Threading.Tasks;
+using MediaBrowser.Model.IO;
 
 namespace MediaBrowser.Api.Playback.Hls
 {

+ 1 - 0
MediaBrowser.Api/Playback/Hls/VideoHlsService.cs

@@ -2,6 +2,7 @@
 using MediaBrowser.Common.MediaInfo;
 using MediaBrowser.Controller;
 using MediaBrowser.Controller.Library;
+using MediaBrowser.Model.IO;
 using ServiceStack.ServiceHost;
 using System;
 using System.IO;

+ 1 - 0
MediaBrowser.Api/Playback/Progressive/AudioService.cs

@@ -3,6 +3,7 @@ using MediaBrowser.Common.MediaInfo;
 using MediaBrowser.Controller;
 using MediaBrowser.Controller.Library;
 using MediaBrowser.Controller.Persistence;
+using MediaBrowser.Model.IO;
 using ServiceStack.ServiceHost;
 using System;
 using System.Collections.Generic;

+ 1 - 0
MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs

@@ -16,6 +16,7 @@ using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Threading.Tasks;
+using MediaBrowser.Model.IO;
 
 namespace MediaBrowser.Api.Playback.Progressive
 {

+ 1 - 0
MediaBrowser.Api/Playback/Progressive/VideoService.cs

@@ -4,6 +4,7 @@ using MediaBrowser.Controller;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Library;
 using MediaBrowser.Controller.Persistence;
+using MediaBrowser.Model.IO;
 using ServiceStack.ServiceHost;
 using System;
 using System.IO;

+ 1 - 0
MediaBrowser.Api/Playback/StreamState.cs

@@ -2,6 +2,7 @@
 using MediaBrowser.Common.IO;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Model.Entities;
+using MediaBrowser.Model.IO;
 
 namespace MediaBrowser.Api.Playback
 {

+ 0 - 2
MediaBrowser.Common/MediaBrowser.Common.csproj

@@ -65,8 +65,6 @@
     <Compile Include="Events\GenericEventArgs.cs" />
     <Compile Include="Extensions\ResourceNotFoundException.cs" />
     <Compile Include="IO\FileSystemRepository.cs" />
-    <Compile Include="IO\IIsoManager.cs" />
-    <Compile Include="IO\IIsoMount.cs" />
     <Compile Include="IO\ProgressStream.cs" />
     <Compile Include="IO\StreamDefaults.cs" />
     <Compile Include="MediaInfo\MediaInfoResult.cs" />

+ 1 - 0
MediaBrowser.Controller/MediaInfo/MediaEncoderHelpers.cs

@@ -2,6 +2,7 @@
 using MediaBrowser.Common.MediaInfo;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Model.Entities;
+using MediaBrowser.Model.IO;
 
 namespace MediaBrowser.Controller.MediaInfo
 {

+ 28 - 0
MediaBrowser.Model/ApiClient/IApiClient.cs

@@ -176,6 +176,34 @@ namespace MediaBrowser.Model.ApiClient
         /// <exception cref="ArgumentNullException">query</exception>
         Task<ItemsResult> GetItemsAsync(ItemQuery query);
 
+        /// <summary>
+        /// Gets the instant mix from song async.
+        /// </summary>
+        /// <param name="query">The query.</param>
+        /// <returns>Task{ItemsResult}.</returns>
+        Task<ItemsResult> GetInstantMixFromSongAsync(SimilarItemsQuery query);
+
+        /// <summary>
+        /// Gets the instant mix from album async.
+        /// </summary>
+        /// <param name="query">The query.</param>
+        /// <returns>Task{ItemsResult}.</returns>
+        Task<ItemsResult> GetInstantMixFromAlbumAsync(SimilarItemsQuery query);
+
+        /// <summary>
+        /// Gets the instant mix from artist async.
+        /// </summary>
+        /// <param name="query">The query.</param>
+        /// <returns>Task{ItemsResult}.</returns>
+        Task<ItemsResult> GetInstantMixFromArtistAsync(SimilarItemsByNameQuery query);
+
+        /// <summary>
+        /// Gets the instant mix from music genre async.
+        /// </summary>
+        /// <param name="query">The query.</param>
+        /// <returns>Task{ItemsResult}.</returns>
+        Task<ItemsResult> GetInstantMixFromMusicGenreAsync(SimilarItemsByNameQuery query);
+        
         /// <summary>
         /// Gets the similar movies async.
         /// </summary>

+ 34 - 0
MediaBrowser.Model/IO/IIsoManager.cs

@@ -0,0 +1,34 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace MediaBrowser.Model.IO
+{
+    public interface IIsoManager : IDisposable
+    {
+        /// <summary>
+        /// Mounts the specified iso path.
+        /// </summary>
+        /// <param name="isoPath">The iso path.</param>
+        /// <param name="cancellationToken">The cancellation token.</param>
+        /// <returns>IsoMount.</returns>
+        /// <exception cref="ArgumentNullException">isoPath</exception>
+        /// <exception cref="IOException">Unable to create mount.</exception>
+        Task<IIsoMount> Mount(string isoPath, CancellationToken cancellationToken);
+
+        /// <summary>
+        /// Determines whether this instance can mount the specified path.
+        /// </summary>
+        /// <param name="path">The path.</param>
+        /// <returns><c>true</c> if this instance can mount the specified path; otherwise, <c>false</c>.</returns>
+        bool CanMount(string path);
+
+        /// <summary>
+        /// Adds the parts.
+        /// </summary>
+        /// <param name="mounters">The mounters.</param>
+        void AddParts(IEnumerable<IIsoMounter> mounters);
+    }
+}

+ 1 - 1
MediaBrowser.Common/IO/IIsoMount.cs → MediaBrowser.Model/IO/IIsoMount.cs

@@ -1,6 +1,6 @@
 using System;
 
-namespace MediaBrowser.Common.IO
+namespace MediaBrowser.Model.IO
 {
     /// <summary>
     /// Interface IIsoMount

+ 7 - 7
MediaBrowser.Common/IO/IIsoManager.cs → MediaBrowser.Model/IO/IIsoMounter.cs

@@ -1,21 +1,21 @@
 using System;
+using System.IO;
 using System.Threading;
 using System.Threading.Tasks;
 
-namespace MediaBrowser.Common.IO
+namespace MediaBrowser.Model.IO
 {
-    public interface IIsoManager : IDisposable
+    public interface IIsoMounter : IDisposable
     {
         /// <summary>
         /// Mounts the specified iso path.
         /// </summary>
         /// <param name="isoPath">The iso path.</param>
         /// <param name="cancellationToken">The cancellation token.</param>
-        /// <param name="visibleToAllProcesses">if set to <c>true</c> [visible to all processes].</param>
         /// <returns>IsoMount.</returns>
-        /// <exception cref="System.ArgumentNullException">isoPath</exception>
-        /// <exception cref="System.IO.IOException">Unable to create mount.</exception>
-        Task<IIsoMount> Mount(string isoPath, CancellationToken cancellationToken, bool visibleToAllProcesses = true);
+        /// <exception cref="ArgumentNullException">isoPath</exception>
+        /// <exception cref="IOException">Unable to create mount.</exception>
+        Task<IIsoMount> Mount(string isoPath, CancellationToken cancellationToken);
 
         /// <summary>
         /// Determines whether this instance can mount the specified path.
@@ -24,4 +24,4 @@ namespace MediaBrowser.Common.IO
         /// <returns><c>true</c> if this instance can mount the specified path; otherwise, <c>false</c>.</returns>
         bool CanMount(string path);
     }
-}
+}

+ 3 - 0
MediaBrowser.Model/MediaBrowser.Model.csproj

@@ -56,6 +56,9 @@
     <Compile Include="Entities\MediaUrl.cs" />
     <Compile Include="Entities\MetadataFields.cs" />
     <Compile Include="Entities\Video3DFormat.cs" />
+    <Compile Include="IO\IIsoManager.cs" />
+    <Compile Include="IO\IIsoMount.cs" />
+    <Compile Include="IO\IIsoMounter.cs" />
     <Compile Include="Net\WebSocketMessage.cs" />
     <Compile Include="Net\WebSocketMessageType.cs" />
     <Compile Include="Net\WebSocketState.cs" />

+ 27 - 0
MediaBrowser.Model/Querying/SimilarItemsQuery.cs

@@ -26,4 +26,31 @@
         /// <value>The fields.</value>
         public ItemFields[] Fields { get; set; }
     }
+
+    public class SimilarItemsByNameQuery
+    {
+        /// <summary>
+        /// The user to localize search results for
+        /// </summary>
+        /// <value>The user id.</value>
+        public string UserId { get; set; }
+
+        /// <summary>
+        /// Gets or sets the name.
+        /// </summary>
+        /// <value>The name.</value>
+        public string Name { get; set; }
+
+        /// <summary>
+        /// The maximum number of items to return
+        /// </summary>
+        /// <value>The limit.</value>
+        public int? Limit { get; set; }
+
+        /// <summary>
+        /// Fields to return within the items, in addition to basic information
+        /// </summary>
+        /// <value>The fields.</value>
+        public ItemFields[] Fields { get; set; }
+    }
 }

+ 1 - 0
MediaBrowser.Providers/MediaInfo/BaseFFMpegProvider.cs

@@ -4,6 +4,7 @@ using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
+using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Logging;
 using System;
 using System.Threading.Tasks;

+ 1 - 0
MediaBrowser.Providers/MediaInfo/BaseFFProbeProvider.cs

@@ -5,6 +5,7 @@ using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.MediaInfo;
 using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
+using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Model.Serialization;
 using System;

+ 1 - 0
MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs

@@ -8,6 +8,7 @@ using MediaBrowser.Controller.Entities.Movies;
 using MediaBrowser.Controller.Localization;
 using MediaBrowser.Controller.Persistence;
 using MediaBrowser.Model.Entities;
+using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Model.MediaInfo;
 using MediaBrowser.Model.Serialization;

+ 1 - 1
MediaBrowser.Server.Implementations/Library/LibraryManager.cs

@@ -586,7 +586,7 @@ namespace MediaBrowser.Server.Implementations.Library
 
                 if (folder.Id == Guid.Empty)
                 {
-                    folder.Id = (folder.Path ?? folder.Name ?? folder.GetType().Name).GetMBId(folder.GetType());
+                    folder.Id = (folder.Path ?? folder.GetType().Name).GetMBId(folder.GetType());
                 }
 
                 rootFolder.AddVirtualChild(folder);

+ 2 - 7
MediaBrowser.Server.Implementations/Persistence/SqliteExtensions.cs

@@ -1,9 +1,9 @@
-using System;
+using MediaBrowser.Model.Logging;
+using System;
 using System.Data;
 using System.Data.SQLite;
 using System.IO;
 using System.Threading.Tasks;
-using MediaBrowser.Model.Logging;
 
 namespace MediaBrowser.Server.Implementations.Persistence
 {
@@ -41,11 +41,6 @@ namespace MediaBrowser.Server.Implementations.Persistence
         /// <exception cref="System.ArgumentNullException"></exception>
         public static SQLiteParameter AddParam(this SQLiteCommand cmd, string param, object data)
         {
-            if (string.IsNullOrEmpty(param))
-            {
-                throw new ArgumentNullException();
-            }
-
             var sqliteParam = AddParam(cmd, param);
             sqliteParam.Value = data;
             return sqliteParam;

+ 1 - 0
MediaBrowser.Server.Implementations/ScheduledTasks/VideoImagesTask.cs

@@ -8,6 +8,7 @@ using MediaBrowser.Controller.Library;
 using MediaBrowser.Controller.MediaInfo;
 using MediaBrowser.Controller.Persistence;
 using MediaBrowser.Model.Entities;
+using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Logging;
 using MoreLinq;
 using System;

+ 1 - 1
MediaBrowser.ServerApplication/ApplicationHost.cs

@@ -238,7 +238,7 @@ namespace MediaBrowser.ServerApplication
 
             RegisterSingleInstance<IWebSocketServer>(() => new AlchemyServer(Logger));
 
-            RegisterSingleInstance<IIsoManager>(() => new PismoIsoManager(Logger));
+            //RegisterSingleInstance<IIsoManager>(() => new PismoIsoManager(Logger));
             RegisterSingleInstance<IBlurayExaminer>(() => new BdInfoExaminer());
 
             ZipClient = new DotNetZipClient();

+ 2 - 2
Nuget/MediaBrowser.Common.Internal.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
     <metadata>
         <id>MediaBrowser.Common.Internal</id>
-        <version>3.0.175</version>
+        <version>3.0.176</version>
         <title>MediaBrowser.Common.Internal</title>
         <authors>Luke</authors>
         <owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
         <description>Contains common components shared by Media Browser Theater and Media Browser Server. Not intended for plugin developer consumption.</description>
         <copyright>Copyright © Media Browser 2013</copyright>
         <dependencies>
-            <dependency id="MediaBrowser.Common" version="3.0.175" />
+            <dependency id="MediaBrowser.Common" version="3.0.176" />
             <dependency id="NLog" version="2.0.1.2" />
             <dependency id="ServiceStack.Text" version="3.9.45" />
             <dependency id="SimpleInjector" version="2.2.3" />

+ 1 - 1
Nuget/MediaBrowser.Common.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
     <metadata>
         <id>MediaBrowser.Common</id>
-        <version>3.0.175</version>
+        <version>3.0.176</version>
         <title>MediaBrowser.Common</title>
         <authors>Media Browser Team</authors>
         <owners>ebr,Luke,scottisafool</owners>

+ 2 - 2
Nuget/MediaBrowser.Server.Core.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
     <metadata>
         <id>MediaBrowser.Server.Core</id>
-        <version>3.0.175</version>
+        <version>3.0.176</version>
         <title>Media Browser.Server.Core</title>
         <authors>Media Browser Team</authors>
         <owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
         <description>Contains core components required to build plugins for Media Browser Server.</description>
         <copyright>Copyright © Media Browser 2013</copyright>
         <dependencies>
-            <dependency id="MediaBrowser.Common" version="3.0.175" />
+            <dependency id="MediaBrowser.Common" version="3.0.176" />
         </dependencies>
     </metadata>
     <files>