Stream custom live channels using your own media
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.
 
 
 
 

42 lines
1.2 KiB

using ErsatzTV.Core.Domain;
using ErsatzTV.Core.Domain.Filler;
namespace ErsatzTV.Core.Scheduling.Engine;
public interface ISchedulingEngine
{
ISchedulingEngine WithPlayoutId(int playoutId);
ISchedulingEngine WithMode(PlayoutBuildMode mode);
ISchedulingEngine WithSeed(int seed);
ISchedulingEngine WithReferenceData(PlayoutReferenceData referenceData);
ISchedulingEngine BuildBetween(DateTimeOffset start, DateTimeOffset finish);
ISchedulingEngine RemoveBefore(DateTimeOffset removeBefore);
ISchedulingEngine RestoreOrReset(Option<PlayoutAnchor> maybeAnchor);
// content definitions
Task<ISchedulingEngine> AddCollection(string key, string collectionName, PlaybackOrder playbackOrder);
Task<ISchedulingEngine> AddSearch(string key, string query, PlaybackOrder playbackOrder);
// content instructions
ISchedulingEngine AddCount(
string content,
int count,
Option<FillerKind> fillerKind,
string customTitle,
bool disableWatermarks);
// control instructions
ISchedulingEngine WaitUntil(TimeOnly waitUntil, bool tomorrow, bool rewindOnReset);
PlayoutAnchor GetAnchor();
ISchedulingEngineState GetState();
}