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.
53 lines
2.2 KiB
53 lines
2.2 KiB
using ErsatzTV.Core.Domain; |
|
using ErsatzTV.Core.Domain.Filler; |
|
using ErsatzTV.Core.Interfaces.Scheduling; |
|
|
|
namespace ErsatzTV.Core.Scheduling.YamlScheduling; |
|
|
|
public class YamlPlayoutSchedulerCount : YamlPlayoutScheduler |
|
{ |
|
public static DateTimeOffset Schedule( |
|
Playout playout, |
|
DateTimeOffset currentTime, |
|
YamlPlayoutCountInstruction count, |
|
IMediaCollectionEnumerator enumerator) |
|
{ |
|
for (int i = 0; i < count.Count; i++) |
|
{ |
|
foreach (MediaItem mediaItem in enumerator.Current) |
|
{ |
|
TimeSpan itemDuration = DurationForMediaItem(mediaItem); |
|
|
|
// create a playout item |
|
var playoutItem = new PlayoutItem |
|
{ |
|
MediaItemId = mediaItem.Id, |
|
Start = currentTime.UtcDateTime, |
|
Finish = currentTime.UtcDateTime + itemDuration, |
|
InPoint = TimeSpan.Zero, |
|
OutPoint = itemDuration, |
|
FillerKind = FillerKind.None, //blockItem.IncludeInProgramGuide ? FillerKind.None : FillerKind.GuideMode, |
|
//CustomTitle = scheduleItem.CustomTitle, |
|
//WatermarkId = scheduleItem.WatermarkId, |
|
//PreferredAudioLanguageCode = scheduleItem.PreferredAudioLanguageCode, |
|
//PreferredAudioTitle = scheduleItem.PreferredAudioTitle, |
|
//PreferredSubtitleLanguageCode = scheduleItem.PreferredSubtitleLanguageCode, |
|
//SubtitleMode = scheduleItem.SubtitleMode |
|
//GuideGroup = effectiveBlock.TemplateItemId, |
|
//GuideStart = effectiveBlock.Start.UtcDateTime, |
|
//GuideFinish = blockFinish.UtcDateTime, |
|
//BlockKey = JsonConvert.SerializeObject(effectiveBlock.BlockKey), |
|
//CollectionKey = JsonConvert.SerializeObject(collectionKey, JsonSettings), |
|
//CollectionEtag = collectionEtags[collectionKey] |
|
}; |
|
|
|
playout.Items.Add(playoutItem); |
|
|
|
currentTime += itemDuration; |
|
enumerator.MoveNext(); |
|
} |
|
} |
|
|
|
return currentTime; |
|
} |
|
}
|
|
|