diff --git a/Emby.Dlna/PlayTo/Device.cs b/Emby.Dlna/PlayTo/Device.cs
index ff493e365e..213e7367f0 100644
--- a/Emby.Dlna/PlayTo/Device.cs
+++ b/Emby.Dlna/PlayTo/Device.cs
@@ -113,7 +113,7 @@ namespace Emby.Dlna.PlayTo
private int GetInactiveTimerIntervalMs()
{
- return 30000;
+ return Timeout.Infinite;
}
public void Start()
@@ -161,18 +161,15 @@ namespace Emby.Dlna.PlayTo
if (_disposed)
return;
- if (!_timerActive)
+ lock (_timerLock)
{
- lock (_timerLock)
+ if (!_timerActive)
{
- if (!_timerActive)
- {
- _logger.Debug("RestartTimer");
- _timer.Change(10, GetPlaybackTimerIntervalMs());
- }
-
- _timerActive = true;
+ _logger.Debug("RestartTimer");
+ _timer.Change(10, GetPlaybackTimerIntervalMs());
}
+
+ _timerActive = true;
}
}
@@ -184,23 +181,20 @@ namespace Emby.Dlna.PlayTo
if (_disposed)
return;
- if (_timerActive)
+ lock (_timerLock)
{
- lock (_timerLock)
+ if (_timerActive)
{
- if (_timerActive)
- {
- _logger.Debug("RestartTimerInactive");
- var interval = GetInactiveTimerIntervalMs();
+ _logger.Debug("RestartTimerInactive");
+ var interval = GetInactiveTimerIntervalMs();
- if (_timer != null)
- {
- _timer.Change(interval, interval);
- }
+ if (_timer != null)
+ {
+ _timer.Change(interval, interval);
}
-
- _timerActive = false;
}
+
+ _timerActive = false;
}
}
@@ -493,6 +487,10 @@ namespace Emby.Dlna.PlayTo
RestartTimer();
}
}
+ else
+ {
+ RestartTimerInactive();
+ }
}
catch (HttpException ex)
{
diff --git a/Emby.Server.Implementations/Dto/DtoService.cs b/Emby.Server.Implementations/Dto/DtoService.cs
index bf70cc19b4..1fab23b328 100644
--- a/Emby.Server.Implementations/Dto/DtoService.cs
+++ b/Emby.Server.Implementations/Dto/DtoService.cs
@@ -639,7 +639,6 @@ namespace Emby.Server.Implementations.Dto
private void SetGameProperties(BaseItemDto dto, Game item)
{
- dto.Players = item.PlayersSupported;
dto.GameSystem = item.GameSystem;
dto.MultiPartGameFiles = item.MultiPartGameFiles;
}
@@ -1310,15 +1309,6 @@ namespace Emby.Server.Implementations.Dto
Series episodeSeries = null;
- if (fields.Contains(ItemFields.SeriesGenres))
- {
- episodeSeries = episodeSeries ?? episode.Series;
- if (episodeSeries != null)
- {
- dto.SeriesGenres = episodeSeries.Genres.ToList();
- }
- }
-
//if (fields.Contains(ItemFields.SeriesPrimaryImage))
{
episodeSeries = episodeSeries ?? episode.Series;
@@ -1334,27 +1324,6 @@ namespace Emby.Server.Implementations.Dto
if (episodeSeries != null)
{
dto.SeriesStudio = episodeSeries.Studios.FirstOrDefault();
- if (!string.IsNullOrWhiteSpace(dto.SeriesStudio))
- {
- try
- {
- var studio = _libraryManager.GetStudio(dto.SeriesStudio);
-
- if (studio != null)
- {
- dto.SeriesStudioInfo = new StudioDto
- {
- Name = dto.SeriesStudio,
- Id = studio.Id.ToString("N"),
- PrimaryImageTag = GetImageCacheTag(studio, ImageType.Primary)
- };
- }
- }
- catch (Exception ex)
- {
-
- }
- }
}
}
}
@@ -1363,7 +1332,7 @@ namespace Emby.Server.Implementations.Dto
var series = item as Series;
if (series != null)
{
- dto.AirDays = series.AirDays;
+ dto.AirDays = series.AirDays.ToArray();
dto.AirTime = series.AirTime;
dto.Status = series.Status.HasValue ? series.Status.Value.ToString() : null;
}
@@ -1498,7 +1467,9 @@ namespace Emby.Server.Implementations.Dto
BaseItem parent = null;
var isFirst = true;
- while (((!dto.HasLogo && logoLimit > 0) || (!dto.HasArtImage && artLimit > 0) || (!dto.HasThumb && thumbLimit > 0) || parent is Series) &&
+ var imageTags = dto.ImageTags;
+
+ while (((!(imageTags != null && imageTags.ContainsKey(ImageType.Logo)) && logoLimit > 0) || (!(imageTags != null && imageTags.ContainsKey(ImageType.Art)) && artLimit > 0) || (!(imageTags != null && imageTags.ContainsKey(ImageType.Thumb)) && thumbLimit > 0) || parent is Series) &&
(parent = parent ?? (isFirst ? GetImageDisplayParent(item, item) ?? owner : parent)) != null)
{
if (parent == null)
@@ -1508,7 +1479,7 @@ namespace Emby.Server.Implementations.Dto
var allImages = parent.ImageInfos;
- if (logoLimit > 0 && !dto.HasLogo && dto.ParentLogoItemId == null)
+ if (logoLimit > 0 && !(imageTags != null && imageTags.ContainsKey(ImageType.Logo)) && dto.ParentLogoItemId == null)
{
var image = allImages.FirstOrDefault(i => i.Type == ImageType.Logo);
@@ -1518,7 +1489,7 @@ namespace Emby.Server.Implementations.Dto
dto.ParentLogoImageTag = GetImageCacheTag(parent, image);
}
}
- if (artLimit > 0 && !dto.HasArtImage && dto.ParentArtItemId == null)
+ if (artLimit > 0 && !(imageTags != null && imageTags.ContainsKey(ImageType.Art)) && dto.ParentArtItemId == null)
{
var image = allImages.FirstOrDefault(i => i.Type == ImageType.Art);
@@ -1528,7 +1499,7 @@ namespace Emby.Server.Implementations.Dto
dto.ParentArtImageTag = GetImageCacheTag(parent, image);
}
}
- if (thumbLimit > 0 && !dto.HasThumb && (dto.ParentThumbItemId == null || parent is Series) && !(parent is ICollectionFolder) && !(parent is UserView))
+ if (thumbLimit > 0 && !(imageTags != null && imageTags.ContainsKey(ImageType.Thumb)) && (dto.ParentThumbItemId == null || parent is Series) && !(parent is ICollectionFolder) && !(parent is UserView))
{
var image = allImages.FirstOrDefault(i => i.Type == ImageType.Thumb);
@@ -1538,7 +1509,7 @@ namespace Emby.Server.Implementations.Dto
dto.ParentThumbImageTag = GetImageCacheTag(parent, image);
}
}
- if (backdropLimit > 0 && !dto.HasBackdrop)
+ if (backdropLimit > 0 && !((dto.BackdropImageTags != null && dto.BackdropImageTags.Length > 0) || (dto.ParentBackdropImageTags != null && dto.ParentBackdropImageTags.Length > 0)))
{
var images = allImages.Where(i => i.Type == ImageType.Backdrop).Take(backdropLimit).ToList();
diff --git a/Emby.Server.Implementations/Session/SessionManager.cs b/Emby.Server.Implementations/Session/SessionManager.cs
index 0b39cfc477..9a1a229c59 100644
--- a/Emby.Server.Implementations/Session/SessionManager.cs
+++ b/Emby.Server.Implementations/Session/SessionManager.cs
@@ -1686,7 +1686,6 @@ namespace Emby.Server.Implementations.Session
dtoOptions.Fields.Remove(ItemFields.RecursiveItemCount);
dtoOptions.Fields.Remove(ItemFields.RemoteTrailers);
dtoOptions.Fields.Remove(ItemFields.SeasonUserData);
- dtoOptions.Fields.Remove(ItemFields.SeriesGenres);
dtoOptions.Fields.Remove(ItemFields.Settings);
dtoOptions.Fields.Remove(ItemFields.SortName);
dtoOptions.Fields.Remove(ItemFields.Tags);
diff --git a/MediaBrowser.Api/ItemUpdateService.cs b/MediaBrowser.Api/ItemUpdateService.cs
index 68b30ec1e2..4b4520e8dc 100644
--- a/MediaBrowser.Api/ItemUpdateService.cs
+++ b/MediaBrowser.Api/ItemUpdateService.cs
@@ -332,13 +332,6 @@ namespace MediaBrowser.Api
video.Video3DFormat = request.Video3DFormat;
}
- var game = item as Game;
-
- if (game != null)
- {
- game.PlayersSupported = request.Players;
- }
-
if (request.AlbumArtists != null)
{
var hasAlbumArtists = item as IHasAlbumArtist;
diff --git a/MediaBrowser.Model/Configuration/ServerConfiguration.cs b/MediaBrowser.Model/Configuration/ServerConfiguration.cs
index a570f7b10c..5bbd7c4da3 100644
--- a/MediaBrowser.Model/Configuration/ServerConfiguration.cs
+++ b/MediaBrowser.Model/Configuration/ServerConfiguration.cs
@@ -349,7 +349,9 @@ namespace MediaBrowser.Model.Configuration
Limit = 1,
Type = ImageType.Logo
}
- }
+ },
+
+ DisabledImageFetchers = new [] {"FanArt"}
},
new MetadataOptions(1, 1280)
@@ -539,7 +541,8 @@ namespace MediaBrowser.Model.Configuration
Type = ImageType.Thumb
}
},
- DisabledMetadataFetchers = new []{ "TheMovieDb" }
+ DisabledMetadataFetchers = new []{ "TheMovieDb" },
+ DisabledImageFetchers = new [] { "FanArt" }
},
new MetadataOptions(0, 1280)
diff --git a/MediaBrowser.Model/Dto/BaseItemDto.cs b/MediaBrowser.Model/Dto/BaseItemDto.cs
index e5cc22c5fb..0fbb0a45e7 100644
--- a/MediaBrowser.Model/Dto/BaseItemDto.cs
+++ b/MediaBrowser.Model/Dto/BaseItemDto.cs
@@ -209,12 +209,6 @@ namespace MediaBrowser.Model.Dto
/// The genres.
public List Genres { get; set; }
- ///
- /// Gets or sets the series genres.
- ///
- /// The series genres.
- public List SeriesGenres { get; set; }
-
///
/// Gets or sets the community rating.
///
@@ -257,12 +251,6 @@ namespace MediaBrowser.Model.Dto
/// The production year.
public int? ProductionYear { get; set; }
- ///
- /// Gets or sets the players supported by a game.
- ///
- /// The players.
- public int? Players { get; set; }
-
///
/// Gets or sets a value indicating whether this instance is place holder.
///
@@ -432,7 +420,7 @@ namespace MediaBrowser.Model.Dto
/// Gets or sets the air days.
///
/// The air days.
- public List AirDays { get; set; }
+ public DayOfWeek[] AirDays { get; set; }
///
/// Gets or sets the tags.
@@ -598,8 +586,6 @@ namespace MediaBrowser.Model.Dto
/// The series studio.
public string SeriesStudio { get; set; }
- public StudioDto SeriesStudioInfo { get; set; }
-
///
/// Gets or sets the parent thumb item id.
///
@@ -741,46 +727,6 @@ namespace MediaBrowser.Model.Dto
/// The series timer identifier.
public string SeriesTimerId { get; set; }
- ///
- /// Gets a value indicating whether this instance has art.
- ///
- /// true if this instance has art; otherwise, false.
- [IgnoreDataMember]
- public bool HasArtImage
- {
- get { return ImageTags != null && ImageTags.ContainsKey(ImageType.Art); }
- }
-
- ///
- /// Gets a value indicating whether this instance has logo.
- ///
- /// true if this instance has logo; otherwise, false.
- [IgnoreDataMember]
- public bool HasLogo
- {
- get { return ImageTags != null && ImageTags.ContainsKey(ImageType.Logo); }
- }
-
- ///
- /// Gets a value indicating whether this instance has thumb.
- ///
- /// true if this instance has thumb; otherwise, false.
- [IgnoreDataMember]
- public bool HasThumb
- {
- get { return ImageTags != null && ImageTags.ContainsKey(ImageType.Thumb); }
- }
-
- ///
- /// Gets a value indicating whether this instance has thumb.
- ///
- /// true if this instance has thumb; otherwise, false.
- [IgnoreDataMember]
- public bool HasBackdrop
- {
- get { return (BackdropImageTags != null && BackdropImageTags.Length > 0) || (ParentBackdropImageTags != null && ParentBackdropImageTags.Length > 0); }
- }
-
///
/// Gets or sets the program identifier.
///
diff --git a/MediaBrowser.Model/Dto/StudioDto.cs b/MediaBrowser.Model/Dto/StudioDto.cs
deleted file mode 100644
index 10dc606997..0000000000
--- a/MediaBrowser.Model/Dto/StudioDto.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using System.Diagnostics;
-
-namespace MediaBrowser.Model.Dto
-{
- ///
- /// Class StudioDto
- ///
- [DebuggerDisplay("Name = {Name}")]
- public class StudioDto
- {
- ///
- /// Gets or sets the name.
- ///
- /// The name.
- public string Name { get; set; }
-
- ///
- /// Gets or sets the identifier.
- ///
- /// The identifier.
- public string Id { get; set; }
-
- ///
- /// Gets or sets the primary image tag.
- ///
- /// The primary image tag.
- public string PrimaryImageTag { get; set; }
- }
-}
\ No newline at end of file
diff --git a/MediaBrowser.Model/MediaBrowser.Model.csproj b/MediaBrowser.Model/MediaBrowser.Model.csproj
index 249e970dd4..547baee663 100644
--- a/MediaBrowser.Model/MediaBrowser.Model.csproj
+++ b/MediaBrowser.Model/MediaBrowser.Model.csproj
@@ -284,7 +284,6 @@
-
diff --git a/MediaBrowser.Model/Querying/ItemFields.cs b/MediaBrowser.Model/Querying/ItemFields.cs
index a294e4a3a8..6cc6ba329f 100644
--- a/MediaBrowser.Model/Querying/ItemFields.cs
+++ b/MediaBrowser.Model/Querying/ItemFields.cs
@@ -153,11 +153,6 @@
///
ScreenshotImageTags,
- ///
- /// The series genres
- ///
- SeriesGenres,
-
SeriesPrimaryImage,
///