aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Model')
-rw-r--r--MediaBrowser.Model/ApiClient/IApiClient.cs83
-rw-r--r--MediaBrowser.Model/Channels/ChannelQuery.cs14
-rw-r--r--MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs4
-rw-r--r--MediaBrowser.Model/Configuration/ChannelOptions.cs13
-rw-r--r--MediaBrowser.Model/Configuration/EncodingOptions.cs4
-rw-r--r--MediaBrowser.Model/Configuration/EncodingQuality.cs10
-rw-r--r--MediaBrowser.Model/Configuration/ServerConfiguration.cs154
-rw-r--r--MediaBrowser.Model/Configuration/UserConfiguration.cs1
-rw-r--r--MediaBrowser.Model/Dlna/StreamBuilder.cs21
-rw-r--r--MediaBrowser.Model/Dto/BaseItemDto.cs16
-rw-r--r--MediaBrowser.Model/Entities/MediaStream.cs7
-rw-r--r--MediaBrowser.Model/LiveTv/LiveTvChannelQuery.cs6
-rw-r--r--MediaBrowser.Model/LiveTv/LiveTvOptions.cs39
-rw-r--r--MediaBrowser.Model/LiveTv/LiveTvServiceInfo.cs5
-rw-r--r--MediaBrowser.Model/LiveTv/ProgramQuery.cs15
-rw-r--r--MediaBrowser.Model/LiveTv/RecommendedProgramQuery.cs19
-rw-r--r--MediaBrowser.Model/LiveTv/RecordingQuery.cs14
-rw-r--r--MediaBrowser.Model/LiveTv/SeriesTimerInfoDto.cs3
-rw-r--r--MediaBrowser.Model/MediaBrowser.Model.csproj3
-rw-r--r--MediaBrowser.Model/MediaInfo/SubtitleTrackEvent.cs11
-rw-r--r--MediaBrowser.Model/MediaInfo/SubtitleTrackInfo.cs14
-rw-r--r--MediaBrowser.Model/Search/SearchHint.cs12
-rw-r--r--MediaBrowser.Model/Session/GeneralCommandType.cs3
-rw-r--r--MediaBrowser.Model/Session/PlaybackProgressInfo.cs12
-rw-r--r--MediaBrowser.Model/Session/PlayerStateInfo.cs6
-rw-r--r--MediaBrowser.Model/Session/SessionInfoDto.cs6
-rw-r--r--MediaBrowser.Model/System/SystemInfo.cs5
-rw-r--r--MediaBrowser.Model/Updates/PackageInfo.cs6
-rw-r--r--MediaBrowser.Model/Users/UserPolicy.cs4
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&lt;ItemsResult&gt;.</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[] { };