mirror of https://github.com/ErsatzTV/ErsatzTV.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
2.2 KiB
57 lines
2.2 KiB
using System.Diagnostics; |
|
using ErsatzTV.Core.Domain.Filler; |
|
|
|
namespace ErsatzTV.Core.Domain; |
|
|
|
[DebuggerDisplay("{MediaItemId} - {StartOffset} - {FinishOffset}")] |
|
public class PlayoutItem |
|
{ |
|
public int Id { get; set; } |
|
public int MediaItemId { get; set; } |
|
public MediaItem MediaItem { get; set; } |
|
public DateTime Start { get; set; } |
|
public DateTime Finish { get; set; } |
|
public DateTime? GuideFinish { get; set; } |
|
public string CustomTitle { get; set; } |
|
public int GuideGroup { get; set; } |
|
public FillerKind FillerKind { get; set; } |
|
public int PlayoutId { get; set; } |
|
public Playout Playout { get; set; } |
|
public TimeSpan InPoint { get; set; } |
|
public TimeSpan OutPoint { get; set; } |
|
public string ChapterTitle { get; set; } |
|
public ChannelWatermark Watermark { get; set; } |
|
public int? WatermarkId { get; set; } |
|
public bool DisableWatermarks { get; set; } |
|
public string PreferredAudioLanguageCode { get; set; } |
|
public string PreferredAudioTitle { get; set; } |
|
public string PreferredSubtitleLanguageCode { get; set; } |
|
public ChannelSubtitleMode? SubtitleMode { get; set; } |
|
public string BlockKey { get; set; } |
|
public string CollectionKey { get; set; } |
|
public string CollectionEtag { get; set; } |
|
public DateTimeOffset StartOffset => new DateTimeOffset(Start, TimeSpan.Zero).ToLocalTime(); |
|
public DateTimeOffset FinishOffset => new DateTimeOffset(Finish, TimeSpan.Zero).ToLocalTime(); |
|
|
|
public DateTimeOffset? GuideFinishOffset => GuideFinish.HasValue |
|
? new DateTimeOffset(GuideFinish.Value, TimeSpan.Zero).ToLocalTime() |
|
: null; |
|
|
|
public PlayoutItem ForChapter(MediaChapter chapter) => |
|
new() |
|
{ |
|
MediaItemId = MediaItemId, |
|
MediaItem = MediaItem, |
|
Start = Start, |
|
Finish = Start + chapter.EndTime - chapter.StartTime, |
|
GuideFinish = GuideFinish, |
|
CustomTitle = CustomTitle, |
|
GuideGroup = GuideGroup, |
|
FillerKind = FillerKind, |
|
PlayoutId = PlayoutId, |
|
Playout = Playout, |
|
InPoint = chapter.StartTime, |
|
OutPoint = chapter.EndTime, |
|
ChapterTitle = chapter.Title |
|
}; |
|
}
|
|
|