aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Entities
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/Entities')
-rw-r--r--MediaBrowser.Controller/Entities/Audio/Audio.cs14
-rw-r--r--MediaBrowser.Controller/Entities/BaseItem.cs27
-rw-r--r--MediaBrowser.Controller/Entities/Book.cs15
-rw-r--r--MediaBrowser.Controller/Entities/IHasMediaStreams.cs10
-rw-r--r--MediaBrowser.Controller/Entities/IHasScreenshots.cs5
-rw-r--r--MediaBrowser.Controller/Entities/Video.cs37
6 files changed, 56 insertions, 52 deletions
diff --git a/MediaBrowser.Controller/Entities/Audio/Audio.cs b/MediaBrowser.Controller/Entities/Audio/Audio.cs
index 2a7aa4fea..63c907c1f 100644
--- a/MediaBrowser.Controller/Entities/Audio/Audio.cs
+++ b/MediaBrowser.Controller/Entities/Audio/Audio.cs
@@ -1,5 +1,4 @@
-using MediaBrowser.Model.Entities;
-using System;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
@@ -13,7 +12,6 @@ namespace MediaBrowser.Controller.Entities.Audio
{
public Audio()
{
- MediaStreams = new List<MediaStream>();
Artists = new List<string>();
}
@@ -22,13 +20,13 @@ namespace MediaBrowser.Controller.Entities.Audio
/// </summary>
/// <value>The language.</value>
public string Language { get; set; }
-
+
/// <summary>
- /// Gets or sets the media streams.
+ /// Gets or sets a value indicating whether this instance has embedded image.
/// </summary>
- /// <value>The media streams.</value>
- public List<MediaStream> MediaStreams { get; set; }
-
+ /// <value><c>true</c> if this instance has embedded image; otherwise, <c>false</c>.</value>
+ public bool HasEmbeddedImage { get; set; }
+
/// <summary>
/// Override this to true if class should be grouped under a container in indicies
/// The container class should be defined via IndexContainer
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs
index 2be4c7708..541887598 100644
--- a/MediaBrowser.Controller/Entities/BaseItem.cs
+++ b/MediaBrowser.Controller/Entities/BaseItem.cs
@@ -154,6 +154,8 @@ namespace MediaBrowser.Controller.Entities
/// <value>The date modified.</value>
public DateTime DateModified { get; set; }
+ public DateTime DateLastSaved { get; set; }
+
/// <summary>
/// The logger
/// </summary>
@@ -200,29 +202,6 @@ namespace MediaBrowser.Controller.Entities
}
/// <summary>
- /// The _provider data
- /// </summary>
- private Dictionary<Guid, BaseProviderInfo> _providerData;
- /// <summary>
- /// Holds persistent data for providers like last refresh date.
- /// Providers can use this to determine if they need to refresh.
- /// The BaseProviderInfo class can be extended to hold anything a provider may need.
- /// Keyed by a unique provider ID.
- /// </summary>
- /// <value>The provider data.</value>
- public Dictionary<Guid, BaseProviderInfo> ProviderData
- {
- get
- {
- return _providerData ?? (_providerData = new Dictionary<Guid, BaseProviderInfo>());
- }
- set
- {
- _providerData = value;
- }
- }
-
- /// <summary>
/// Gets the type of the media.
/// </summary>
/// <value>The type of the media.</value>
@@ -827,7 +806,7 @@ namespace MediaBrowser.Controller.Entities
/// <returns>true if a provider reports we changed</returns>
public virtual async Task<bool> RefreshMetadata(CancellationToken cancellationToken, bool forceSave = false, bool forceRefresh = false, bool allowSlowProviders = true, bool resetResolveArgs = true)
{
- if (resetResolveArgs || ResolveArgs == null)
+ if (resetResolveArgs)
{
// Reload this
ResetResolveArgs();
diff --git a/MediaBrowser.Controller/Entities/Book.cs b/MediaBrowser.Controller/Entities/Book.cs
index 20df731a7..87b90b824 100644
--- a/MediaBrowser.Controller/Entities/Book.cs
+++ b/MediaBrowser.Controller/Entities/Book.cs
@@ -1,7 +1,8 @@
-
+using System.Collections.Generic;
+
namespace MediaBrowser.Controller.Entities
{
- public class Book : BaseItem
+ public class Book : BaseItem, IHasTags
{
public override string MediaType
{
@@ -10,6 +11,11 @@ namespace MediaBrowser.Controller.Entities
return Model.Entities.MediaType.Book;
}
}
+ /// <summary>
+ /// Gets or sets the tags.
+ /// </summary>
+ /// <value>The tags.</value>
+ public List<string> Tags { get; set; }
public string SeriesName { get; set; }
@@ -31,5 +37,10 @@ namespace MediaBrowser.Controller.Entities
return !IsInMixedFolder;
}
}
+
+ public Book()
+ {
+ Tags = new List<string>();
+ }
}
}
diff --git a/MediaBrowser.Controller/Entities/IHasMediaStreams.cs b/MediaBrowser.Controller/Entities/IHasMediaStreams.cs
new file mode 100644
index 000000000..b700ef628
--- /dev/null
+++ b/MediaBrowser.Controller/Entities/IHasMediaStreams.cs
@@ -0,0 +1,10 @@
+
+namespace MediaBrowser.Controller.Entities
+{
+ /// <summary>
+ /// This is essentially a marker interface
+ /// </summary>
+ public interface IHasMediaStreams
+ {
+ }
+}
diff --git a/MediaBrowser.Controller/Entities/IHasScreenshots.cs b/MediaBrowser.Controller/Entities/IHasScreenshots.cs
index 341d6403f..2276c707a 100644
--- a/MediaBrowser.Controller/Entities/IHasScreenshots.cs
+++ b/MediaBrowser.Controller/Entities/IHasScreenshots.cs
@@ -12,5 +12,10 @@ namespace MediaBrowser.Controller.Entities
/// </summary>
/// <value>The screenshot image paths.</value>
List<string> ScreenshotImagePaths { get; set; }
+
+ /// <summary>
+ /// Validates the screenshots.
+ /// </summary>
+ void ValidateScreenshots();
}
}
diff --git a/MediaBrowser.Controller/Entities/Video.cs b/MediaBrowser.Controller/Entities/Video.cs
index 9b02571b0..425e418ed 100644
--- a/MediaBrowser.Controller/Entities/Video.cs
+++ b/MediaBrowser.Controller/Entities/Video.cs
@@ -22,12 +22,29 @@ namespace MediaBrowser.Controller.Entities
public Video()
{
- MediaStreams = new List<MediaStream>();
PlayableStreamFileNames = new List<string>();
AdditionalPartIds = new List<Guid>();
}
/// <summary>
+ /// Gets or sets a value indicating whether this instance has subtitles.
+ /// </summary>
+ /// <value><c>true</c> if this instance has subtitles; otherwise, <c>false</c>.</value>
+ public bool HasSubtitles { get; set; }
+
+ /// <summary>
+ /// Gets or sets the video bit rate.
+ /// </summary>
+ /// <value>The video bit rate.</value>
+ public int? VideoBitRate { get; set; }
+
+ /// <summary>
+ /// Gets or sets the default index of the video stream.
+ /// </summary>
+ /// <value>The default index of the video stream.</value>
+ public int? DefaultVideoStreamIndex { get; set; }
+
+ /// <summary>
/// Gets or sets the type of the video.
/// </summary>
/// <value>The type of the video.</value>
@@ -46,12 +63,6 @@ namespace MediaBrowser.Controller.Entities
public Video3DFormat? Video3DFormat { get; set; }
/// <summary>
- /// Gets or sets the media streams.
- /// </summary>
- /// <value>The media streams.</value>
- public List<MediaStream> MediaStreams { get; set; }
-
- /// <summary>
/// If the video is a folder-rip, this will hold the file list for the largest playlist
/// </summary>
public List<string> PlayableStreamFileNames { get; set; }
@@ -70,7 +81,7 @@ namespace MediaBrowser.Controller.Entities
/// </summary>
/// <value>The aspect ratio.</value>
public string AspectRatio { get; set; }
-
+
/// <summary>
/// Should be overridden to return the proper folder where metadata lives
/// </summary>
@@ -123,16 +134,6 @@ namespace MediaBrowser.Controller.Entities
}
/// <summary>
- /// The default video stream for this video. Use this to determine media info for this item.
- /// </summary>
- /// <value>The default video stream.</value>
- [IgnoreDataMember]
- public MediaStream DefaultVideoStream
- {
- get { return MediaStreams != null ? MediaStreams.FirstOrDefault(s => s.Type == MediaStreamType.Video) : null; }
- }
-
- /// <summary>
/// Gets a value indicating whether [is3 D].
/// </summary>
/// <value><c>true</c> if [is3 D]; otherwise, <c>false</c>.</value>