diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-03-26 23:27:03 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-03-26 23:27:03 -0400 |
| commit | 7acd258a0f42c0c368fb816b08a881bdefc97360 (patch) | |
| tree | 7b8874f704d79b95f05f076aed7bde012af392e2 | |
| parent | c309ff653a2be44c4d3b7cbae388bb121406725c (diff) | |
support xbox albumart param
| -rw-r--r-- | MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs | 54 |
1 files changed, 51 insertions, 3 deletions
diff --git a/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs b/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs index 3773a2a1c..13d103608 100644 --- a/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs +++ b/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Common.IO; +using MediaBrowser.Api.Images; +using MediaBrowser.Common.IO; using MediaBrowser.Common.Net; using MediaBrowser.Controller; using MediaBrowser.Controller.Entities; @@ -9,6 +10,7 @@ using System; using System.Collections.Generic; using System.IO; using System.Threading.Tasks; +using MediaBrowser.Model.Entities; namespace MediaBrowser.Api.Playback.Progressive { @@ -89,7 +91,7 @@ namespace MediaBrowser.Api.Playback.Progressive /// <param name="state">The state.</param> /// <param name="responseHeaders">The response headers.</param> /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns> - private void AddDlnaHeaders(StreamState state, IDictionary<string,string> responseHeaders) + private void AddDlnaHeaders(StreamState state, IDictionary<string, string> responseHeaders) { var timeSeek = RequestContext.GetHeader("TimeSeekRange.dlna.org"); @@ -167,6 +169,11 @@ namespace MediaBrowser.Api.Playback.Progressive { var state = GetState(request); + if (request.AlbumArt) + { + return GetAlbumArtResponse(state); + } + var responseHeaders = new Dictionary<string, string>(); AddDlnaHeaders(state, responseHeaders); @@ -187,13 +194,54 @@ namespace MediaBrowser.Api.Playback.Progressive } /// <summary> + /// Gets the album art response. + /// </summary> + /// <param name="state">The state.</param> + /// <returns>System.Object.</returns> + private object GetAlbumArtResponse(StreamState state) + { + var request = new GetItemImage + { + MaxWidth = 800, + MaxHeight = 800, + Type = ImageType.Primary, + Id = state.Item.Id.ToString() + }; + + // Try and find some image to return + if (!state.Item.HasImage(ImageType.Primary)) + { + if (state.Item.HasImage(ImageType.Backdrop)) + { + request.Type = ImageType.Backdrop; + } + else if (state.Item.HasImage(ImageType.Thumb)) + { + request.Type = ImageType.Thumb; + } + else if (state.Item.HasImage(ImageType.Logo)) + { + request.Type = ImageType.Logo; + } + } + + return new ImageService(UserManager, LibraryManager) + { + Logger = Logger, + RequestContext = RequestContext, + ResultFactory = ResultFactory + + }.Get(request); + } + + /// <summary> /// Gets the stream result. /// </summary> /// <param name="state">The state.</param> /// <param name="responseHeaders">The response headers.</param> /// <param name="isHeadRequest">if set to <c>true</c> [is head request].</param> /// <returns>Task{System.Object}.</returns> - private async Task<object> GetStreamResult(StreamState state, IDictionary<string,string> responseHeaders, bool isHeadRequest) + private async Task<object> GetStreamResult(StreamState state, IDictionary<string, string> responseHeaders, bool isHeadRequest) { // Use the command line args with a dummy playlist path var outputPath = GetOutputFilePath(state); |
