aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2015-04-14 00:43:41 -0400
committerLuke <luke.pulverenti@gmail.com>2015-04-14 00:43:41 -0400
commit935de313d58c7a7ba792345c16cfd1c1aad09a78 (patch)
tree2e9334986de5864b00d4901f031b5de6a970305e /MediaBrowser.Model
parent71a4f2761e784513ae2f3dda03aa549903808ebb (diff)
parentbd253399c2f1913c544c93fd6927dee37f8add2f (diff)
Merge pull request #1079 from MediaBrowser/dev
3.0.5582.0
Diffstat (limited to 'MediaBrowser.Model')
-rw-r--r--MediaBrowser.Model/Configuration/ServerConfiguration.cs6
-rw-r--r--MediaBrowser.Model/Configuration/UserConfiguration.cs7
-rw-r--r--MediaBrowser.Model/Dlna/StreamBuilder.cs43
-rw-r--r--MediaBrowser.Model/Dlna/StreamInfo.cs1
-rw-r--r--MediaBrowser.Model/Dto/BaseItemDto.cs15
-rw-r--r--MediaBrowser.Model/Dto/BaseItemPerson.cs4
-rw-r--r--MediaBrowser.Model/Dto/IHasSyncInfo.cs13
-rw-r--r--MediaBrowser.Model/Entities/CollectionType.cs1
-rw-r--r--MediaBrowser.Model/Entities/MediaInfo.cs26
-rw-r--r--MediaBrowser.Model/Entities/MediaStream.cs9
-rw-r--r--MediaBrowser.Model/LiveTv/ProgramQuery.cs6
-rw-r--r--MediaBrowser.Model/LiveTv/RecommendedProgramQuery.cs5
-rw-r--r--MediaBrowser.Model/LiveTv/RecordingInfoDto.cs24
-rw-r--r--MediaBrowser.Model/MediaBrowser.Model.csproj3
-rw-r--r--MediaBrowser.Model/MediaInfo/MediaInfo.cs66
-rw-r--r--MediaBrowser.Model/Notifications/NotificationOptions.cs5
-rw-r--r--MediaBrowser.Model/Querying/ItemFields.cs5
-rw-r--r--MediaBrowser.Model/Querying/ItemQuery.cs10
-rw-r--r--MediaBrowser.Model/Querying/ItemSortBy.cs1
-rw-r--r--MediaBrowser.Model/Session/ClientCapabilities.cs5
-rw-r--r--MediaBrowser.Model/Sync/LocalItem.cs5
-rw-r--r--MediaBrowser.Model/Sync/SyncOptions.cs8
-rw-r--r--MediaBrowser.Model/Sync/SyncQualityOption.cs5
-rw-r--r--MediaBrowser.Model/Users/UserPolicy.cs17
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