diff options
| author | Luke <luke.pulverenti@gmail.com> | 2015-04-14 00:43:41 -0400 |
|---|---|---|
| committer | Luke <luke.pulverenti@gmail.com> | 2015-04-14 00:43:41 -0400 |
| commit | 935de313d58c7a7ba792345c16cfd1c1aad09a78 (patch) | |
| tree | 2e9334986de5864b00d4901f031b5de6a970305e /MediaBrowser.Model | |
| parent | 71a4f2761e784513ae2f3dda03aa549903808ebb (diff) | |
| parent | bd253399c2f1913c544c93fd6927dee37f8add2f (diff) | |
Merge pull request #1079 from MediaBrowser/dev
3.0.5582.0
Diffstat (limited to 'MediaBrowser.Model')
24 files changed, 240 insertions, 50 deletions
diff --git a/MediaBrowser.Model/Configuration/ServerConfiguration.cs b/MediaBrowser.Model/Configuration/ServerConfiguration.cs index c06aedb500..ac9bd6b08f 100644 --- a/MediaBrowser.Model/Configuration/ServerConfiguration.cs +++ b/MediaBrowser.Model/Configuration/ServerConfiguration.cs @@ -200,7 +200,7 @@ namespace MediaBrowser.Model.Configuration public PeopleMetadataOptions PeopleMetadataOptions { get; set; } public bool FindInternetTrailers { get; set; } - public string[] InsecureApps8 { get; set; } + public string[] InsecureApps9 { get; set; } public bool SaveMetadataHidden { get; set; } @@ -208,6 +208,7 @@ namespace MediaBrowser.Model.Configuration public bool EnableAudioArchiveFiles { get; set; } public bool EnableVideoArchiveFiles { get; set; } + public int RemoteClientBitrateLimit { get; set; } /// <summary> /// Initializes a new instance of the <see cref="ServerConfiguration" /> class. @@ -257,7 +258,7 @@ namespace MediaBrowser.Model.Configuration PeopleMetadataOptions = new PeopleMetadataOptions(); - InsecureApps8 = new[] + InsecureApps9 = new[] { "Chromecast", "iOS", @@ -266,7 +267,6 @@ namespace MediaBrowser.Model.Configuration "Media Portal", "iPad", "iPhone", - "Roku", "Windows Phone" }; diff --git a/MediaBrowser.Model/Configuration/UserConfiguration.cs b/MediaBrowser.Model/Configuration/UserConfiguration.cs index 7390af0881..9cd8c1067f 100644 --- a/MediaBrowser.Model/Configuration/UserConfiguration.cs +++ b/MediaBrowser.Model/Configuration/UserConfiguration.cs @@ -7,12 +7,6 @@ namespace MediaBrowser.Model.Configuration public class UserConfiguration { /// <summary> - /// Gets or sets a value indicating whether this instance is administrator. - /// </summary> - /// <value><c>true</c> if this instance is administrator; otherwise, <c>false</c>.</value> - public bool IsAdministrator { get; set; } - - /// <summary> /// Gets or sets the audio language preference. /// </summary> /// <value>The audio language preference.</value> @@ -53,7 +47,6 @@ namespace MediaBrowser.Model.Configuration public string[] LatestItemsExcludes { get; set; } - public bool HasMigratedToPolicy { get; set; } public bool HidePlayedInLatest { get; set; } /// <summary> diff --git a/MediaBrowser.Model/Dlna/StreamBuilder.cs b/MediaBrowser.Model/Dlna/StreamBuilder.cs index bc9f07d04a..daeb50225a 100644 --- a/MediaBrowser.Model/Dlna/StreamBuilder.cs +++ b/MediaBrowser.Model/Dlna/StreamBuilder.cs @@ -1,6 +1,7 @@ using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Extensions; +using MediaBrowser.Model.Logging; using MediaBrowser.Model.MediaInfo; using MediaBrowser.Model.Session; using System; @@ -11,13 +12,16 @@ namespace MediaBrowser.Model.Dlna public class StreamBuilder { private readonly ILocalPlayer _localPlayer; + private readonly ILogger _logger; - public StreamBuilder(ILocalPlayer localPlayer) + public StreamBuilder(ILocalPlayer localPlayer, ILogger logger) { _localPlayer = localPlayer; + _logger = logger; } - public StreamBuilder() - : this(new NullLocalPlayer()) + + public StreamBuilder(ILogger logger) + : this(new NullLocalPlayer(), logger) { } @@ -353,6 +357,12 @@ namespace MediaBrowser.Model.Dlna bool isEligibleForDirectPlay = IsEligibleForDirectPlay(item, GetBitrateForDirectPlayCheck(item, options), subtitleStream, options); bool isEligibleForDirectStream = IsEligibleForDirectPlay(item, options.GetMaxBitrate(), subtitleStream, options); + _logger.Debug("Profile: {0}, Path: {1}, isEligibleForDirectPlay: {2}, isEligibleForDirectStream: {3}", + options.Profile.Name ?? "Unknown Profile", + item.Path ?? "Unknown path", + isEligibleForDirectPlay, + isEligibleForDirectStream); + if (isEligibleForDirectPlay || isEligibleForDirectStream) { // See if it can be direct played @@ -504,6 +514,10 @@ namespace MediaBrowser.Model.Dlna if (directPlay == null) { + _logger.Debug("Profile: {0}, No direct play profiles found for Path: {1}", + profile.Name ?? "Unknown Profile", + mediaSource.Path ?? "Unknown path"); + return null; } @@ -550,6 +564,11 @@ namespace MediaBrowser.Model.Dlna { if (!conditionProcessor.IsVideoConditionSatisfied(i, audioBitrate, audioChannels, width, height, bitDepth, videoBitrate, videoProfile, videoLevel, videoFramerate, packetLength, timestamp, isAnamorphic, isCabac, refFrames, numVideoStreams, numAudioStreams)) { + _logger.Debug("Profile: {0}, DirectPlay=false. Reason=VideoContainerProfile.{1} Path: {2}", + profile.Name ?? "Unknown Profile", + i.Property, + mediaSource.Path ?? "Unknown path"); + return null; } } @@ -558,6 +577,10 @@ namespace MediaBrowser.Model.Dlna if (string.IsNullOrEmpty(videoCodec)) { + _logger.Debug("Profile: {0}, DirectPlay=false. Reason=Unknown video codec. Path: {1}", + profile.Name ?? "Unknown Profile", + mediaSource.Path ?? "Unknown path"); + return null; } @@ -577,6 +600,11 @@ namespace MediaBrowser.Model.Dlna { if (!conditionProcessor.IsVideoConditionSatisfied(i, audioBitrate, audioChannels, width, height, bitDepth, videoBitrate, videoProfile, videoLevel, videoFramerate, packetLength, timestamp, isAnamorphic, isCabac, refFrames, numVideoStreams, numAudioStreams)) { + _logger.Debug("Profile: {0}, DirectPlay=false. Reason=VideoCodecProfile.{1} Path: {2}", + profile.Name ?? "Unknown Profile", + i.Property, + mediaSource.Path ?? "Unknown path"); + return null; } } @@ -587,6 +615,10 @@ namespace MediaBrowser.Model.Dlna if (string.IsNullOrEmpty(audioCodec)) { + _logger.Debug("Profile: {0}, DirectPlay=false. Reason=Unknown audio codec. Path: {1}", + profile.Name ?? "Unknown Profile", + mediaSource.Path ?? "Unknown path"); + return null; } @@ -607,6 +639,11 @@ namespace MediaBrowser.Model.Dlna bool? isSecondaryAudio = audioStream == null ? null : mediaSource.IsSecondaryAudio(audioStream); if (!conditionProcessor.IsVideoAudioConditionSatisfied(i, audioChannels, audioBitrate, audioProfile, isSecondaryAudio)) { + _logger.Debug("Profile: {0}, DirectPlay=false. Reason=VideoAudioCodecProfile.{1} Path: {2}", + profile.Name ?? "Unknown Profile", + i.Property, + mediaSource.Path ?? "Unknown path"); + return null; } } diff --git a/MediaBrowser.Model/Dlna/StreamInfo.cs b/MediaBrowser.Model/Dlna/StreamInfo.cs index a908c78506..f6ff79b115 100644 --- a/MediaBrowser.Model/Dlna/StreamInfo.cs +++ b/MediaBrowser.Model/Dlna/StreamInfo.cs @@ -70,6 +70,7 @@ namespace MediaBrowser.Model.Dlna public string SubtitleFormat { get; set; } public string PlaySessionId { get; set; } + public List<MediaSourceInfo> AllMediaSources { get; set; } public string MediaSourceId { diff --git a/MediaBrowser.Model/Dto/BaseItemDto.cs b/MediaBrowser.Model/Dto/BaseItemDto.cs index c49a1f77ed..c772692a2f 100644 --- a/MediaBrowser.Model/Dto/BaseItemDto.cs +++ b/MediaBrowser.Model/Dto/BaseItemDto.cs @@ -3,6 +3,7 @@ using MediaBrowser.Model.Entities; using MediaBrowser.Model.Extensions; using MediaBrowser.Model.Library; using MediaBrowser.Model.Providers; +using MediaBrowser.Model.Sync; using System; using System.Collections.Generic; using System.ComponentModel; @@ -16,7 +17,7 @@ namespace MediaBrowser.Model.Dto /// This holds information about a BaseItem in a format that is convenient for the client. /// </summary> [DebuggerDisplay("Name = {Name}, ID = {Id}, Type = {Type}")] - public class BaseItemDto : IHasProviderIds, IHasPropertyChangedEvent, IItemDto, IHasServerId + public class BaseItemDto : IHasProviderIds, IHasPropertyChangedEvent, IItemDto, IHasServerId, IHasSyncInfo { /// <summary> /// Gets or sets the name. @@ -37,6 +38,12 @@ namespace MediaBrowser.Model.Dto public string Id { get; set; } /// <summary> + /// Gets or sets the etag. + /// </summary> + /// <value>The etag.</value> + public string Etag { get; set; } + + /// <summary> /// Gets or sets the playlist item identifier. /// </summary> /// <value>The playlist item identifier.</value> @@ -63,6 +70,7 @@ namespace MediaBrowser.Model.Dto public string PreferredMetadataCountryCode { get; set; } public string AwardSummary { get; set; } + public string ShareUrl { get; set; } public float? Metascore { get; set; } @@ -86,6 +94,11 @@ namespace MediaBrowser.Model.Dto /// </summary> /// <value><c>null</c> if [is synced] contains no value, <c>true</c> if [is synced]; otherwise, <c>false</c>.</value> public bool? IsSynced { get; set; } + /// <summary> + /// Gets or sets the synchronize status. + /// </summary> + /// <value>The synchronize status.</value> + public SyncJobItemStatus? SyncStatus { get; set; } /// <summary> /// Gets or sets the DVD season number. diff --git a/MediaBrowser.Model/Dto/BaseItemPerson.cs b/MediaBrowser.Model/Dto/BaseItemPerson.cs index 46485316e0..8e77505627 100644 --- a/MediaBrowser.Model/Dto/BaseItemPerson.cs +++ b/MediaBrowser.Model/Dto/BaseItemPerson.cs @@ -1,7 +1,7 @@ -using System.ComponentModel; +using MediaBrowser.Model.Extensions; +using System.ComponentModel; using System.Diagnostics; using System.Runtime.Serialization; -using MediaBrowser.Model.Extensions; namespace MediaBrowser.Model.Dto { diff --git a/MediaBrowser.Model/Dto/IHasSyncInfo.cs b/MediaBrowser.Model/Dto/IHasSyncInfo.cs new file mode 100644 index 0000000000..d2cf1f8cfe --- /dev/null +++ b/MediaBrowser.Model/Dto/IHasSyncInfo.cs @@ -0,0 +1,13 @@ +using MediaBrowser.Model.Sync; + +namespace MediaBrowser.Model.Dto +{ + public interface IHasSyncInfo + { + string Id { get; } + bool? SupportsSync { get; set; } + bool? HasSyncJob { get; set; } + bool? IsSynced { get; set; } + SyncJobItemStatus? SyncStatus { get; set; } + } +} diff --git a/MediaBrowser.Model/Entities/CollectionType.cs b/MediaBrowser.Model/Entities/CollectionType.cs index e51b2d311e..a259f4c077 100644 --- a/MediaBrowser.Model/Entities/CollectionType.cs +++ b/MediaBrowser.Model/Entities/CollectionType.cs @@ -61,6 +61,7 @@ public const string MusicGenres = "MusicGenres"; public const string MusicGenre = "MusicGenre"; public const string MusicLatest = "MusicLatest"; + public const string MusicPlaylists = "MusicPlaylists"; public const string MusicSongs = "MusicSongs"; public const string MusicFavorites = "MusicFavorites"; public const string MusicFavoriteArtists = "MusicFavoriteArtists"; diff --git a/MediaBrowser.Model/Entities/MediaInfo.cs b/MediaBrowser.Model/Entities/MediaInfo.cs deleted file mode 100644 index ef26cfa148..0000000000 --- a/MediaBrowser.Model/Entities/MediaInfo.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Collections.Generic; - -namespace MediaBrowser.Model.Entities -{ - public class MediaInfo - { - /// <summary> - /// Gets or sets the media streams. - /// </summary> - /// <value>The media streams.</value> - public List<MediaStream> MediaStreams { get; set; } - - /// <summary> - /// Gets or sets the format. - /// </summary> - /// <value>The format.</value> - public string Format { get; set; } - - public int? TotalBitrate { get; set; } - - public MediaInfo() - { - MediaStreams = new List<MediaStream>(); - } - } -}
\ No newline at end of file diff --git a/MediaBrowser.Model/Entities/MediaStream.cs b/MediaBrowser.Model/Entities/MediaStream.cs index 0f3435174c..11eb31c27b 100644 --- a/MediaBrowser.Model/Entities/MediaStream.cs +++ b/MediaBrowser.Model/Entities/MediaStream.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Model.Dlna; +using System.Collections.Generic; +using MediaBrowser.Model.Dlna; using MediaBrowser.Model.Extensions; using System.Diagnostics; @@ -59,6 +60,12 @@ namespace MediaBrowser.Model.Entities public int? PacketLength { get; set; } /// <summary> + /// Gets or sets the key frames. + /// </summary> + /// <value>The key frames.</value> + public List<int> KeyFrames { get; set; } + + /// <summary> /// Gets or sets the channels. /// </summary> /// <value>The channels.</value> diff --git a/MediaBrowser.Model/LiveTv/ProgramQuery.cs b/MediaBrowser.Model/LiveTv/ProgramQuery.cs index bbd396c33f..c19ba54bd1 100644 --- a/MediaBrowser.Model/LiveTv/ProgramQuery.cs +++ b/MediaBrowser.Model/LiveTv/ProgramQuery.cs @@ -54,6 +54,12 @@ namespace MediaBrowser.Model.LiveTv public bool? IsMovie { 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> + public bool? IsSports { get; set; } + + /// <summary> /// Skips over a given number of items within the results. Use for paging. /// </summary> public int? StartIndex { get; set; } diff --git a/MediaBrowser.Model/LiveTv/RecommendedProgramQuery.cs b/MediaBrowser.Model/LiveTv/RecommendedProgramQuery.cs index 9ba8e0e5fc..4a8ae2365b 100644 --- a/MediaBrowser.Model/LiveTv/RecommendedProgramQuery.cs +++ b/MediaBrowser.Model/LiveTv/RecommendedProgramQuery.cs @@ -31,5 +31,10 @@ /// </summary> /// <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 sports. + /// </summary> + /// <value><c>null</c> if [is sports] contains no value, <c>true</c> if [is sports]; otherwise, <c>false</c>.</value> + public bool? IsSports { get; set; } } }
\ No newline at end of file diff --git a/MediaBrowser.Model/LiveTv/RecordingInfoDto.cs b/MediaBrowser.Model/LiveTv/RecordingInfoDto.cs index d6d6980381..0988b11a6e 100644 --- a/MediaBrowser.Model/LiveTv/RecordingInfoDto.cs +++ b/MediaBrowser.Model/LiveTv/RecordingInfoDto.cs @@ -2,6 +2,7 @@ using MediaBrowser.Model.Entities; using MediaBrowser.Model.Extensions; using MediaBrowser.Model.Library; +using MediaBrowser.Model.Sync; using System; using System.Collections.Generic; using System.ComponentModel; @@ -11,7 +12,7 @@ using System.Runtime.Serialization; namespace MediaBrowser.Model.LiveTv { [DebuggerDisplay("Name = {Name}, ChannelName = {ChannelName}")] - public class RecordingInfoDto : IHasPropertyChangedEvent, IItemDto, IHasServerId + public class RecordingInfoDto : IHasPropertyChangedEvent, IItemDto, IHasServerId, IHasSyncInfo { /// <summary> /// Id of the recording. @@ -35,6 +36,27 @@ namespace MediaBrowser.Model.LiveTv /// </summary> /// <value>The original primary image aspect ratio.</value> public double? OriginalPrimaryImageAspectRatio { get; set; } + + /// <summary> + /// Gets or sets a value indicating whether [supports synchronize]. + /// </summary> + /// <value><c>null</c> if [supports synchronize] contains no value, <c>true</c> if [supports synchronize]; otherwise, <c>false</c>.</value> + public bool? SupportsSync { get; set; } + /// <summary> + /// Gets or sets a value indicating whether this instance has synchronize job. + /// </summary> + /// <value><c>null</c> if [has synchronize job] contains no value, <c>true</c> if [has synchronize job]; otherwise, <c>false</c>.</value> + public bool? HasSyncJob { get; set; } + /// <summary> + /// Gets or sets a value indicating whether this instance is synced. + /// </summary> + /// <value><c>null</c> if [is synced] contains no value, <c>true</c> if [is synced]; otherwise, <c>false</c>.</value> + public bool? IsSynced { get; set; } + /// <summary> + /// Gets or sets the synchronize status. + /// </summary> + /// <value>The synchronize status.</value> + public SyncJobItemStatus? SyncStatus { get; set; } /// <summary> /// Gets or sets the series timer identifier. diff --git a/MediaBrowser.Model/MediaBrowser.Model.csproj b/MediaBrowser.Model/MediaBrowser.Model.csproj index 0673095125..eb36712c2f 100644 --- a/MediaBrowser.Model/MediaBrowser.Model.csproj +++ b/MediaBrowser.Model/MediaBrowser.Model.csproj @@ -138,6 +138,7 @@ <Compile Include="Dlna\SubtitleStreamInfo.cs" /> <Compile Include="Drawing\ImageOrientation.cs" /> <Compile Include="Dto\IHasServerId.cs" /> + <Compile Include="Dto\IHasSyncInfo.cs" /> <Compile Include="Dto\MetadataEditorInfo.cs" /> <Compile Include="Dto\NameIdPair.cs" /> <Compile Include="Dto\NameValuePair.cs" /> @@ -226,7 +227,7 @@ <Compile Include="Dto\RecommendationType.cs" /> <Compile Include="Dto\SubtitleDownloadOptions.cs" /> <Compile Include="Entities\IsoType.cs" /> - <Compile Include="Entities\MediaInfo.cs" /> + <Compile Include="MediaInfo\MediaInfo.cs" /> <Compile Include="Entities\MediaStreamType.cs" /> <Compile Include="Entities\PackageReviewInfo.cs" /> <Compile Include="Entities\ProviderIdsExtensions.cs" /> diff --git a/MediaBrowser.Model/MediaInfo/MediaInfo.cs b/MediaBrowser.Model/MediaInfo/MediaInfo.cs new file mode 100644 index 0000000000..21f258693e --- /dev/null +++ b/MediaBrowser.Model/MediaInfo/MediaInfo.cs @@ -0,0 +1,66 @@ +using MediaBrowser.Model.Dto; +using MediaBrowser.Model.Entities; +using System; +using System.Collections.Generic; + +namespace MediaBrowser.Model.MediaInfo +{ + public class MediaInfo : MediaSourceInfo, IHasProviderIds + { + public List<ChapterInfo> Chapters { get; set; } + + /// <summary> + /// Gets or sets the title. + /// </summary> + /// <value>The title.</value> + public string Title { get; set; } + /// <summary> + /// Gets or sets the album. + /// </summary> + /// <value>The album.</value> + public string Album { get; set; } + /// <summary> + /// Gets or sets the artists. + /// </summary> + /// <value>The artists.</value> + public List<string> Artists { get; set; } + /// <summary> + /// Gets or sets the album artists. + /// </summary> + /// <value>The album artists.</value> + public List<string> AlbumArtists { get; set; } + /// <summary> + /// Gets or sets the studios. + /// </summary> + /// <value>The studios.</value> + public List<string> Studios { get; set; } + public List<string> Genres { get; set; } + public int? IndexNumber { get; set; } + public int? ParentIndexNumber { get; set; } + public int? ProductionYear { get; set; } + public DateTime? PremiereDate { get; set; } + public List<BaseItemPerson> People { get; set; } + public Dictionary<string, string> ProviderIds { get; set; } + /// <summary> + /// Gets or sets the official rating. + /// </summary> + /// <value>The official rating.</value> + public string OfficialRating { get; set; } + /// <summary> + /// Gets or sets the overview. + /// </summary> + /// <value>The overview.</value> + public string Overview { get; set; } + + public MediaInfo() + { + Chapters = new List<ChapterInfo>(); + Artists = new List<string>(); + AlbumArtists = new List<string>(); + Studios = new List<string>(); + Genres = new List<string>(); + People = new List<BaseItemPerson>(); + ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); + } + } +}
\ No newline at end of file diff --git a/MediaBrowser.Model/Notifications/NotificationOptions.cs b/MediaBrowser.Model/Notifications/NotificationOptions.cs index e57955c9e2..683f1a76c8 100644 --- a/MediaBrowser.Model/Notifications/NotificationOptions.cs +++ b/MediaBrowser.Model/Notifications/NotificationOptions.cs @@ -1,5 +1,6 @@ using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Extensions; +using MediaBrowser.Model.Users; namespace MediaBrowser.Model.Notifications { @@ -106,7 +107,7 @@ namespace MediaBrowser.Model.Notifications !ListHelper.ContainsIgnoreCase(opt.DisabledMonitorUsers, userId); } - public bool IsEnabledToSendToUser(string type, string userId, UserConfiguration userConfig) + public bool IsEnabledToSendToUser(string type, string userId, UserPolicy userPolicy) { NotificationOption opt = GetOptions(type); @@ -117,7 +118,7 @@ namespace MediaBrowser.Model.Notifications return true; } - if (opt.SendToUserMode == SendToUserType.Admins && userConfig.IsAdministrator) + if (opt.SendToUserMode == SendToUserType.Admins && userPolicy.IsAdministrator) { return true; } diff --git a/MediaBrowser.Model/Querying/ItemFields.cs b/MediaBrowser.Model/Querying/ItemFields.cs index 54c83ca15d..77b3dc0ee1 100644 --- a/MediaBrowser.Model/Querying/ItemFields.cs +++ b/MediaBrowser.Model/Querying/ItemFields.cs @@ -76,6 +76,11 @@ DisplayMediaType, /// <summary> + /// The etag + /// </summary> + Etag, + + /// <summary> /// The external urls /// </summary> ExternalUrls, diff --git a/MediaBrowser.Model/Querying/ItemQuery.cs b/MediaBrowser.Model/Querying/ItemQuery.cs index 0cdf5ca7ab..5a88c0d43e 100644 --- a/MediaBrowser.Model/Querying/ItemQuery.cs +++ b/MediaBrowser.Model/Querying/ItemQuery.cs @@ -281,6 +281,13 @@ namespace MediaBrowser.Model.Querying public int? ImageTypeLimit { get; set; } public ImageType[] EnableImageTypes { get; set; } + [Obsolete] + public string[] Artists { get; set; } + [Obsolete] + public string[] Studios { get; set; } + [Obsolete] + public string Person { get; set; } + /// <summary> /// Initializes a new instance of the <see cref="ItemQuery" /> class. /// </summary> @@ -299,6 +306,9 @@ namespace MediaBrowser.Model.Querying VideoTypes = new VideoType[] { }; + Artists = new string[] { }; + Studios = new string[] { }; + Genres = new string[] { }; StudioIds = new string[] { }; IncludeItemTypes = new string[] { }; diff --git a/MediaBrowser.Model/Querying/ItemSortBy.cs b/MediaBrowser.Model/Querying/ItemSortBy.cs index fcc7e39a19..9c2926b542 100644 --- a/MediaBrowser.Model/Querying/ItemSortBy.cs +++ b/MediaBrowser.Model/Querying/ItemSortBy.cs @@ -43,6 +43,7 @@ namespace MediaBrowser.Model.Querying /// The premiere date /// </summary> public const string PremiereDate = "PremiereDate"; + public const string StartDate = "StartDate"; /// <summary> /// The sort name /// </summary> diff --git a/MediaBrowser.Model/Session/ClientCapabilities.cs b/MediaBrowser.Model/Session/ClientCapabilities.cs index 9361a60ea4..095ad472a2 100644 --- a/MediaBrowser.Model/Session/ClientCapabilities.cs +++ b/MediaBrowser.Model/Session/ClientCapabilities.cs @@ -19,12 +19,17 @@ namespace MediaBrowser.Model.Session public bool SupportsOfflineAccess { get; set; } public DeviceProfile DeviceProfile { get; set; } + public List<string> SupportedLiveMediaTypes { get; set; } + + public string AppUrl { get; set; } + public string AppImageUrl { get; set; } public ClientCapabilities() { PlayableMediaTypes = new List<string>(); SupportedCommands = new List<string>(); SupportsPersistentIdentifier = true; + SupportedLiveMediaTypes = new List<string>(); } } }
\ No newline at end of file diff --git a/MediaBrowser.Model/Sync/LocalItem.cs b/MediaBrowser.Model/Sync/LocalItem.cs index dbbecaf057..c5728ac97e 100644 --- a/MediaBrowser.Model/Sync/LocalItem.cs +++ b/MediaBrowser.Model/Sync/LocalItem.cs @@ -26,6 +26,11 @@ namespace MediaBrowser.Model.Sync /// <value>The unique identifier.</value> public string Id { get; set; } /// <summary> + /// Gets or sets the file identifier. + /// </summary> + /// <value>The file identifier.</value> + public string FileId { get; set; } + /// <summary> /// Gets or sets the item identifier. /// </summary> /// <value>The item identifier.</value> diff --git a/MediaBrowser.Model/Sync/SyncOptions.cs b/MediaBrowser.Model/Sync/SyncOptions.cs index 294f7bcef7..7f0c17b373 100644 --- a/MediaBrowser.Model/Sync/SyncOptions.cs +++ b/MediaBrowser.Model/Sync/SyncOptions.cs @@ -4,5 +4,13 @@ namespace MediaBrowser.Model.Sync public class SyncOptions { public string TemporaryPath { get; set; } + public long UploadSpeedLimitBytes { get; set; } + public int TranscodingCpuCoreLimit { get; set; } + public bool EnableFullSpeedTranscoding { get; set; } + + public SyncOptions() + { + TranscodingCpuCoreLimit = 1; + } } } diff --git a/MediaBrowser.Model/Sync/SyncQualityOption.cs b/MediaBrowser.Model/Sync/SyncQualityOption.cs index 597b987270..6eff4b9a4c 100644 --- a/MediaBrowser.Model/Sync/SyncQualityOption.cs +++ b/MediaBrowser.Model/Sync/SyncQualityOption.cs @@ -23,5 +23,10 @@ namespace MediaBrowser.Model.Sync /// </summary> /// <value><c>true</c> if this instance is default; otherwise, <c>false</c>.</value> public bool IsDefault { get; set; } + /// <summary> + /// Gets or sets a value indicating whether this instance is original quality. + /// </summary> + /// <value><c>true</c> if this instance is original quality; otherwise, <c>false</c>.</value> + public bool IsOriginalQuality { get; set; } } } diff --git a/MediaBrowser.Model/Users/UserPolicy.cs b/MediaBrowser.Model/Users/UserPolicy.cs index 774d4a0b47..05c1b9de5a 100644 --- a/MediaBrowser.Model/Users/UserPolicy.cs +++ b/MediaBrowser.Model/Users/UserPolicy.cs @@ -32,8 +32,6 @@ namespace MediaBrowser.Model.Users public bool EnableUserPreferenceAccess { get; set; } public AccessSchedule[] AccessSchedules { get; set; } public UnratedItem[] BlockUnratedItems { get; set; } - public string[] BlockedMediaFolders { get; set; } - public string[] BlockedChannels { get; set; } public bool EnableRemoteControlOfOtherUsers { get; set; } public bool EnableSharedDeviceControl { get; set; } @@ -41,6 +39,9 @@ namespace MediaBrowser.Model.Users public bool EnableLiveTvAccess { get; set; } public bool EnableMediaPlayback { get; set; } + public bool EnableAudioPlaybackTranscoding { get; set; } + public bool EnableVideoPlaybackTranscoding { get; set; } + public bool EnableContentDeletion { get; set; } public bool EnableContentDownloading { get; set; } @@ -49,6 +50,7 @@ namespace MediaBrowser.Model.Users /// </summary> /// <value><c>true</c> if [enable synchronize]; otherwise, <c>false</c>.</value> public bool EnableSync { get; set; } + public bool EnableSyncTranscoding { get; set; } public string[] EnabledDevices { get; set; } public bool EnableAllDevices { get; set; } @@ -60,13 +62,21 @@ namespace MediaBrowser.Model.Users public bool EnableAllFolders { get; set; } public int InvalidLoginAttemptCount { get; set; } + + public bool EnablePublicSharing { get; set; } public UserPolicy() { EnableSync = true; - EnableLiveTvManagement = true; + EnableSyncTranscoding = true; + EnableMediaPlayback = true; + EnableAudioPlaybackTranscoding = true; + EnableVideoPlaybackTranscoding = true; + + EnableLiveTvManagement = true; EnableLiveTvAccess = true; + EnableSharedDeviceControl = true; BlockedTags = new string[] { }; @@ -86,6 +96,7 @@ namespace MediaBrowser.Model.Users EnableAllDevices = true; EnableContentDownloading = true; + EnablePublicSharing = true; } } }
\ No newline at end of file |
