diff options
Diffstat (limited to 'MediaBrowser.Model')
29 files changed, 375 insertions, 135 deletions
diff --git a/MediaBrowser.Model/ApiClient/IApiClient.cs b/MediaBrowser.Model/ApiClient/IApiClient.cs index e52e7535b..6107c0fbe 100644 --- a/MediaBrowser.Model/ApiClient/IApiClient.cs +++ b/MediaBrowser.Model/ApiClient/IApiClient.cs @@ -320,32 +320,11 @@ namespace MediaBrowser.Model.ApiClient Task<ItemsResult> GetUserViews(string userId, CancellationToken cancellationToken = default(CancellationToken)); /// <summary> - /// Gets the instant mix from song async. + /// Gets the instant mix from item asynchronous. /// </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(SimilarItemsQuery query); - - /// <summary> - /// Gets the instant mix from music genre async. - /// </summary> - /// <param name="query">The query.</param> - /// <returns>Task{ItemsResult}.</returns> - Task<ItemsResult> GetInstantMixFromMusicGenreAsync(SimilarItemsQuery query); + /// <returns>Task<ItemsResult>.</returns> + Task<ItemsResult> GetInstantMixFromItemAsync(SimilarItemsQuery query); /// <summary> /// Gets the similar movies async. @@ -353,39 +332,7 @@ namespace MediaBrowser.Model.ApiClient /// <param name="query">The query.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task{ItemsResult}.</returns> - Task<ItemsResult> GetSimilarMoviesAsync(SimilarItemsQuery query, CancellationToken cancellationToken = default(CancellationToken)); - - /// <summary> - /// Gets the similar trailers async. - /// </summary> - /// <param name="query">The query.</param> - /// <param name="cancellationToken">The cancellation token.</param> - /// <returns>Task{ItemsResult}.</returns> - Task<ItemsResult> GetSimilarTrailersAsync(SimilarItemsQuery query, CancellationToken cancellationToken = default(CancellationToken)); - - /// <summary> - /// Gets the similar series async. - /// </summary> - /// <param name="query">The query.</param> - /// <param name="cancellationToken">The cancellation token.</param> - /// <returns>Task{ItemsResult}.</returns> - Task<ItemsResult> GetSimilarSeriesAsync(SimilarItemsQuery query, CancellationToken cancellationToken = default(CancellationToken)); - - /// <summary> - /// Gets the similar albums async. - /// </summary> - /// <param name="query">The query.</param> - /// <param name="cancellationToken">The cancellation token.</param> - /// <returns>Task{ItemsResult}.</returns> - Task<ItemsResult> GetSimilarAlbumsAsync(SimilarItemsQuery query, CancellationToken cancellationToken = default(CancellationToken)); - - /// <summary> - /// Gets the similar games async. - /// </summary> - /// <param name="query">The query.</param> - /// <param name="cancellationToken">The cancellation token.</param> - /// <returns>Task{ItemsResult}.</returns> - Task<ItemsResult> GetSimilarGamesAsync(SimilarItemsQuery query, CancellationToken cancellationToken = default(CancellationToken)); + Task<ItemsResult> GetSimilarItemsAsync(SimilarItemsQuery query, CancellationToken cancellationToken = default(CancellationToken)); /// <summary> /// Gets the people async. @@ -443,20 +390,6 @@ namespace MediaBrowser.Model.ApiClient Task<ItemsResult> GetGenresAsync(ItemsByNameQuery query); /// <summary> - /// Gets the music genres async. - /// </summary> - /// <param name="query">The query.</param> - /// <returns>Task{ItemsResult}.</returns> - Task<ItemsResult> GetMusicGenresAsync(ItemsByNameQuery query); - - /// <summary> - /// Gets the game genres async. - /// </summary> - /// <param name="query">The query.</param> - /// <returns>Task{ItemsResult}.</returns> - Task<ItemsResult> GetGameGenresAsync(ItemsByNameQuery query); - - /// <summary> /// Gets the studios async. /// </summary> /// <param name="query">The query.</param> @@ -1195,14 +1128,6 @@ namespace MediaBrowser.Model.ApiClient Task CancelLiveTvSeriesTimerAsync(string id, CancellationToken cancellationToken = default(CancellationToken)); /// <summary> - /// Deletes the live tv recording asynchronous. - /// </summary> - /// <param name="id">The identifier.</param> - /// <param name="cancellationToken">The cancellation token.</param> - /// <returns>Task.</returns> - Task DeleteLiveTvRecordingAsync(string id, CancellationToken cancellationToken = default(CancellationToken)); - - /// <summary> /// Gets the default timer information. /// </summary> /// <param name="cancellationToken">The cancellation token.</param> diff --git a/MediaBrowser.Model/Channels/ChannelQuery.cs b/MediaBrowser.Model/Channels/ChannelQuery.cs index 3c6e43fde..b63d797f4 100644 --- a/MediaBrowser.Model/Channels/ChannelQuery.cs +++ b/MediaBrowser.Model/Channels/ChannelQuery.cs @@ -1,8 +1,20 @@ -namespace MediaBrowser.Model.Channels +using MediaBrowser.Model.Entities; +using MediaBrowser.Model.Querying; + +namespace MediaBrowser.Model.Channels { public class ChannelQuery { /// <summary> + /// Fields to return within the items, in addition to basic information + /// </summary> + /// <value>The fields.</value> + public ItemFields[] Fields { get; set; } + public bool? EnableImages { get; set; } + public int? ImageTypeLimit { get; set; } + public ImageType[] EnableImageTypes { get; set; } + + /// <summary> /// Gets or sets the user identifier. /// </summary> /// <value>The user identifier.</value> diff --git a/MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs b/MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs index ca9db0bf0..2b53c6688 100644 --- a/MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs +++ b/MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs @@ -63,10 +63,6 @@ namespace MediaBrowser.Model.Configuration { EnableAutoUpdate = true; LogFileRetentionDays = 3; - -#if (DEBUG) - EnableDebugLevelLogging = true; -#endif } } } diff --git a/MediaBrowser.Model/Configuration/ChannelOptions.cs b/MediaBrowser.Model/Configuration/ChannelOptions.cs index dfefa4edc..9bd0ef9c5 100644 --- a/MediaBrowser.Model/Configuration/ChannelOptions.cs +++ b/MediaBrowser.Model/Configuration/ChannelOptions.cs @@ -3,19 +3,6 @@ public class ChannelOptions { public int? PreferredStreamingWidth { get; set; } - public string DownloadPath { get; set; } - public int? MaxDownloadAge { get; set; } - - public string[] DownloadingChannels { get; set; } - - public double? DownloadSizeLimit { get; set; } - - public ChannelOptions() - { - DownloadingChannels = new string[] { }; - DownloadSizeLimit = .5; - MaxDownloadAge = 30; - } } }
\ No newline at end of file diff --git a/MediaBrowser.Model/Configuration/EncodingOptions.cs b/MediaBrowser.Model/Configuration/EncodingOptions.cs index ae714a84e..6d3894f02 100644 --- a/MediaBrowser.Model/Configuration/EncodingOptions.cs +++ b/MediaBrowser.Model/Configuration/EncodingOptions.cs @@ -3,7 +3,7 @@ namespace MediaBrowser.Model.Configuration { public class EncodingOptions { - public EncodingQuality EncodingQuality { get; set; } + public int EncodingThreadCount { get; set; } public string TranscodingTempPath { get; set; } public double DownMixAudioBoost { get; set; } public string H264Encoder { get; set; } @@ -15,9 +15,9 @@ namespace MediaBrowser.Model.Configuration { H264Encoder = "libx264"; DownMixAudioBoost = 2; - EncodingQuality = EncodingQuality.Auto; EnableThrottling = true; ThrottleThresholdInSeconds = 120; + EncodingThreadCount = -1; } } } diff --git a/MediaBrowser.Model/Configuration/EncodingQuality.cs b/MediaBrowser.Model/Configuration/EncodingQuality.cs deleted file mode 100644 index ba5a1f279..000000000 --- a/MediaBrowser.Model/Configuration/EncodingQuality.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace MediaBrowser.Model.Configuration -{ - public enum EncodingQuality - { - Auto, - HighSpeed, - HighQuality, - MaxQuality - } -}
\ No newline at end of file diff --git a/MediaBrowser.Model/Configuration/ServerConfiguration.cs b/MediaBrowser.Model/Configuration/ServerConfiguration.cs index 19403a55e..9f95953cf 100644 --- a/MediaBrowser.Model/Configuration/ServerConfiguration.cs +++ b/MediaBrowser.Model/Configuration/ServerConfiguration.cs @@ -99,6 +99,12 @@ namespace MediaBrowser.Model.Configuration public bool EnableLocalizedGuids { get; set; } /// <summary> + /// Gets or sets a value indicating whether [disable startup scan]. + /// </summary> + /// <value><c>true</c> if [disable startup scan]; otherwise, <c>false</c>.</value> + public bool DisableStartupScan { get; set; } + + /// <summary> /// Gets or sets a value indicating whether [enable library metadata sub folder]. /// </summary> /// <value><c>true</c> if [enable library metadata sub folder]; otherwise, <c>false</c>.</value> @@ -213,11 +219,16 @@ namespace MediaBrowser.Model.Configuration public int SharingExpirationDays { get; set; } + public bool DisableXmlSavers { get; set; } + public bool EnableWindowsShortcuts { get; set; } + + public bool EnableVideoFrameAnalysis { get; set; } + public long VideoFrameAnalysisLimitBytes { get; set; } + /// <summary> /// Initializes a new instance of the <see cref="ServerConfiguration" /> class. /// </summary> public ServerConfiguration() - : base() { ImageSavingConvention = ImageSavingConvention.Compatible; PublicPort = 8096; @@ -262,6 +273,9 @@ namespace MediaBrowser.Model.Configuration PeopleMetadataOptions = new PeopleMetadataOptions(); + EnableVideoFrameAnalysis = true; + VideoFrameAnalysisLimitBytes = 600000000; + InsecureApps9 = new[] { "Chromecast", @@ -283,7 +297,59 @@ namespace MediaBrowser.Model.Configuration { new ImageOption { - Limit = 2, + Limit = 1, + MinWidth = 1280, + Type = ImageType.Backdrop + }, + + // Don't download this by default as it's rarely used. + new ImageOption + { + Limit = 0, + Type = ImageType.Art + }, + + // Don't download this by default as it's rarely used. + new ImageOption + { + Limit = 0, + Type = ImageType.Disc + }, + + new ImageOption + { + Limit = 1, + Type = ImageType.Primary + }, + + new ImageOption + { + Limit = 0, + Type = ImageType.Banner + }, + + new ImageOption + { + Limit = 1, + Type = ImageType.Thumb + }, + + new ImageOption + { + Limit = 1, + Type = ImageType.Logo + } + } + }, + + new MetadataOptions(1, 1280) + { + ItemType = "MusicVideo", + ImageOptions = new [] + { + new ImageOption + { + Limit = 1, MinWidth = 1280, Type = ImageType.Backdrop }, @@ -335,7 +401,7 @@ namespace MediaBrowser.Model.Configuration { new ImageOption { - Limit = 2, + Limit = 1, MinWidth = 1280, Type = ImageType.Backdrop }, @@ -432,9 +498,89 @@ namespace MediaBrowser.Model.Configuration } }, + new MetadataOptions(1, 1280) + { + ItemType = "BoxSet", + ImageOptions = new [] + { + new ImageOption + { + Limit = 1, + MinWidth = 1280, + Type = ImageType.Backdrop + }, + + new ImageOption + { + Limit = 1, + Type = ImageType.Primary + }, + + new ImageOption + { + Limit = 1, + Type = ImageType.Thumb + }, + + new ImageOption + { + Limit = 1, + Type = ImageType.Logo + }, + + // Don't download this by default as it's rarely used. + new ImageOption + { + Limit = 0, + Type = ImageType.Art + }, + + // Don't download this by default as it's rarely used. + new ImageOption + { + Limit = 0, + Type = ImageType.Disc + }, + + // Don't download this by default as it's rarely used. + new ImageOption + { + Limit = 0, + Type = ImageType.Banner + } + } + }, + new MetadataOptions(0, 1280) { - ItemType = "Season" + ItemType = "Season", + ImageOptions = new [] + { + new ImageOption + { + Limit = 0, + MinWidth = 1280, + Type = ImageType.Backdrop + }, + + new ImageOption + { + Limit = 1, + Type = ImageType.Primary + }, + + new ImageOption + { + Limit = 0, + Type = ImageType.Banner + }, + + new ImageOption + { + Limit = 0, + Type = ImageType.Thumb + } + } } }; } diff --git a/MediaBrowser.Model/Configuration/UserConfiguration.cs b/MediaBrowser.Model/Configuration/UserConfiguration.cs index 9dd84bc7d..349780958 100644 --- a/MediaBrowser.Model/Configuration/UserConfiguration.cs +++ b/MediaBrowser.Model/Configuration/UserConfiguration.cs @@ -50,6 +50,7 @@ namespace MediaBrowser.Model.Configuration public string[] PlainFolderViews { get; set; } public bool HidePlayedInLatest { get; set; } + public bool DisplayChannelsInline { get; set; } /// <summary> /// Initializes a new instance of the <see cref="UserConfiguration" /> class. diff --git a/MediaBrowser.Model/Dlna/StreamBuilder.cs b/MediaBrowser.Model/Dlna/StreamBuilder.cs index d1abda17e..e0cc1b705 100644 --- a/MediaBrowser.Model/Dlna/StreamBuilder.cs +++ b/MediaBrowser.Model/Dlna/StreamBuilder.cs @@ -735,7 +735,12 @@ namespace MediaBrowser.Model.Dlna continue; } - if (profile.Method == SubtitleDeliveryMethod.Embed && subtitleStream.IsTextSubtitleStream == MediaStream.IsTextFormat(profile.Format)) + if (profile.Method != SubtitleDeliveryMethod.Embed) + { + continue; + } + + if (subtitleStream.IsTextSubtitleStream == MediaStream.IsTextFormat(profile.Format) && StringHelper.EqualsIgnoreCase(profile.Format, subtitleStream.Codec)) { return profile; } @@ -772,20 +777,6 @@ namespace MediaBrowser.Model.Dlna } } - // Look for supported embedded subs that we can just mux into the output - foreach (SubtitleProfile profile in subtitleProfiles) - { - if (!profile.SupportsLanguage(subtitleStream.Language)) - { - continue; - } - - if (profile.Method == SubtitleDeliveryMethod.Embed && subtitleStream.IsTextSubtitleStream == MediaStream.IsTextFormat(profile.Format)) - { - return profile; - } - } - return new SubtitleProfile { Method = SubtitleDeliveryMethod.Encode, diff --git a/MediaBrowser.Model/Dto/BaseItemDto.cs b/MediaBrowser.Model/Dto/BaseItemDto.cs index 7c5d9e9a1..a1c075563 100644 --- a/MediaBrowser.Model/Dto/BaseItemDto.cs +++ b/MediaBrowser.Model/Dto/BaseItemDto.cs @@ -646,6 +646,7 @@ namespace MediaBrowser.Model.Dto /// Gets or sets a value indicating whether [supports playlists]. /// </summary> /// <value><c>true</c> if [supports playlists]; otherwise, <c>false</c>.</value> + [IgnoreDataMember] public bool SupportsPlaylists { get @@ -1080,6 +1081,15 @@ namespace MediaBrowser.Model.Dto get { return StringHelper.EqualsIgnoreCase(Type, "Studio"); } } + [IgnoreDataMember] + public bool SupportsSimilarItems + { + get + { + return IsType("Movie") || IsType("Series") || IsType("MusicAlbum") || IsType("MusicArtist") || IsType("Program") || IsType("Recording") || IsType("ChannelVideoItem") || IsType("Game"); + } + } + /// <summary> /// Occurs when [property changed]. /// </summary> @@ -1185,6 +1195,10 @@ namespace MediaBrowser.Model.Dto /// </summary> /// <value>The timer identifier.</value> public string TimerId { get; set; } - + /// <summary> + /// Gets or sets the current program. + /// </summary> + /// <value>The current program.</value> + public BaseItemDto CurrentProgram { get; set; } } } diff --git a/MediaBrowser.Model/Entities/MediaStream.cs b/MediaBrowser.Model/Entities/MediaStream.cs index 0aaa8035c..519d3a04c 100644 --- a/MediaBrowser.Model/Entities/MediaStream.cs +++ b/MediaBrowser.Model/Entities/MediaStream.cs @@ -1,4 +1,6 @@ -using MediaBrowser.Model.Dlna; +using System.Collections.Generic; +using System.Runtime.Serialization; +using MediaBrowser.Model.Dlna; using MediaBrowser.Model.Extensions; using System.Diagnostics; @@ -225,5 +227,8 @@ namespace MediaBrowser.Model.Entities /// </summary> /// <value><c>null</c> if [is cabac] contains no value, <c>true</c> if [is cabac]; otherwise, <c>false</c>.</value> public bool? IsCabac { get; set; } + + [IgnoreDataMember] + public List<int> KeyFrames { get; set; } } } diff --git a/MediaBrowser.Model/LiveTv/LiveTvChannelQuery.cs b/MediaBrowser.Model/LiveTv/LiveTvChannelQuery.cs index 900537b7a..3a6ad0444 100644 --- a/MediaBrowser.Model/LiveTv/LiveTvChannelQuery.cs +++ b/MediaBrowser.Model/LiveTv/LiveTvChannelQuery.cs @@ -53,5 +53,11 @@ namespace MediaBrowser.Model.LiveTv /// </summary> /// <value>The limit.</value> public int? Limit { get; set; } + + /// <summary> + /// Gets or sets a value indicating whether [add current program]. + /// </summary> + /// <value><c>true</c> if [add current program]; otherwise, <c>false</c>.</value> + public bool AddCurrentProgram { get; set; } } } diff --git a/MediaBrowser.Model/LiveTv/LiveTvOptions.cs b/MediaBrowser.Model/LiveTv/LiveTvOptions.cs index c6f6ed84c..2b45422ec 100644 --- a/MediaBrowser.Model/LiveTv/LiveTvOptions.cs +++ b/MediaBrowser.Model/LiveTv/LiveTvOptions.cs @@ -1,13 +1,50 @@ -namespace MediaBrowser.Model.LiveTv +using System.Collections.Generic; + +namespace MediaBrowser.Model.LiveTv { public class LiveTvOptions { public int? GuideDays { get; set; } public bool EnableMovieProviders { get; set; } + public string RecordingPath { get; set; } + public bool EnableAutoOrganize { get; set; } + + public List<TunerHostInfo> TunerHosts { get; set; } + public List<ListingsProviderInfo> ListingProviders { get; set; } + public int PrePaddingSeconds { get; set; } + public int PostPaddingSeconds { get; set; } + public LiveTvOptions() { EnableMovieProviders = true; + TunerHosts = new List<TunerHostInfo>(); + ListingProviders = new List<ListingsProviderInfo>(); } } + + public class TunerHostInfo + { + public string Id { get; set; } + public string Url { get; set; } + public string Type { get; set; } + public bool ImportFavoritesOnly { get; set; } + public bool IsEnabled { get; set; } + + public TunerHostInfo() + { + IsEnabled = true; + } + } + + public class ListingsProviderInfo + { + public string Id { get; set; } + public string Type { get; set; } + public string Username { get; set; } + public string Password { get; set; } + public string ListingsId { get; set; } + public string ZipCode { get; set; } + public string Country { get; set; } + } }
\ No newline at end of file diff --git a/MediaBrowser.Model/LiveTv/LiveTvServiceInfo.cs b/MediaBrowser.Model/LiveTv/LiveTvServiceInfo.cs index 264870ffb..25d3b289f 100644 --- a/MediaBrowser.Model/LiveTv/LiveTvServiceInfo.cs +++ b/MediaBrowser.Model/LiveTv/LiveTvServiceInfo.cs @@ -42,6 +42,11 @@ namespace MediaBrowser.Model.LiveTv /// </summary> /// <value><c>true</c> if this instance has update available; otherwise, <c>false</c>.</value> public bool HasUpdateAvailable { get; set; } + /// <summary> + /// Gets or sets a value indicating whether this instance is visible. + /// </summary> + /// <value><c>true</c> if this instance is visible; otherwise, <c>false</c>.</value> + public bool IsVisible { get; set; } public List<LiveTvTunerInfoDto> Tuners { get; set; } diff --git a/MediaBrowser.Model/LiveTv/ProgramQuery.cs b/MediaBrowser.Model/LiveTv/ProgramQuery.cs index c19ba54bd..7a877e356 100644 --- a/MediaBrowser.Model/LiveTv/ProgramQuery.cs +++ b/MediaBrowser.Model/LiveTv/ProgramQuery.cs @@ -1,5 +1,6 @@ using MediaBrowser.Model.Entities; using System; +using MediaBrowser.Model.Querying; namespace MediaBrowser.Model.LiveTv { @@ -16,6 +17,15 @@ namespace MediaBrowser.Model.LiveTv } /// <summary> + /// Fields to return within the items, in addition to basic information + /// </summary> + /// <value>The fields.</value> + public ItemFields[] Fields { get; set; } + public bool? EnableImages { get; set; } + public int? ImageTypeLimit { get; set; } + public ImageType[] EnableImageTypes { get; set; } + + /// <summary> /// Gets or sets the channel ids. /// </summary> /// <value>The channel ids.</value> @@ -54,6 +64,11 @@ namespace MediaBrowser.Model.LiveTv public bool? IsMovie { get; set; } /// <summary> + /// Gets or sets a value indicating whether this instance is kids. + /// </summary> + /// <value><c>null</c> if [is kids] contains no value, <c>true</c> if [is kids]; otherwise, <c>false</c>.</value> + public bool? IsKids { get; set; } + /// <summary> /// Gets or sets a value indicating whether this instance is sports. /// </summary> /// <value><c>null</c> if [is sports] contains no value, <c>true</c> if [is sports]; otherwise, <c>false</c>.</value> diff --git a/MediaBrowser.Model/LiveTv/RecommendedProgramQuery.cs b/MediaBrowser.Model/LiveTv/RecommendedProgramQuery.cs index 4a8ae2365..e83a8fda6 100644 --- a/MediaBrowser.Model/LiveTv/RecommendedProgramQuery.cs +++ b/MediaBrowser.Model/LiveTv/RecommendedProgramQuery.cs @@ -1,8 +1,20 @@ -namespace MediaBrowser.Model.LiveTv +using MediaBrowser.Model.Entities; +using MediaBrowser.Model.Querying; + +namespace MediaBrowser.Model.LiveTv { public class RecommendedProgramQuery { /// <summary> + /// Fields to return within the items, in addition to basic information + /// </summary> + /// <value>The fields.</value> + public ItemFields[] Fields { get; set; } + public bool? EnableImages { get; set; } + public int? ImageTypeLimit { get; set; } + public ImageType[] EnableImageTypes { get; set; } + + /// <summary> /// Gets or sets the user identifier. /// </summary> /// <value>The user identifier.</value> @@ -32,6 +44,11 @@ /// <value><c>null</c> if [is movie] contains no value, <c>true</c> if [is movie]; otherwise, <c>false</c>.</value> public bool? IsMovie { get; set; } /// <summary> + /// Gets or sets a value indicating whether this instance is kids. + /// </summary> + /// <value><c>null</c> if [is kids] contains no value, <c>true</c> if [is kids]; otherwise, <c>false</c>.</value> + public bool? IsKids { get; set; } + /// <summary> /// Gets or sets a value indicating whether this instance is sports. /// </summary> /// <value><c>null</c> if [is sports] contains no value, <c>true</c> if [is sports]; otherwise, <c>false</c>.</value> diff --git a/MediaBrowser.Model/LiveTv/RecordingQuery.cs b/MediaBrowser.Model/LiveTv/RecordingQuery.cs index daa137db6..0cf997602 100644 --- a/MediaBrowser.Model/LiveTv/RecordingQuery.cs +++ b/MediaBrowser.Model/LiveTv/RecordingQuery.cs @@ -1,4 +1,7 @@ -namespace MediaBrowser.Model.LiveTv +using MediaBrowser.Model.Entities; +using MediaBrowser.Model.Querying; + +namespace MediaBrowser.Model.LiveTv { /// <summary> /// Class RecordingQuery. @@ -58,5 +61,14 @@ /// </summary> /// <value>The series timer identifier.</value> public string SeriesTimerId { get; set; } + + /// <summary> + /// Fields to return within the items, in addition to basic information + /// </summary> + /// <value>The fields.</value> + public ItemFields[] Fields { get; set; } + public bool? EnableImages { get; set; } + public int? ImageTypeLimit { get; set; } + public ImageType[] EnableImageTypes { get; set; } } } diff --git a/MediaBrowser.Model/LiveTv/SeriesTimerInfoDto.cs b/MediaBrowser.Model/LiveTv/SeriesTimerInfoDto.cs index 7c590307f..4b88e42f3 100644 --- a/MediaBrowser.Model/LiveTv/SeriesTimerInfoDto.cs +++ b/MediaBrowser.Model/LiveTv/SeriesTimerInfoDto.cs @@ -6,6 +6,9 @@ using System.Runtime.Serialization; namespace MediaBrowser.Model.LiveTv { + /// <summary> + /// Class SeriesTimerInfoDto. + /// </summary> [DebuggerDisplay("Name = {Name}")] public class SeriesTimerInfoDto : BaseTimerInfoDto { diff --git a/MediaBrowser.Model/MediaBrowser.Model.csproj b/MediaBrowser.Model/MediaBrowser.Model.csproj index b36fa2362..19c5c833a 100644 --- a/MediaBrowser.Model/MediaBrowser.Model.csproj +++ b/MediaBrowser.Model/MediaBrowser.Model.csproj @@ -159,7 +159,6 @@ <Compile Include="FileOrganization\TvFileOrganizationOptions.cs" /> <Compile Include="Configuration\BaseApplicationConfiguration.cs" /> <Compile Include="Configuration\DlnaOptions.cs" /> - <Compile Include="Configuration\EncodingQuality.cs" /> <Compile Include="Configuration\ImageOption.cs" /> <Compile Include="Configuration\ImageSavingConvention.cs" /> <Compile Include="LiveTv\LiveTvOptions.cs" /> @@ -169,6 +168,8 @@ <Compile Include="Configuration\MetadataPluginType.cs" /> <Compile Include="Dlna\SubtitleProfile.cs" /> <Compile Include="MediaInfo\MediaProtocol.cs" /> + <Compile Include="MediaInfo\SubtitleTrackEvent.cs" /> + <Compile Include="MediaInfo\SubtitleTrackInfo.cs" /> <Compile Include="Net\HttpResponse.cs" /> <Compile Include="Net\MimeTypes.cs" /> <Compile Include="Notifications\NotificationOption.cs" /> diff --git a/MediaBrowser.Model/MediaInfo/SubtitleTrackEvent.cs b/MediaBrowser.Model/MediaInfo/SubtitleTrackEvent.cs new file mode 100644 index 000000000..b4ab6ed97 --- /dev/null +++ b/MediaBrowser.Model/MediaInfo/SubtitleTrackEvent.cs @@ -0,0 +1,11 @@ + +namespace MediaBrowser.Model.MediaInfo +{ + public class SubtitleTrackEvent + { + public string Id { get; set; } + public string Text { get; set; } + public long StartPositionTicks { get; set; } + public long EndPositionTicks { get; set; } + } +} diff --git a/MediaBrowser.Model/MediaInfo/SubtitleTrackInfo.cs b/MediaBrowser.Model/MediaInfo/SubtitleTrackInfo.cs new file mode 100644 index 000000000..765cfe32f --- /dev/null +++ b/MediaBrowser.Model/MediaInfo/SubtitleTrackInfo.cs @@ -0,0 +1,14 @@ +using System.Collections.Generic; + +namespace MediaBrowser.Model.MediaInfo +{ + public class SubtitleTrackInfo + { + public List<SubtitleTrackEvent> TrackEvents { get; set; } + + public SubtitleTrackInfo() + { + TrackEvents = new List<SubtitleTrackEvent>(); + } + } +} diff --git a/MediaBrowser.Model/Search/SearchHint.cs b/MediaBrowser.Model/Search/SearchHint.cs index 4eced7706..d51c0325d 100644 --- a/MediaBrowser.Model/Search/SearchHint.cs +++ b/MediaBrowser.Model/Search/SearchHint.cs @@ -132,5 +132,17 @@ namespace MediaBrowser.Model.Search /// </summary> /// <value>The episode count.</value> public int? EpisodeCount { get; set; } + + /// <summary> + /// Gets or sets the channel identifier. + /// </summary> + /// <value>The channel identifier.</value> + public string ChannelId { get; set; } + + /// <summary> + /// Gets or sets the name of the channel. + /// </summary> + /// <value>The name of the channel.</value> + public string ChannelName { get; set; } } } diff --git a/MediaBrowser.Model/Session/GeneralCommandType.cs b/MediaBrowser.Model/Session/GeneralCommandType.cs index f8773a246..79220f066 100644 --- a/MediaBrowser.Model/Session/GeneralCommandType.cs +++ b/MediaBrowser.Model/Session/GeneralCommandType.cs @@ -33,6 +33,7 @@ ToggleFullscreen = 25, DisplayContent = 26, GoToSearch = 27, - DisplayMessage = 28 + DisplayMessage = 28, + SetRepeatMode = 29 } }
\ No newline at end of file diff --git a/MediaBrowser.Model/Session/PlaybackProgressInfo.cs b/MediaBrowser.Model/Session/PlaybackProgressInfo.cs index a7ca09c15..345931a62 100644 --- a/MediaBrowser.Model/Session/PlaybackProgressInfo.cs +++ b/MediaBrowser.Model/Session/PlaybackProgressInfo.cs @@ -88,5 +88,17 @@ namespace MediaBrowser.Model.Session /// </summary> /// <value>The play session identifier.</value> public string PlaySessionId { get; set; } + /// <summary> + /// Gets or sets the repeat mode. + /// </summary> + /// <value>The repeat mode.</value> + public RepeatMode RepeatMode { get; set; } + } + + public enum RepeatMode + { + RepeatNone = 0, + RepeatAll = 1, + RepeatOne = 2 } }
\ No newline at end of file diff --git a/MediaBrowser.Model/Session/PlayerStateInfo.cs b/MediaBrowser.Model/Session/PlayerStateInfo.cs index c9afef8e0..f78842e29 100644 --- a/MediaBrowser.Model/Session/PlayerStateInfo.cs +++ b/MediaBrowser.Model/Session/PlayerStateInfo.cs @@ -55,5 +55,11 @@ /// </summary> /// <value>The play method.</value> public PlayMethod? PlayMethod { get; set; } + + /// <summary> + /// Gets or sets the repeat mode. + /// </summary> + /// <value>The repeat mode.</value> + public RepeatMode RepeatMode { get; set; } } }
\ No newline at end of file diff --git a/MediaBrowser.Model/Session/SessionInfoDto.cs b/MediaBrowser.Model/Session/SessionInfoDto.cs index 98df3efe5..da8ab9b8a 100644 --- a/MediaBrowser.Model/Session/SessionInfoDto.cs +++ b/MediaBrowser.Model/Session/SessionInfoDto.cs @@ -99,6 +99,12 @@ namespace MediaBrowser.Model.Session /// </summary> /// <value>The device id.</value> public string DeviceId { get; set; } + + /// <summary> + /// Gets or sets the application icon URL. + /// </summary> + /// <value>The application icon URL.</value> + public string AppIconUrl { get; set; } /// <summary> /// Gets or sets a value indicating whether [supports remote control]. diff --git a/MediaBrowser.Model/System/SystemInfo.cs b/MediaBrowser.Model/System/SystemInfo.cs index 8c1fc759f..094c4fda6 100644 --- a/MediaBrowser.Model/System/SystemInfo.cs +++ b/MediaBrowser.Model/System/SystemInfo.cs @@ -13,6 +13,11 @@ namespace MediaBrowser.Model.System /// </summary> /// <value>The operating sytem.</value> public string OperatingSystem { get; set; } + /// <summary> + /// Gets or sets the display name of the operating system. + /// </summary> + /// <value>The display name of the operating system.</value> + public string OperatingSystemDisplayName { get; set; } /// <summary> /// Gets or sets a value indicating whether this instance is running as service. diff --git a/MediaBrowser.Model/Updates/PackageInfo.cs b/MediaBrowser.Model/Updates/PackageInfo.cs index 5945f87ad..191deeb8f 100644 --- a/MediaBrowser.Model/Updates/PackageInfo.cs +++ b/MediaBrowser.Model/Updates/PackageInfo.cs @@ -160,6 +160,12 @@ namespace MediaBrowser.Model.Updates public bool enableInAppStore { get; set; } /// <summary> + /// Gets or sets the installs. + /// </summary> + /// <value>The installs.</value> + public int installs { get; set; } + + /// <summary> /// Initializes a new instance of the <see cref="PackageInfo"/> class. /// </summary> public PackageInfo() diff --git a/MediaBrowser.Model/Users/UserPolicy.cs b/MediaBrowser.Model/Users/UserPolicy.cs index b3040d6f8..16b4b673d 100644 --- a/MediaBrowser.Model/Users/UserPolicy.cs +++ b/MediaBrowser.Model/Users/UserPolicy.cs @@ -80,6 +80,10 @@ namespace MediaBrowser.Model.Users EnableLiveTvManagement = true; EnableLiveTvAccess = true; + // Without this on by default, admins won't be able to do this + // Improve in the future + EnableLiveTvManagement = true; + EnableSharedDeviceControl = true; BlockedTags = new string[] { }; |
