aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Providers/ISubtitleProvider.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/Providers/ISubtitleProvider.cs')
-rw-r--r--MediaBrowser.Controller/Providers/ISubtitleProvider.cs55
1 files changed, 55 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/Providers/ISubtitleProvider.cs b/MediaBrowser.Controller/Providers/ISubtitleProvider.cs
new file mode 100644
index 000000000..a3aaaf298
--- /dev/null
+++ b/MediaBrowser.Controller/Providers/ISubtitleProvider.cs
@@ -0,0 +1,55 @@
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace MediaBrowser.Controller.Providers
+{
+ public interface ISubtitleProvider
+ {
+ /// <summary>
+ /// Gets the name.
+ /// </summary>
+ /// <value>The name.</value>
+ string Name { get; }
+
+ /// <summary>
+ /// Gets the supported media types.
+ /// </summary>
+ /// <value>The supported media types.</value>
+ IEnumerable<SubtitleMediaType> SupportedMediaTypes { get; }
+
+ /// <summary>
+ /// Gets the subtitles.
+ /// </summary>
+ /// <param name="request">The request.</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ /// <returns>Task{SubtitleResponse}.</returns>
+ Task<SubtitleResponse> GetSubtitles(SubtitleRequest request, CancellationToken cancellationToken);
+ }
+
+ public enum SubtitleMediaType
+ {
+ Episode = 0,
+ Movie = 1
+ }
+
+ public class SubtitleResponse
+ {
+ public string Format { get; set; }
+ public bool HasContent { get; set; }
+ public Stream Stream { get; set; }
+ }
+
+ public class SubtitleRequest
+ {
+ public string Language { get; set; }
+
+ public SubtitleMediaType ContentType { get; set; }
+
+ public string MediaPath { get; set; }
+ public string SeriesName { get; set; }
+ public int? IndexNumber { get; set; }
+ public int? ParentIndexNumber { get; set; }
+ }
+}