aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-08-05 19:59:24 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-08-05 19:59:24 -0400
commit3ba6364f259ea43979a88b2a83d64292119057dc (patch)
tree5663fb9c54387e92a09d219488ad1af9276232aa /MediaBrowser.Providers
parent7e25c857a551ce06025b3b85996aef7ed3c6571e (diff)
fixes #887 - Support ttml subtitle output
Diffstat (limited to 'MediaBrowser.Providers')
-rw-r--r--MediaBrowser.Providers/MediaBrowser.Providers.csproj1
-rw-r--r--MediaBrowser.Providers/Playlists/PlaylistMetadataService.cs47
2 files changed, 48 insertions, 0 deletions
diff --git a/MediaBrowser.Providers/MediaBrowser.Providers.csproj b/MediaBrowser.Providers/MediaBrowser.Providers.csproj
index 5fb7ef11b7..a1c229f9bb 100644
--- a/MediaBrowser.Providers/MediaBrowser.Providers.csproj
+++ b/MediaBrowser.Providers/MediaBrowser.Providers.csproj
@@ -147,6 +147,7 @@
<Compile Include="Photos\PhotoHelper.cs" />
<Compile Include="Photos\PhotoMetadataService.cs" />
<Compile Include="Photos\PhotoProvider.cs" />
+ <Compile Include="Playlists\PlaylistMetadataService.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Manager\ProviderUtils.cs" />
<Compile Include="Studios\StudiosImageProvider.cs" />
diff --git a/MediaBrowser.Providers/Playlists/PlaylistMetadataService.cs b/MediaBrowser.Providers/Playlists/PlaylistMetadataService.cs
new file mode 100644
index 0000000000..d7615eb022
--- /dev/null
+++ b/MediaBrowser.Providers/Playlists/PlaylistMetadataService.cs
@@ -0,0 +1,47 @@
+using MediaBrowser.Common.IO;
+using MediaBrowser.Controller.Configuration;
+using MediaBrowser.Controller.Playlists;
+using MediaBrowser.Controller.Providers;
+using MediaBrowser.Model.Entities;
+using MediaBrowser.Model.Logging;
+using MediaBrowser.Providers.Manager;
+using System.Collections.Generic;
+
+namespace MediaBrowser.Providers.Playlists
+{
+ class PlaylistMetadataService : MetadataService<Playlist, ItemLookupInfo>
+ {
+ public PlaylistMetadataService(IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IProviderRepository providerRepo, IFileSystem fileSystem)
+ : base(serverConfigurationManager, logger, providerManager, providerRepo, fileSystem)
+ {
+ }
+
+ /// <summary>
+ /// Merges the specified source.
+ /// </summary>
+ /// <param name="source">The source.</param>
+ /// <param name="target">The target.</param>
+ /// <param name="lockedFields">The locked fields.</param>
+ /// <param name="replaceData">if set to <c>true</c> [replace data].</param>
+ /// <param name="mergeMetadataSettings">if set to <c>true</c> [merge metadata settings].</param>
+ protected override void MergeData(Playlist source, Playlist target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings)
+ {
+ ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
+
+ if (replaceData || string.IsNullOrEmpty(target.PlaylistMediaType))
+ {
+ target.PlaylistMediaType = source.PlaylistMediaType;
+ }
+
+ if (replaceData || string.IsNullOrEmpty(target.OwnerUserId))
+ {
+ target.OwnerUserId = source.OwnerUserId;
+ }
+
+ if (mergeMetadataSettings)
+ {
+ target.LinkedChildren = source.LinkedChildren;
+ }
+ }
+ }
+}