feat(scoreboard): a master on/off switch that also stops the polling
Creator: "even if it's not visible, we want to avoid polling." ScoreboardEnabled is the layer's master switch in the properties panel. Off means two things: - the strip frame is null in every scene (per-scene eye toggles stay independent), and - the cadence policy returns None at every phase — a scoreboard nobody can see must not spend quota. The switch is persisted (Scoreboard.Enabled), because one that resets would quietly resume polling. The polling gate is ScoreboardPollsEnabled: master switch AND at least one scene with a visible scoreboard — so hiding it in all five scenes also stops the polls. Guards: ScoreboardCadenceTests adds the switch off across live/test/recording; ScoreboardProperties pins the checkbox and the VM surface.
This commit is contained in:
@@ -32,6 +32,11 @@ public class ScoreboardCadenceTests
|
||||
Assert.Equal(ScoreboardPoll.None,
|
||||
ScoreboardCadence.Due(SessionPhase.Live, old, now.AddSeconds(-10), now));
|
||||
|
||||
// The master switch beats every other rule: off means silent, whatever the session is.
|
||||
Assert.Equal(ScoreboardPoll.None, ScoreboardCadence.Due(SessionPhase.Live, old, old, now, enabled: false));
|
||||
Assert.Equal(ScoreboardPoll.None, ScoreboardCadence.Due(SessionPhase.Test, old, old, now, enabled: false));
|
||||
Assert.Equal(ScoreboardPoll.None, ScoreboardCadence.Due(SessionPhase.Recording, old, old, now, enabled: false));
|
||||
|
||||
// Subscribers alone mid-window.
|
||||
Assert.Equal(ScoreboardPoll.SubscribersOnly,
|
||||
ScoreboardCadence.Due(SessionPhase.Live, now, old, now));
|
||||
|
||||
@@ -17,6 +17,9 @@ public class ScoreboardPropertiesTests
|
||||
// Gated on the selected layer being a scoreboard.
|
||||
Assert.Contains("SelectedElement.IsScoreboard", panel);
|
||||
|
||||
// The master switch sits in the same panel: off hides the strip and stops the polling.
|
||||
Assert.Contains("ScoreboardEnabled", panel);
|
||||
|
||||
// The eight fact switches.
|
||||
foreach (var binding in new[]
|
||||
{
|
||||
@@ -48,6 +51,7 @@ public class ScoreboardPropertiesTests
|
||||
{
|
||||
"ScoreboardTextColor", "ScoreboardBackgroundColor", "ScoreboardBackgroundOpacity",
|
||||
"ScoreboardFontSize", "ScoreboardColorOptions", "ScoreboardShowSubscribers",
|
||||
"ScoreboardEnabled",
|
||||
})
|
||||
Assert.NotNull(type.GetProperty(name));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user