|
|
@ -44,6 +44,7 @@ public class YamlPlayoutBuilder( |
|
|
|
System.Collections.Generic.HashSet<string> missingContentKeys = []; |
|
|
|
System.Collections.Generic.HashSet<string> missingContentKeys = []; |
|
|
|
|
|
|
|
|
|
|
|
int itemsAfterRepeat = playout.Items.Count; |
|
|
|
int itemsAfterRepeat = playout.Items.Count; |
|
|
|
|
|
|
|
int guideGroup = 1; |
|
|
|
var index = 0; |
|
|
|
var index = 0; |
|
|
|
while (currentTime < finish) |
|
|
|
while (currentTime < finish) |
|
|
|
{ |
|
|
|
{ |
|
|
@ -60,7 +61,8 @@ public class YamlPlayoutBuilder( |
|
|
|
{ |
|
|
|
{ |
|
|
|
case YamlPlayoutWaitUntilInstruction waitUntil: |
|
|
|
case YamlPlayoutWaitUntilInstruction waitUntil: |
|
|
|
currentTime = HandleWaitUntil(currentTime, waitUntil); |
|
|
|
currentTime = HandleWaitUntil(currentTime, waitUntil); |
|
|
|
break; |
|
|
|
index++; |
|
|
|
|
|
|
|
continue; |
|
|
|
case YamlPlayoutRepeatInstruction: |
|
|
|
case YamlPlayoutRepeatInstruction: |
|
|
|
// repeat resets index into YAML playout
|
|
|
|
// repeat resets index into YAML playout
|
|
|
|
index = 0; |
|
|
|
index = 0; |
|
|
@ -72,6 +74,10 @@ public class YamlPlayoutBuilder( |
|
|
|
|
|
|
|
|
|
|
|
itemsAfterRepeat = playout.Items.Count; |
|
|
|
itemsAfterRepeat = playout.Items.Count; |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
|
|
|
|
case YamlPlayoutNewEpgGroupInstruction: |
|
|
|
|
|
|
|
guideGroup *= -1; |
|
|
|
|
|
|
|
index++; |
|
|
|
|
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Option<IMediaCollectionEnumerator> maybeEnumerator = await GetCachedEnumeratorForContent( |
|
|
|
Option<IMediaCollectionEnumerator> maybeEnumerator = await GetCachedEnumeratorForContent( |
|
|
@ -96,7 +102,7 @@ public class YamlPlayoutBuilder( |
|
|
|
switch (playoutItem) |
|
|
|
switch (playoutItem) |
|
|
|
{ |
|
|
|
{ |
|
|
|
case YamlPlayoutCountInstruction count: |
|
|
|
case YamlPlayoutCountInstruction count: |
|
|
|
currentTime = YamlPlayoutSchedulerCount.Schedule(playout, currentTime, count, enumerator); |
|
|
|
currentTime = YamlPlayoutSchedulerCount.Schedule(playout, currentTime, guideGroup, count, enumerator); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case YamlPlayoutDurationInstruction duration: |
|
|
|
case YamlPlayoutDurationInstruction duration: |
|
|
|
Option<IMediaCollectionEnumerator> durationFallbackEnumerator = await GetCachedEnumeratorForContent( |
|
|
|
Option<IMediaCollectionEnumerator> durationFallbackEnumerator = await GetCachedEnumeratorForContent( |
|
|
@ -109,6 +115,7 @@ public class YamlPlayoutBuilder( |
|
|
|
currentTime = YamlPlayoutSchedulerDuration.Schedule( |
|
|
|
currentTime = YamlPlayoutSchedulerDuration.Schedule( |
|
|
|
playout, |
|
|
|
playout, |
|
|
|
currentTime, |
|
|
|
currentTime, |
|
|
|
|
|
|
|
guideGroup, |
|
|
|
duration, |
|
|
|
duration, |
|
|
|
enumerator, |
|
|
|
enumerator, |
|
|
|
durationFallbackEnumerator); |
|
|
|
durationFallbackEnumerator); |
|
|
@ -124,6 +131,7 @@ public class YamlPlayoutBuilder( |
|
|
|
currentTime = YamlPlayoutSchedulerPadToNext.Schedule( |
|
|
|
currentTime = YamlPlayoutSchedulerPadToNext.Schedule( |
|
|
|
playout, |
|
|
|
playout, |
|
|
|
currentTime, |
|
|
|
currentTime, |
|
|
|
|
|
|
|
guideGroup, |
|
|
|
padToNext, |
|
|
|
padToNext, |
|
|
|
enumerator, |
|
|
|
enumerator, |
|
|
|
fallbackEnumerator); |
|
|
|
fallbackEnumerator); |
|
|
@ -307,6 +315,7 @@ public class YamlPlayoutBuilder( |
|
|
|
{ |
|
|
|
{ |
|
|
|
{ "count", typeof(YamlPlayoutCountInstruction) }, |
|
|
|
{ "count", typeof(YamlPlayoutCountInstruction) }, |
|
|
|
{ "duration", typeof(YamlPlayoutDurationInstruction) }, |
|
|
|
{ "duration", typeof(YamlPlayoutDurationInstruction) }, |
|
|
|
|
|
|
|
{ "new_epg_group", typeof(YamlPlayoutNewEpgGroupInstruction) }, |
|
|
|
{ "pad_to_next", typeof(YamlPlayoutPadToNextInstruction) }, |
|
|
|
{ "pad_to_next", typeof(YamlPlayoutPadToNextInstruction) }, |
|
|
|
{ "repeat", typeof(YamlPlayoutRepeatInstruction) }, |
|
|
|
{ "repeat", typeof(YamlPlayoutRepeatInstruction) }, |
|
|
|
{ "skip_items", typeof(YamlPlayoutSkipItemsInstruction) }, |
|
|
|
{ "skip_items", typeof(YamlPlayoutSkipItemsInstruction) }, |
|
|
|