Files
zap-stream-api/NostrStreamer/Services/StreamManager/IStreamManager.cs
2023-07-25 17:45:44 +01:00

69 lines
1.8 KiB
C#

using NostrStreamer.Database;
namespace NostrStreamer.Services.StreamManager;
public interface IStreamManager
{
/// <summary>
/// Return the current stream
/// </summary>
/// <returns></returns>
UserStream GetStream();
/// <summary>
/// Stream ingress check on srs-edge
/// </summary>
/// <returns>List of forward URLs</returns>
Task<List<string>> OnForward();
/// <summary>
/// Stream started at origin for HLS split
/// </summary>
/// <returns></returns>
Task StreamStarted();
/// <summary>
/// Stream stopped
/// </summary>
/// <returns></returns>
Task StreamStopped();
/// <summary>
/// Stream reap HLS
/// </summary>
/// <param name="duration"></param>
/// <returns></returns>
Task ConsumeQuota(double duration);
/// <summary>
/// Update stream details
/// </summary>
/// <param name="title"></param>
/// <param name="summary"></param>
/// <param name="image"></param>
/// <param name="tags"></param>
/// <param name="contentWarning"></param>
/// <returns></returns>
Task PatchEvent(string? title, string? summary, string? image, string[]? tags, string? contentWarning);
/// <summary>
/// Update viewer count
/// </summary>
public Task UpdateViewers();
/// <summary>
/// Add a guest to the stream
/// </summary>
/// <param name="pubkey"></param>
/// <param name="role"></param>
/// <param name="zapSplit"></param>
/// <returns></returns>
Task AddGuest(string pubkey, string role, decimal zapSplit);
/// <summary>
/// Remove guest from the stream
/// </summary>
/// <param name="pubkey"></param>
/// <returns></returns>
Task RemoveGuest(string pubkey);
}