feat(public): add Theater Mode to release detail pages
Toggle left of the lava popover hides release content so the visualizer fills the surface; player bar grows to carry the playing release's cover, title, and share. State on WaveformVisualizerControlState; pages and bar observe it.
This commit is contained in:
@@ -97,6 +97,13 @@ public sealed class WaveformVisualizerControlState
|
||||
/// </summary>
|
||||
public const bool DefaultWaveformEnabled = true;
|
||||
|
||||
/// <summary>
|
||||
/// Default Theater-mode state. <c>false</c> so a fresh page load opens with the full release page,
|
||||
/// not the bare visualizer (Phase 20 §4/OQ5). Has no TS-side anchor: Theater Mode is a page-chrome
|
||||
/// presentation flag, not a visualizer dial — the bridge never reads it.
|
||||
/// </summary>
|
||||
public const bool DefaultTheaterMode = false;
|
||||
|
||||
/// <summary>Apparent bottom-to-top scroll rate, normalized [0,1]. Bridge maps it to a visible
|
||||
/// time-span via <see cref="WaveformZoomMapping"/>; the standalone resolution/zoom control is gone.</summary>
|
||||
public double ScrollSpeed { get; set; } = DefaultScrollSpeed;
|
||||
@@ -137,9 +144,19 @@ public sealed class WaveformVisualizerControlState
|
||||
/// </summary>
|
||||
public bool WaveformEnabled { get; set; } = DefaultWaveformEnabled;
|
||||
|
||||
/// <summary>
|
||||
/// Whether Theater Mode is on (Phase 20). When <c>true</c> the three release-detail pages remove
|
||||
/// their release content via <c>@if</c> so the visualizer fills the surface, and the player bar
|
||||
/// grows to carry the playing release's identity. Distinct from the visualizer dials: the bridge
|
||||
/// ignores it — the pages and the player bar observe it through the same <see cref="Changed"/> seam.
|
||||
/// Gated for visibility on <see cref="LavaEnabled"/> || <see cref="WaveformEnabled"/> at the toggle.
|
||||
/// </summary>
|
||||
public bool TheaterMode { get; set; } = DefaultTheaterMode;
|
||||
|
||||
/// <summary>
|
||||
/// Raised whenever any control value changes. The visualizer bridge subscribes to push the
|
||||
/// affected dial(s). Mutators set the property then raise this; subscribers re-read the values.
|
||||
/// affected dial(s); the Theater-Mode observers (detail pages, player bar) subscribe to react to
|
||||
/// <see cref="TheaterMode"/>. Mutators set the property then raise this; subscribers re-read the values.
|
||||
/// </summary>
|
||||
public event Action? Changed;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user