using System; using System.Linq; namespace ytLive.Models; /// /// The app's five canonical scenes. Scenes are worked on by name; you can delete /// them ("work with less"), but the app only ever adds back one of these five — /// anything beyond them is OBS territory. The live desktop/game backdrop exists /// only in the Live scene. /// public static class SceneCatalog { public const string Starting = "Starting"; public const string Live = "Live"; public const string Brb = "BRB"; public const string Chat = "Chat"; public const string Ending = "Ending"; public static readonly string[] All = { Starting, Live, Brb, Chat, Ending }; public static bool IsCanonical(string? name) => name != null && All.Contains(name.Trim(), StringComparer.OrdinalIgnoreCase); public static bool Is(string? name, string canonical) => name != null && string.Equals(name.Trim(), canonical, StringComparison.OrdinalIgnoreCase); public static bool IsChat(string? name) => Is(name, Chat); /// Only the Live scene carries the live desktop/game backdrop. public static bool HasBackdrop(string? name) => Is(name, Live); }