diff --git a/MediaBrowser.Api/DisplayPreferencesService.cs b/MediaBrowser.Api/DisplayPreferencesService.cs
index f22dc9e39e..4060b42b49 100644
--- a/MediaBrowser.Api/DisplayPreferencesService.cs
+++ b/MediaBrowser.Api/DisplayPreferencesService.cs
@@ -12,8 +12,7 @@ namespace MediaBrowser.Api
///
/// Class UpdateDisplayPreferences
///
- [Route("/DisplayPreferences/{DisplayPreferencesId}", "POST")]
- [Api(("Updates a user's display preferences for an item"))]
+ [Route("/DisplayPreferences/{DisplayPreferencesId}", "POST", Summary = "Updates a user's display preferences for an item")]
public class UpdateDisplayPreferences : DisplayPreferences, IReturnVoid
{
///
@@ -30,8 +29,7 @@ namespace MediaBrowser.Api
public string Client { get; set; }
}
- [Route("/DisplayPreferences/{Id}", "GET")]
- [Api(("Gets a user's display preferences for an item"))]
+ [Route("/DisplayPreferences/{Id}", "GET", Summary = "Gets a user's display preferences for an item")]
public class GetDisplayPreferences : IReturn
{
///
diff --git a/MediaBrowser.Api/EnvironmentService.cs b/MediaBrowser.Api/EnvironmentService.cs
index cb104072bd..56f71fc00e 100644
--- a/MediaBrowser.Api/EnvironmentService.cs
+++ b/MediaBrowser.Api/EnvironmentService.cs
@@ -13,8 +13,7 @@ namespace MediaBrowser.Api
///
/// Class GetDirectoryContents
///
- [Route("/Environment/DirectoryContents", "GET")]
- [Api(Description = "Gets the contents of a given directory in the file system")]
+ [Route("/Environment/DirectoryContents", "GET", Summary = "Gets the contents of a given directory in the file system")]
public class GetDirectoryContents : IReturn>
{
///
@@ -46,8 +45,7 @@ namespace MediaBrowser.Api
public bool IncludeHidden { get; set; }
}
- [Route("/Environment/NetworkShares", "GET")]
- [Api(Description = "Gets shares from a network device")]
+ [Route("/Environment/NetworkShares", "GET", Summary = "Gets shares from a network device")]
public class GetNetworkShares : IReturn>
{
///
@@ -61,8 +59,7 @@ namespace MediaBrowser.Api
///
/// Class GetDrives
///
- [Route("/Environment/Drives", "GET")]
- [Api(Description = "Gets available drives from the server's file system")]
+ [Route("/Environment/Drives", "GET", Summary = "Gets available drives from the server's file system")]
public class GetDrives : IReturn>
{
}
@@ -70,14 +67,12 @@ namespace MediaBrowser.Api
///
/// Class GetNetworkComputers
///
- [Route("/Environment/NetworkDevices", "GET")]
- [Api(Description = "Gets a list of devices on the network")]
+ [Route("/Environment/NetworkDevices", "GET", Summary = "Gets a list of devices on the network")]
public class GetNetworkDevices : IReturn>
{
}
- [Route("/Environment/ParentPath", "GET")]
- [Api(Description = "Gets the parent path of a given path")]
+ [Route("/Environment/ParentPath", "GET", Summary = "Gets the parent path of a given path")]
public class GetParentPath : IReturn
{
///
diff --git a/MediaBrowser.Api/GamesService.cs b/MediaBrowser.Api/GamesService.cs
index e371791f81..ff2771ce1b 100644
--- a/MediaBrowser.Api/GamesService.cs
+++ b/MediaBrowser.Api/GamesService.cs
@@ -1,5 +1,4 @@
-using System.Globalization;
-using MediaBrowser.Controller.Dto;
+using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Persistence;
@@ -7,6 +6,7 @@ using MediaBrowser.Model.Dto;
using ServiceStack;
using System;
using System.Collections.Generic;
+using System.Globalization;
using System.IO;
using System.Linq;
@@ -15,8 +15,7 @@ namespace MediaBrowser.Api
///
/// Class GetSimilarGames
///
- [Route("/Games/{Id}/Similar", "GET")]
- [Api(Description = "Finds games similar to a given game.")]
+ [Route("/Games/{Id}/Similar", "GET", Summary = "Finds games similar to a given game.")]
public class GetSimilarGames : BaseGetSimilarItemsFromItem
{
}
@@ -24,8 +23,7 @@ namespace MediaBrowser.Api
///
/// Class GetGameSystemSummaries
///
- [Route("/Games/SystemSummaries", "GET")]
- [Api(Description = "Finds games similar to a given game.")]
+ [Route("/Games/SystemSummaries", "GET", Summary = "Finds games similar to a given game.")]
public class GetGameSystemSummaries : IReturn>
{
///
@@ -39,8 +37,7 @@ namespace MediaBrowser.Api
///
/// Class GetGameSystemSummaries
///
- [Route("/Games/PlayerIndex", "GET")]
- [Api(Description = "Gets an index of players (1-x) and the number of games listed under each")]
+ [Route("/Games/PlayerIndex", "GET", Summary = "Gets an index of players (1-x) and the number of games listed under each")]
public class GetPlayerIndex : IReturn>
{
///
@@ -117,7 +114,7 @@ namespace MediaBrowser.Api
}
private static readonly CultureInfo UsCulture = new CultureInfo("en-US");
-
+
public object Get(GetPlayerIndex request)
{
var games = GetAllLibraryItems(request.UserId, _userManager, _libraryManager)
diff --git a/MediaBrowser.Api/Playback/Progressive/AudioService.cs b/MediaBrowser.Api/Playback/Progressive/AudioService.cs
index ca206c0125..55b311f867 100644
--- a/MediaBrowser.Api/Playback/Progressive/AudioService.cs
+++ b/MediaBrowser.Api/Playback/Progressive/AudioService.cs
@@ -17,23 +17,22 @@ namespace MediaBrowser.Api.Playback.Progressive
///
/// Class GetAudioStream
///
- [Route("/Audio/{Id}/stream.mp3", "GET")]
- [Route("/Audio/{Id}/stream.wma", "GET")]
- [Route("/Audio/{Id}/stream.aac", "GET")]
- [Route("/Audio/{Id}/stream.flac", "GET")]
- [Route("/Audio/{Id}/stream.ogg", "GET")]
- [Route("/Audio/{Id}/stream.oga", "GET")]
- [Route("/Audio/{Id}/stream.webm", "GET")]
- [Route("/Audio/{Id}/stream", "GET")]
- [Route("/Audio/{Id}/stream.mp3", "HEAD")]
- [Route("/Audio/{Id}/stream.wma", "HEAD")]
- [Route("/Audio/{Id}/stream.aac", "HEAD")]
- [Route("/Audio/{Id}/stream.flac", "HEAD")]
- [Route("/Audio/{Id}/stream.ogg", "HEAD")]
- [Route("/Audio/{Id}/stream.oga", "HEAD")]
- [Route("/Audio/{Id}/stream.webm", "HEAD")]
- [Route("/Audio/{Id}/stream", "HEAD")]
- [Api(Description = "Gets an audio stream")]
+ [Route("/Audio/{Id}/stream.mp3", "GET", Summary = "Gets an audio stream")]
+ [Route("/Audio/{Id}/stream.wma", "GET", Summary = "Gets an audio stream")]
+ [Route("/Audio/{Id}/stream.aac", "GET", Summary = "Gets an audio stream")]
+ [Route("/Audio/{Id}/stream.flac", "GET", Summary = "Gets an audio stream")]
+ [Route("/Audio/{Id}/stream.ogg", "GET", Summary = "Gets an audio stream")]
+ [Route("/Audio/{Id}/stream.oga", "GET", Summary = "Gets an audio stream")]
+ [Route("/Audio/{Id}/stream.webm", "GET", Summary = "Gets an audio stream")]
+ [Route("/Audio/{Id}/stream", "GET", Summary = "Gets an audio stream")]
+ [Route("/Audio/{Id}/stream.mp3", "HEAD", Summary = "Gets an audio stream")]
+ [Route("/Audio/{Id}/stream.wma", "HEAD", Summary = "Gets an audio stream")]
+ [Route("/Audio/{Id}/stream.aac", "HEAD", Summary = "Gets an audio stream")]
+ [Route("/Audio/{Id}/stream.flac", "HEAD", Summary = "Gets an audio stream")]
+ [Route("/Audio/{Id}/stream.ogg", "HEAD", Summary = "Gets an audio stream")]
+ [Route("/Audio/{Id}/stream.oga", "HEAD", Summary = "Gets an audio stream")]
+ [Route("/Audio/{Id}/stream.webm", "HEAD", Summary = "Gets an audio stream")]
+ [Route("/Audio/{Id}/stream", "HEAD", Summary = "Gets an audio stream")]
public class GetAudioStream : StreamRequest
{
@@ -44,7 +43,8 @@ namespace MediaBrowser.Api.Playback.Progressive
///
public class AudioService : BaseProgressiveStreamingService
{
- public AudioService(IServerConfigurationManager serverConfig, IUserManager userManager, ILibraryManager libraryManager, IIsoManager isoManager, IMediaEncoder mediaEncoder, IDtoService dtoService, IFileSystem fileSystem, IItemRepository itemRepository, ILiveTvManager liveTvManager, IEncodingManager encodingManager, IDlnaManager dlnaManager, IHttpClient httpClient, IImageProcessor imageProcessor) : base(serverConfig, userManager, libraryManager, isoManager, mediaEncoder, dtoService, fileSystem, itemRepository, liveTvManager, encodingManager, dlnaManager, httpClient, imageProcessor)
+ public AudioService(IServerConfigurationManager serverConfig, IUserManager userManager, ILibraryManager libraryManager, IIsoManager isoManager, IMediaEncoder mediaEncoder, IDtoService dtoService, IFileSystem fileSystem, IItemRepository itemRepository, ILiveTvManager liveTvManager, IEncodingManager encodingManager, IDlnaManager dlnaManager, IHttpClient httpClient, IImageProcessor imageProcessor)
+ : base(serverConfig, userManager, libraryManager, isoManager, mediaEncoder, dtoService, fileSystem, itemRepository, liveTvManager, encodingManager, dlnaManager, httpClient, imageProcessor)
{
}
diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs
index a787684bbf..c5d0a621d4 100644
--- a/MediaBrowser.Api/UserLibrary/ItemsService.cs
+++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs
@@ -20,9 +20,8 @@ namespace MediaBrowser.Api.UserLibrary
///
/// Class GetItems
///
- [Route("/Items", "GET")]
- [Route("/Users/{UserId}/Items", "GET")]
- [Api(Description = "Gets items based on a query.")]
+ [Route("/Items", "GET", Summary = "Gets items based on a query.")]
+ [Route("/Users/{UserId}/Items", "GET", Summary = "Gets items based on a query.")]
public class GetItems : BaseItemsRequest, IReturn
{
///
diff --git a/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj b/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj
index 04b8865c1d..f6f800f4af 100644
--- a/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj
+++ b/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj
@@ -102,7 +102,6 @@
-
diff --git a/MediaBrowser.Controller/Dlna/CodecProfile.cs b/MediaBrowser.Controller/Dlna/CodecProfile.cs
index 75f80ed3b1..e2eb60d9a1 100644
--- a/MediaBrowser.Controller/Dlna/CodecProfile.cs
+++ b/MediaBrowser.Controller/Dlna/CodecProfile.cs
@@ -35,9 +35,9 @@ namespace MediaBrowser.Controller.Dlna
public enum CodecType
{
- VideoCodec = 0,
- VideoAudioCodec = 1,
- AudioCodec = 2
+ Video = 0,
+ VideoAudio = 1,
+ Audio = 2
}
public class ProfileCondition
diff --git a/MediaBrowser.Controller/Dlna/DeviceProfile.cs b/MediaBrowser.Controller/Dlna/DeviceProfile.cs
index 5950698fb7..c1fc713e4a 100644
--- a/MediaBrowser.Controller/Dlna/DeviceProfile.cs
+++ b/MediaBrowser.Controller/Dlna/DeviceProfile.cs
@@ -3,7 +3,6 @@ using MediaBrowser.Model.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
-using System.Runtime.Serialization;
using System.Xml.Serialization;
namespace MediaBrowser.Controller.Dlna
diff --git a/MediaBrowser.Controller/Dlna/TranscodingProfile.cs b/MediaBrowser.Controller/Dlna/TranscodingProfile.cs
index 289333aa77..707f0c5731 100644
--- a/MediaBrowser.Controller/Dlna/TranscodingProfile.cs
+++ b/MediaBrowser.Controller/Dlna/TranscodingProfile.cs
@@ -18,6 +18,9 @@ namespace MediaBrowser.Controller.Dlna
[XmlAttribute("audioCodec")]
public string AudioCodec { get; set; }
+ [XmlAttribute("protocol")]
+ public string Protocol { get; set; }
+
[XmlAttribute("estimateContentLength")]
public bool EstimateContentLength { get; set; }
diff --git a/MediaBrowser.Controller/Session/ISessionController.cs b/MediaBrowser.Controller/Session/ISessionController.cs
index 21206af757..02cc875bd0 100644
--- a/MediaBrowser.Controller/Session/ISessionController.cs
+++ b/MediaBrowser.Controller/Session/ISessionController.cs
@@ -59,6 +59,14 @@ namespace MediaBrowser.Controller.Session
/// Task.
Task SendPlaystateCommand(PlaystateRequest command, CancellationToken cancellationToken);
+ ///
+ /// Sends the generic command.
+ ///
+ /// The command.
+ /// The cancellation token.
+ /// Task.
+ Task SendGenericCommand(GenericCommand command, CancellationToken cancellationToken);
+
///
/// Sends the library update info.
///
diff --git a/MediaBrowser.Dlna/PlayTo/DidlBuilder.cs b/MediaBrowser.Dlna/PlayTo/DidlBuilder.cs
index 1327da1480..80235740fb 100644
--- a/MediaBrowser.Dlna/PlayTo/DidlBuilder.cs
+++ b/MediaBrowser.Dlna/PlayTo/DidlBuilder.cs
@@ -40,7 +40,7 @@ namespace MediaBrowser.Dlna.PlayTo
/// The stream URL.
/// The streams.
/// System.String.
- public static string Build(BaseItem dto, string userId, string serverAddress, string streamUrl, IEnumerable streams)
+ public static string Build(BaseItem dto, string userId, string serverAddress, string streamUrl, IEnumerable streams, bool includeImageRes)
{
string response = string.Format(DIDL_START, dto.Id, userId);
response += string.Format(DIDL_TITLE, dto.Name.Replace("&", "and"));
@@ -51,7 +51,7 @@ namespace MediaBrowser.Dlna.PlayTo
var imageUrl = GetImageUrl(dto, serverAddress);
- if (!string.IsNullOrEmpty(imageUrl))
+ if (!string.IsNullOrWhiteSpace(imageUrl))
{
response += string.Format(DIDL_IMAGE, imageUrl);
}
@@ -65,7 +65,7 @@ namespace MediaBrowser.Dlna.PlayTo
response += string.Format(DESCRIPTION, UNKNOWN);
response += GetVideoDIDL(dto, streamUrl, streams);
- if (!string.IsNullOrEmpty(imageUrl))
+ if (includeImageRes && !string.IsNullOrWhiteSpace(imageUrl))
{
response += string.Format(DIDL_IMAGE_RES, imageUrl);
}
@@ -84,7 +84,7 @@ namespace MediaBrowser.Dlna.PlayTo
response += GetAudioDIDL(dto, streamUrl, streams);
- if (!string.IsNullOrEmpty(imageUrl))
+ if (includeImageRes && !string.IsNullOrWhiteSpace(imageUrl))
{
response += string.Format(DIDL_ALBUMIMAGE_RES, imageUrl);
}
diff --git a/MediaBrowser.Dlna/PlayTo/DlnaController.cs b/MediaBrowser.Dlna/PlayTo/DlnaController.cs
index e4bd8819da..0c9f292ad8 100644
--- a/MediaBrowser.Dlna/PlayTo/DlnaController.cs
+++ b/MediaBrowser.Dlna/PlayTo/DlnaController.cs
@@ -435,7 +435,7 @@ namespace MediaBrowser.Dlna.PlayTo
playlistItem.StreamUrl = StreamHelper.GetVideoUrl(_device.Properties, playlistItem, streams, serverAddress);
}
- playlistItem.Didl = DidlBuilder.Build(item, _session.UserId.ToString(), serverAddress, playlistItem.StreamUrl, streams);
+ playlistItem.Didl = DidlBuilder.Build(item, _session.UserId.ToString(), serverAddress, playlistItem.StreamUrl, streams, profile.EnableAlbumArtInDidl);
return playlistItem;
}
@@ -619,5 +619,10 @@ namespace MediaBrowser.Dlna.PlayTo
_logger.Log(LogSeverity.Debug, "Controller disposed");
}
}
+
+ public Task SendGenericCommand(GenericCommand command, CancellationToken cancellationToken)
+ {
+ throw new NotImplementedException();
+ }
}
}
diff --git a/MediaBrowser.Dlna/PlayTo/PlaylistItemFactory.cs b/MediaBrowser.Dlna/PlayTo/PlaylistItemFactory.cs
index f79dc1e5fc..c14a851cab 100644
--- a/MediaBrowser.Dlna/PlayTo/PlaylistItemFactory.cs
+++ b/MediaBrowser.Dlna/PlayTo/PlaylistItemFactory.cs
@@ -32,7 +32,7 @@ namespace MediaBrowser.Dlna.PlayTo
var audioCodec = audioStream == null ? null : audioStream.Codec;
// Make sure audio codec profiles are satisfied
- if (!string.IsNullOrEmpty(audioCodec) && profile.CodecProfiles.Where(i => i.Type == CodecType.AudioCodec && i.ContainsCodec(audioCodec))
+ if (!string.IsNullOrEmpty(audioCodec) && profile.CodecProfiles.Where(i => i.Type == CodecType.Audio && i.ContainsCodec(audioCodec))
.All(i => AreConditionsSatisfied(i.Conditions, item.Path, null, audioStream)))
{
playlistItem.Transcode = false;
@@ -53,7 +53,7 @@ namespace MediaBrowser.Dlna.PlayTo
playlistItem.AudioCodec = transcodingProfile.AudioCodec;
var audioTranscodingConditions = profile.CodecProfiles
- .Where(i => i.Type == CodecType.AudioCodec && i.ContainsCodec(transcodingProfile.AudioCodec))
+ .Where(i => i.Type == CodecType.Audio && i.ContainsCodec(transcodingProfile.AudioCodec))
.Take(1)
.SelectMany(i => i.Conditions);
@@ -114,13 +114,13 @@ namespace MediaBrowser.Dlna.PlayTo
var videoCodec = videoStream == null ? null : videoStream.Codec;
// Make sure video codec profiles are satisfied
- if (!string.IsNullOrEmpty(videoCodec) && profile.CodecProfiles.Where(i => i.Type == CodecType.VideoCodec && i.ContainsCodec(videoCodec))
+ if (!string.IsNullOrEmpty(videoCodec) && profile.CodecProfiles.Where(i => i.Type == CodecType.Video && i.ContainsCodec(videoCodec))
.All(i => AreConditionsSatisfied(i.Conditions, item.Path, videoStream, audioStream)))
{
var audioCodec = audioStream == null ? null : audioStream.Codec;
// Make sure audio codec profiles are satisfied
- if (string.IsNullOrEmpty(audioCodec) || profile.CodecProfiles.Where(i => i.Type == CodecType.VideoAudioCodec && i.ContainsCodec(audioCodec))
+ if (string.IsNullOrEmpty(audioCodec) || profile.CodecProfiles.Where(i => i.Type == CodecType.VideoAudio && i.ContainsCodec(audioCodec))
.All(i => AreConditionsSatisfied(i.Conditions, item.Path, videoStream, audioStream)))
{
playlistItem.Transcode = false;
@@ -143,14 +143,14 @@ namespace MediaBrowser.Dlna.PlayTo
playlistItem.VideoCodec = transcodingProfile.VideoCodec;
var videoTranscodingConditions = profile.CodecProfiles
- .Where(i => i.Type == CodecType.VideoCodec && i.ContainsCodec(transcodingProfile.VideoCodec))
+ .Where(i => i.Type == CodecType.Video && i.ContainsCodec(transcodingProfile.VideoCodec))
.Take(1)
.SelectMany(i => i.Conditions);
ApplyTranscodingConditions(playlistItem, videoTranscodingConditions);
var audioTranscodingConditions = profile.CodecProfiles
- .Where(i => i.Type == CodecType.VideoAudioCodec && i.ContainsCodec(transcodingProfile.AudioCodec))
+ .Where(i => i.Type == CodecType.VideoAudio && i.ContainsCodec(transcodingProfile.AudioCodec))
.Take(1)
.SelectMany(i => i.Conditions);
diff --git a/MediaBrowser.Dlna/Profiles/LgTvProfile.cs b/MediaBrowser.Dlna/Profiles/LgTvProfile.cs
index 7ca8069dac..ccf36e8447 100644
--- a/MediaBrowser.Dlna/Profiles/LgTvProfile.cs
+++ b/MediaBrowser.Dlna/Profiles/LgTvProfile.cs
@@ -113,7 +113,7 @@ namespace MediaBrowser.Dlna.Profiles
{
new CodecProfile
{
- Type = CodecType.VideoCodec,
+ Type = CodecType.Video,
Codec = "mpeg4",
Conditions = new[]
@@ -141,7 +141,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoCodec,
+ Type = CodecType.Video,
Codec = "h264",
Conditions = new[]
@@ -175,7 +175,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoAudioCodec,
+ Type = CodecType.VideoAudio,
Codec = "ac3,aac,mp3",
Conditions = new[]
diff --git a/MediaBrowser.Dlna/Profiles/PanasonicVieraProfile.cs b/MediaBrowser.Dlna/Profiles/PanasonicVieraProfile.cs
index 64747776c6..ced9a7c612 100644
--- a/MediaBrowser.Dlna/Profiles/PanasonicVieraProfile.cs
+++ b/MediaBrowser.Dlna/Profiles/PanasonicVieraProfile.cs
@@ -157,7 +157,7 @@ namespace MediaBrowser.Dlna.Profiles
{
new CodecProfile
{
- Type = CodecType.VideoCodec,
+ Type = CodecType.Video,
Conditions = new[]
{
diff --git a/MediaBrowser.Dlna/Profiles/SamsungSmartTvProfile.cs b/MediaBrowser.Dlna/Profiles/SamsungSmartTvProfile.cs
index 259d8e9ffb..122bde875f 100644
--- a/MediaBrowser.Dlna/Profiles/SamsungSmartTvProfile.cs
+++ b/MediaBrowser.Dlna/Profiles/SamsungSmartTvProfile.cs
@@ -145,7 +145,7 @@ namespace MediaBrowser.Dlna.Profiles
{
new CodecProfile
{
- Type = CodecType.VideoCodec,
+ Type = CodecType.Video,
Codec = "mpeg2video",
Conditions = new[]
@@ -179,7 +179,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoCodec,
+ Type = CodecType.Video,
Codec = "mpeg4",
Conditions = new[]
@@ -213,7 +213,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoCodec,
+ Type = CodecType.Video,
Codec = "h264",
Conditions = new[]
@@ -253,7 +253,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoCodec,
+ Type = CodecType.Video,
Codec = "wmv2,wmv3,vc1",
Conditions = new[]
@@ -287,7 +287,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoAudioCodec,
+ Type = CodecType.VideoAudio,
Codec = "ac3,wmav2,dca,aac,mp3",
Conditions = new[]
diff --git a/MediaBrowser.Dlna/Profiles/SonyBlurayPlayer2013Profile.cs b/MediaBrowser.Dlna/Profiles/SonyBlurayPlayer2013Profile.cs
index 04309d55f7..b64d4f6caf 100644
--- a/MediaBrowser.Dlna/Profiles/SonyBlurayPlayer2013Profile.cs
+++ b/MediaBrowser.Dlna/Profiles/SonyBlurayPlayer2013Profile.cs
@@ -113,7 +113,7 @@ namespace MediaBrowser.Dlna.Profiles
{
new CodecProfile
{
- Type = CodecType.VideoCodec,
+ Type = CodecType.Video,
Codec = "h264",
Conditions = new []
{
@@ -141,7 +141,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoAudioCodec,
+ Type = CodecType.VideoAudio,
Codec = "ac3",
Conditions = new []
{
diff --git a/MediaBrowser.Dlna/Profiles/SonyBlurayPlayerProfile.cs b/MediaBrowser.Dlna/Profiles/SonyBlurayPlayerProfile.cs
index d9dfc1caf8..c5025edbb6 100644
--- a/MediaBrowser.Dlna/Profiles/SonyBlurayPlayerProfile.cs
+++ b/MediaBrowser.Dlna/Profiles/SonyBlurayPlayerProfile.cs
@@ -109,7 +109,7 @@ namespace MediaBrowser.Dlna.Profiles
{
new CodecProfile
{
- Type = CodecType.VideoCodec,
+ Type = CodecType.Video,
Codec = "h264",
Conditions = new []
{
@@ -151,7 +151,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoAudioCodec,
+ Type = CodecType.VideoAudio,
Codec = "ac3",
Conditions = new []
{
@@ -167,7 +167,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoAudioCodec,
+ Type = CodecType.VideoAudio,
Codec = "aac",
Conditions = new []
{
diff --git a/MediaBrowser.Dlna/Profiles/SonyBravia2010Profile.cs b/MediaBrowser.Dlna/Profiles/SonyBravia2010Profile.cs
index cb91de4a09..8f29ad76e3 100644
--- a/MediaBrowser.Dlna/Profiles/SonyBravia2010Profile.cs
+++ b/MediaBrowser.Dlna/Profiles/SonyBravia2010Profile.cs
@@ -168,7 +168,7 @@ namespace MediaBrowser.Dlna.Profiles
{
new CodecProfile
{
- Type = CodecType.VideoCodec,
+ Type = CodecType.Video,
Conditions = new []
{
new ProfileCondition
@@ -188,7 +188,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoCodec,
+ Type = CodecType.Video,
Codec = "h264",
Conditions = new []
{
@@ -215,7 +215,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoCodec,
+ Type = CodecType.Video,
Codec = "mpeg2video",
Conditions = new []
{
@@ -236,7 +236,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoAudioCodec,
+ Type = CodecType.VideoAudio,
Codec = "ac3",
Conditions = new []
@@ -252,7 +252,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoAudioCodec,
+ Type = CodecType.VideoAudio,
Codec = "aac",
Conditions = new []
diff --git a/MediaBrowser.Dlna/Profiles/SonyBravia2011Profile.cs b/MediaBrowser.Dlna/Profiles/SonyBravia2011Profile.cs
index 626a91a73c..eaf6979a6b 100644
--- a/MediaBrowser.Dlna/Profiles/SonyBravia2011Profile.cs
+++ b/MediaBrowser.Dlna/Profiles/SonyBravia2011Profile.cs
@@ -186,7 +186,7 @@ namespace MediaBrowser.Dlna.Profiles
{
new CodecProfile
{
- Type = CodecType.VideoCodec,
+ Type = CodecType.Video,
Conditions = new []
{
new ProfileCondition
@@ -206,7 +206,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoCodec,
+ Type = CodecType.Video,
Codec = "h264",
Conditions = new []
{
@@ -233,7 +233,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoCodec,
+ Type = CodecType.Video,
Codec = "mpeg2video",
Conditions = new []
{
@@ -254,7 +254,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoAudioCodec,
+ Type = CodecType.VideoAudio,
Codec = "ac3",
Conditions = new []
@@ -270,7 +270,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoAudioCodec,
+ Type = CodecType.VideoAudio,
Codec = "aac",
Conditions = new[]
diff --git a/MediaBrowser.Dlna/Profiles/SonyBravia2012Profile.cs b/MediaBrowser.Dlna/Profiles/SonyBravia2012Profile.cs
index 82b6b6d5f9..41d057ef8a 100644
--- a/MediaBrowser.Dlna/Profiles/SonyBravia2012Profile.cs
+++ b/MediaBrowser.Dlna/Profiles/SonyBravia2012Profile.cs
@@ -198,7 +198,7 @@ namespace MediaBrowser.Dlna.Profiles
{
new CodecProfile
{
- Type = CodecType.VideoCodec,
+ Type = CodecType.Video,
Conditions = new[]
{
new ProfileCondition
@@ -218,7 +218,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoAudioCodec,
+ Type = CodecType.VideoAudio,
Codec = "ac3",
Conditions = new[]
diff --git a/MediaBrowser.Dlna/Profiles/SonyBravia2013Profile.cs b/MediaBrowser.Dlna/Profiles/SonyBravia2013Profile.cs
index aec65e98ec..386a36ae0c 100644
--- a/MediaBrowser.Dlna/Profiles/SonyBravia2013Profile.cs
+++ b/MediaBrowser.Dlna/Profiles/SonyBravia2013Profile.cs
@@ -231,7 +231,7 @@ namespace MediaBrowser.Dlna.Profiles
{
new CodecProfile
{
- Type = CodecType.VideoCodec,
+ Type = CodecType.Video,
Conditions = new []
{
diff --git a/MediaBrowser.Dlna/Profiles/SonyPs3Profile.cs b/MediaBrowser.Dlna/Profiles/SonyPs3Profile.cs
index 7502201eac..351a13f001 100644
--- a/MediaBrowser.Dlna/Profiles/SonyPs3Profile.cs
+++ b/MediaBrowser.Dlna/Profiles/SonyPs3Profile.cs
@@ -85,7 +85,7 @@ namespace MediaBrowser.Dlna.Profiles
{
new CodecProfile
{
- Type = CodecType.VideoCodec,
+ Type = CodecType.Video,
Codec = "h264",
Conditions = new []
@@ -128,7 +128,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoAudioCodec,
+ Type = CodecType.VideoAudio,
Codec = "ac3",
Conditions = new []
@@ -153,7 +153,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoAudioCodec,
+ Type = CodecType.VideoAudio,
Codec = "wmapro",
Conditions = new []
@@ -169,7 +169,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoAudioCodec,
+ Type = CodecType.VideoAudio,
Codec = "aac",
Conditions = new []
@@ -186,7 +186,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoAudioCodec,
+ Type = CodecType.VideoAudio,
Codec = "aac",
Conditions = new []
diff --git a/MediaBrowser.Dlna/Profiles/WdtvLiveProfile.cs b/MediaBrowser.Dlna/Profiles/WdtvLiveProfile.cs
index af5d9b2956..f0b95d4e88 100644
--- a/MediaBrowser.Dlna/Profiles/WdtvLiveProfile.cs
+++ b/MediaBrowser.Dlna/Profiles/WdtvLiveProfile.cs
@@ -195,7 +195,7 @@ namespace MediaBrowser.Dlna.Profiles
{
new CodecProfile
{
- Type = CodecType.VideoCodec,
+ Type = CodecType.Video,
Codec = "h264",
Conditions = new []
@@ -223,7 +223,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoAudioCodec,
+ Type = CodecType.VideoAudio,
Codec = "aac",
Conditions = new []
diff --git a/MediaBrowser.Dlna/Profiles/Xbox360Profile.cs b/MediaBrowser.Dlna/Profiles/Xbox360Profile.cs
index ed9edeb27a..38d08adef7 100644
--- a/MediaBrowser.Dlna/Profiles/Xbox360Profile.cs
+++ b/MediaBrowser.Dlna/Profiles/Xbox360Profile.cs
@@ -165,7 +165,7 @@ namespace MediaBrowser.Dlna.Profiles
{
new CodecProfile
{
- Type = CodecType.VideoCodec,
+ Type = CodecType.Video,
Codec = "mpeg4",
Conditions = new []
{
@@ -200,7 +200,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoCodec,
+ Type = CodecType.Video,
Codec = "h264",
Conditions = new []
{
@@ -235,7 +235,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoCodec,
+ Type = CodecType.Video,
Codec = "wmv2,wmv3,vc1",
Conditions = new []
{
@@ -270,7 +270,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoAudioCodec,
+ Type = CodecType.VideoAudio,
Codec = "ac3,wmav2,wmapro",
Conditions = new []
{
@@ -286,7 +286,7 @@ namespace MediaBrowser.Dlna.Profiles
new CodecProfile
{
- Type = CodecType.VideoAudioCodec,
+ Type = CodecType.VideoAudio,
Codec = "aac",
Conditions = new []
{
diff --git a/MediaBrowser.Dlna/Profiles/Xml/Default.xml b/MediaBrowser.Dlna/Profiles/Xml/Default.xml
index 60f22a64a9..895cb99d32 100644
--- a/MediaBrowser.Dlna/Profiles/Xml/Default.xml
+++ b/MediaBrowser.Dlna/Profiles/Xml/Default.xml
@@ -30,5 +30,6 @@
+
\ No newline at end of file
diff --git a/MediaBrowser.Dlna/Profiles/Xml/Denon AVR.xml b/MediaBrowser.Dlna/Profiles/Xml/Denon AVR.xml
index 28bb3289e2..58c5cefbc5 100644
--- a/MediaBrowser.Dlna/Profiles/Xml/Denon AVR.xml
+++ b/MediaBrowser.Dlna/Profiles/Xml/Denon AVR.xml
@@ -34,5 +34,6 @@
+
\ No newline at end of file
diff --git a/MediaBrowser.Dlna/Profiles/Xml/LG Smart TV.xml b/MediaBrowser.Dlna/Profiles/Xml/LG Smart TV.xml
index cc8b40430d..53781ad324 100644
--- a/MediaBrowser.Dlna/Profiles/Xml/LG Smart TV.xml
+++ b/MediaBrowser.Dlna/Profiles/Xml/LG Smart TV.xml
@@ -48,14 +48,14 @@
-
+
-
+
@@ -63,7 +63,7 @@
-
+
diff --git a/MediaBrowser.Dlna/Profiles/Xml/Linksys DMA2100.xml b/MediaBrowser.Dlna/Profiles/Xml/Linksys DMA2100.xml
index 477fee2dde..fc833b9186 100644
--- a/MediaBrowser.Dlna/Profiles/Xml/Linksys DMA2100.xml
+++ b/MediaBrowser.Dlna/Profiles/Xml/Linksys DMA2100.xml
@@ -34,5 +34,6 @@
+
\ No newline at end of file
diff --git a/MediaBrowser.Dlna/Profiles/Xml/Panasonic Viera.xml b/MediaBrowser.Dlna/Profiles/Xml/Panasonic Viera.xml
index 71e240313b..49fd05b1e0 100644
--- a/MediaBrowser.Dlna/Profiles/Xml/Panasonic Viera.xml
+++ b/MediaBrowser.Dlna/Profiles/Xml/Panasonic Viera.xml
@@ -54,7 +54,7 @@
-
+
diff --git a/MediaBrowser.Dlna/Profiles/Xml/Samsung Smart TV.xml b/MediaBrowser.Dlna/Profiles/Xml/Samsung Smart TV.xml
index 77648147f5..75c50aae36 100644
--- a/MediaBrowser.Dlna/Profiles/Xml/Samsung Smart TV.xml
+++ b/MediaBrowser.Dlna/Profiles/Xml/Samsung Smart TV.xml
@@ -52,7 +52,7 @@
-
+
@@ -60,7 +60,7 @@
-
+
@@ -68,7 +68,7 @@
-
+
@@ -77,7 +77,7 @@
-
+
@@ -85,7 +85,7 @@
-
+
diff --git a/MediaBrowser.Dlna/Profiles/Xml/Sony Blu-ray Player 2013.xml b/MediaBrowser.Dlna/Profiles/Xml/Sony Blu-ray Player 2013.xml
index 9428122954..5bd27c7716 100644
--- a/MediaBrowser.Dlna/Profiles/Xml/Sony Blu-ray Player 2013.xml
+++ b/MediaBrowser.Dlna/Profiles/Xml/Sony Blu-ray Player 2013.xml
@@ -52,14 +52,14 @@
-
+
-
+
diff --git a/MediaBrowser.Dlna/Profiles/Xml/Sony Blu-ray Player.xml b/MediaBrowser.Dlna/Profiles/Xml/Sony Blu-ray Player.xml
index 5193045768..f5502ca14a 100644
--- a/MediaBrowser.Dlna/Profiles/Xml/Sony Blu-ray Player.xml
+++ b/MediaBrowser.Dlna/Profiles/Xml/Sony Blu-ray Player.xml
@@ -51,7 +51,7 @@
-
+
@@ -60,12 +60,12 @@
-
+
-
+
diff --git a/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2010).xml b/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2010).xml
index d240e1d348..1337b59361 100644
--- a/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2010).xml
+++ b/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2010).xml
@@ -49,31 +49,31 @@
-
+
-
+
-
+
-
+
-
+
diff --git a/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2011).xml b/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2011).xml
index 2372aa5ad9..b022c10a51 100644
--- a/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2011).xml
+++ b/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2011).xml
@@ -52,31 +52,31 @@
-
+
-
+
-
+
-
+
-
+
diff --git a/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2012).xml b/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2012).xml
index 7edf09134c..cbef70b378 100644
--- a/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2012).xml
+++ b/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2012).xml
@@ -54,13 +54,13 @@
-
+
-
+
diff --git a/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2013).xml b/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2013).xml
index ec624cd8ec..47db46ce11 100644
--- a/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2013).xml
+++ b/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2013).xml
@@ -59,7 +59,7 @@
-
+
diff --git a/MediaBrowser.Dlna/Profiles/Xml/Sony PlayStation 3.xml b/MediaBrowser.Dlna/Profiles/Xml/Sony PlayStation 3.xml
index eeaf2d8193..d9aa441bb4 100644
--- a/MediaBrowser.Dlna/Profiles/Xml/Sony PlayStation 3.xml
+++ b/MediaBrowser.Dlna/Profiles/Xml/Sony PlayStation 3.xml
@@ -48,7 +48,7 @@
-
+
@@ -57,23 +57,23 @@
-
+
-
+
-
+
-
+
diff --git a/MediaBrowser.Dlna/Profiles/Xml/WDTV Live.xml b/MediaBrowser.Dlna/Profiles/Xml/WDTV Live.xml
index ffa39c26d1..0f4ad54a77 100644
--- a/MediaBrowser.Dlna/Profiles/Xml/WDTV Live.xml
+++ b/MediaBrowser.Dlna/Profiles/Xml/WDTV Live.xml
@@ -59,14 +59,14 @@
-
+
-
+
diff --git a/MediaBrowser.Dlna/Profiles/Xml/Xbox 360.xml b/MediaBrowser.Dlna/Profiles/Xml/Xbox 360.xml
index ea25391976..1e8d8164c3 100644
--- a/MediaBrowser.Dlna/Profiles/Xml/Xbox 360.xml
+++ b/MediaBrowser.Dlna/Profiles/Xml/Xbox 360.xml
@@ -59,7 +59,7 @@
-
+
@@ -67,7 +67,7 @@
-
+
@@ -75,7 +75,7 @@
-
+
@@ -83,12 +83,12 @@
-
+
-
+
diff --git a/MediaBrowser.Dlna/Profiles/Xml/Xbox One.xml b/MediaBrowser.Dlna/Profiles/Xml/Xbox One.xml
index ef4fec99ac..f6c338b2f5 100644
--- a/MediaBrowser.Dlna/Profiles/Xml/Xbox One.xml
+++ b/MediaBrowser.Dlna/Profiles/Xml/Xbox One.xml
@@ -32,6 +32,7 @@
+
diff --git a/MediaBrowser.Dlna/Profiles/Xml/foobar2000.xml b/MediaBrowser.Dlna/Profiles/Xml/foobar2000.xml
index 3e6623ac48..f682e4c421 100644
--- a/MediaBrowser.Dlna/Profiles/Xml/foobar2000.xml
+++ b/MediaBrowser.Dlna/Profiles/Xml/foobar2000.xml
@@ -36,5 +36,6 @@
+
\ No newline at end of file
diff --git a/MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj b/MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj
index 9aefb4f1c8..6c4d9d9e29 100644
--- a/MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj
+++ b/MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj
@@ -428,6 +428,9 @@
Session\BrowseRequest.cs
+
+ Session\GenericCommand.cs
+
Session\MessageCommand.cs
diff --git a/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj b/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj
index ce2a7600f0..b39cecc61d 100644
--- a/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj
+++ b/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj
@@ -415,6 +415,9 @@
Session\BrowseRequest.cs
+
+ Session\GenericCommand.cs
+
Session\MessageCommand.cs
diff --git a/MediaBrowser.Model/ApiClient/IApiClient.cs b/MediaBrowser.Model/ApiClient/IApiClient.cs
index 8de54f34a9..28c5822e9a 100644
--- a/MediaBrowser.Model/ApiClient/IApiClient.cs
+++ b/MediaBrowser.Model/ApiClient/IApiClient.cs
@@ -589,6 +589,14 @@ namespace MediaBrowser.Model.ApiClient
/// request
Task SendPlayCommandAsync(string sessionId, PlayRequest request);
+ ///
+ /// Sends the command asynchronous.
+ ///
+ /// The session identifier.
+ /// The request.
+ /// Task.
+ Task SendCommandAsync(string sessionId, GenericCommand request);
+
///
/// Sends a system command to the client
///
diff --git a/MediaBrowser.Model/MediaBrowser.Model.csproj b/MediaBrowser.Model/MediaBrowser.Model.csproj
index bf29b4bff0..207543fe88 100644
--- a/MediaBrowser.Model/MediaBrowser.Model.csproj
+++ b/MediaBrowser.Model/MediaBrowser.Model.csproj
@@ -132,6 +132,7 @@
+
diff --git a/MediaBrowser.Model/Session/GenericCommand.cs b/MediaBrowser.Model/Session/GenericCommand.cs
new file mode 100644
index 0000000000..f7ea0a84a5
--- /dev/null
+++ b/MediaBrowser.Model/Session/GenericCommand.cs
@@ -0,0 +1,48 @@
+using System;
+using System.Collections.Generic;
+
+namespace MediaBrowser.Model.Session
+{
+ public class GenericCommand
+ {
+ public string Name { get; set; }
+
+ public string ControllingUserId { get; set; }
+
+ public Dictionary Arguments { get; set; }
+
+ public GenericCommand()
+ {
+ Arguments = new Dictionary(StringComparer.OrdinalIgnoreCase);
+ }
+ }
+
+ ///
+ /// This exists simply to identify a set of known commands.
+ ///
+ public enum CoreGenericCommand
+ {
+ MoveUp = 0,
+ MoveDown = 1,
+ MoveLeft = 2,
+ MoveRight = 3,
+ PageUp = 4,
+ PageDown = 5,
+ PreviousLetter = 6,
+ NextLetter = 7,
+ ToggleOsd = 8,
+ ToggleContextMenu = 9,
+ Select = 10,
+ Back = 11,
+ TakeScreenshot = 12,
+ SendKey = 13,
+ SendString = 14,
+ GoHome = 15,
+ GoToSettings = 16,
+ VolumeUp = 17,
+ VolumeDown = 18,
+ Mute = 19,
+ Unmute = 20,
+ ToggleMute = 21
+ }
+}
diff --git a/MediaBrowser.Model/Session/PlaystateCommand.cs b/MediaBrowser.Model/Session/PlaystateCommand.cs
index d83c6dae54..91572ba623 100644
--- a/MediaBrowser.Model/Session/PlaystateCommand.cs
+++ b/MediaBrowser.Model/Session/PlaystateCommand.cs
@@ -33,7 +33,15 @@ namespace MediaBrowser.Model.Session
///
/// The fullscreen
///
- Fullscreen
+ Fullscreen,
+ ///
+ /// The rewind
+ ///
+ Rewind,
+ ///
+ /// The fast forward
+ ///
+ FastForward
}
public class PlaystateRequest
diff --git a/MediaBrowser.Server.Implementations/Roku/RokuSessionController.cs b/MediaBrowser.Server.Implementations/Roku/RokuSessionController.cs
index 0e2f9e1b57..d806db1e0b 100644
--- a/MediaBrowser.Server.Implementations/Roku/RokuSessionController.cs
+++ b/MediaBrowser.Server.Implementations/Roku/RokuSessionController.cs
@@ -146,5 +146,16 @@ namespace MediaBrowser.Server.Implementations.Roku
RequestContentType = "application/json"
});
}
+
+
+ public Task SendGenericCommand(GenericCommand command, CancellationToken cancellationToken)
+ {
+ return SendCommand(new WebSocketMessage
+ {
+ MessageType = "Command",
+ Data = command
+
+ }, cancellationToken);
+ }
}
}
diff --git a/MediaBrowser.Server.Implementations/Session/WebSocketController.cs b/MediaBrowser.Server.Implementations/Session/WebSocketController.cs
index 70d7ac071f..ddf4ec2ca7 100644
--- a/MediaBrowser.Server.Implementations/Session/WebSocketController.cs
+++ b/MediaBrowser.Server.Implementations/Session/WebSocketController.cs
@@ -198,5 +198,17 @@ namespace MediaBrowser.Server.Implementations.Session
}, cancellationToken);
}
+
+ public Task SendGenericCommand(GenericCommand command, CancellationToken cancellationToken)
+ {
+ var socket = GetActiveSocket();
+
+ return socket.SendAsync(new WebSocketMessage
+ {
+ MessageType = "Command",
+ Data = command
+
+ }, cancellationToken);
+ }
}
}
diff --git a/MediaBrowser.ServerApplication/MainStartup.cs b/MediaBrowser.ServerApplication/MainStartup.cs
index 6afe9367e5..3d490a1f8c 100644
--- a/MediaBrowser.ServerApplication/MainStartup.cs
+++ b/MediaBrowser.ServerApplication/MainStartup.cs
@@ -1,12 +1,11 @@
using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.Constants;
using MediaBrowser.Common.Implementations.Logging;
-using MediaBrowser.Common.Implementations.Updates;
-using MediaBrowser.Controller;
using MediaBrowser.Model.Logging;
using MediaBrowser.Server.Implementations;
using MediaBrowser.ServerApplication.Native;
using MediaBrowser.ServerApplication.Splash;
+using MediaBrowser.ServerApplication.Updates;
using Microsoft.Win32;
using System;
using System.Configuration.Install;
@@ -490,7 +489,7 @@ namespace MediaBrowser.ServerApplication
try
{
var serviceName = _isRunningAsService ? BackgroundService.Name : string.Empty;
- new ApplicationUpdater().UpdateApplication(MBApplication.MBServer, appPaths, updateArchive, logger, serviceName);
+ new ApplicationUpdater().UpdateApplication(appPaths, updateArchive, logger, serviceName);
// And just let the app exit so it can update
return true;
diff --git a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj
index d999841ca7..b49e100ab2 100644
--- a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj
+++ b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj
@@ -145,6 +145,7 @@
SplashForm.cs
+
diff --git a/MediaBrowser.Common.Implementations/Updates/ApplicationUpdater.cs b/MediaBrowser.ServerApplication/Updates/ApplicationUpdater.cs
similarity index 86%
rename from MediaBrowser.Common.Implementations/Updates/ApplicationUpdater.cs
rename to MediaBrowser.ServerApplication/Updates/ApplicationUpdater.cs
index e24ff30645..9f3e44cb0f 100644
--- a/MediaBrowser.Common.Implementations/Updates/ApplicationUpdater.cs
+++ b/MediaBrowser.ServerApplication/Updates/ApplicationUpdater.cs
@@ -3,14 +3,8 @@ using MediaBrowser.Model.Logging;
using System.Diagnostics;
using System.IO;
-namespace MediaBrowser.Common.Implementations.Updates
+namespace MediaBrowser.ServerApplication.Updates
{
- public enum MBApplication
- {
- MBServer,
- MBTheater
- }
-
///
/// Update the specified application using the specified archive
///
@@ -18,7 +12,7 @@ namespace MediaBrowser.Common.Implementations.Updates
{
private const string UpdaterExe = "Mediabrowser.Updater.exe";
private const string UpdaterDll = "Mediabrowser.InstallUtil.dll";
- public void UpdateApplication(MBApplication app, IApplicationPaths appPaths, string archive, ILogger logger, string restartServiceName)
+ public void UpdateApplication(IApplicationPaths appPaths, string archive, ILogger logger, string restartServiceName)
{
// First see if there is a version file and read that in
var version = "Unknown";
@@ -39,7 +33,7 @@ namespace MediaBrowser.Common.Implementations.Updates
logger.Info("Copying updater dependencies to temporary location");
File.Copy(source, tempUpdaterDll, true);
- var product = app == MBApplication.MBTheater ? "mbt" : "server";
+ const string product = "server";
// Our updater needs SS and ionic
source = Path.Combine(appPaths.ProgramSystemPath, "ServiceStack.Text.dll");
File.Copy(source, Path.Combine(Path.GetTempPath(), "ServiceStack.Text.dll"), true);
diff --git a/Nuget/MediaBrowser.Common.Internal.nuspec b/Nuget/MediaBrowser.Common.Internal.nuspec
index c550b350c6..a3b4533dd9 100644
--- a/Nuget/MediaBrowser.Common.Internal.nuspec
+++ b/Nuget/MediaBrowser.Common.Internal.nuspec
@@ -2,7 +2,7 @@
MediaBrowser.Common.Internal
- 3.0.345
+ 3.0.346
MediaBrowser.Common.Internal
Luke
ebr,Luke,scottisafool
@@ -12,7 +12,7 @@
Contains common components shared by Media Browser Theater and Media Browser Server. Not intended for plugin developer consumption.
Copyright © Media Browser 2013
-
+
diff --git a/Nuget/MediaBrowser.Common.nuspec b/Nuget/MediaBrowser.Common.nuspec
index a6fa5c152c..b80f673e38 100644
--- a/Nuget/MediaBrowser.Common.nuspec
+++ b/Nuget/MediaBrowser.Common.nuspec
@@ -2,7 +2,7 @@
MediaBrowser.Common
- 3.0.345
+ 3.0.346
MediaBrowser.Common
Media Browser Team
ebr,Luke,scottisafool
diff --git a/Nuget/MediaBrowser.Server.Core.nuspec b/Nuget/MediaBrowser.Server.Core.nuspec
index cc87b00300..eccfcccd2a 100644
--- a/Nuget/MediaBrowser.Server.Core.nuspec
+++ b/Nuget/MediaBrowser.Server.Core.nuspec
@@ -2,7 +2,7 @@
MediaBrowser.Server.Core
- 3.0.345
+ 3.0.346
Media Browser.Server.Core
Media Browser Team
ebr,Luke,scottisafool
@@ -12,7 +12,7 @@
Contains core components required to build plugins for Media Browser Server.
Copyright © Media Browser 2013
-
+