Creator rulings, 2026-11-01. - Master strip is 44px (from 36) and its meter is now the largest on screen: 420x14 with 32 segments, centred under the preview, with a 12px MASTER label — bigger than the 9px bay labels. L/R imbalance is a flag on the left, MONO and the session clock on the right. - The kbps / fps / dropped counters are gone from that line: the live readouts already sit above the preview, and the duplicate was noise rather than telemetry. - TRAX is its own bay (MIC | GAME | TRAX | LIP-SYNC) with its own meter bound to TraxMeterFraction. It lived inside the game bay with no ladder, which meant whether the bed was actually playing could not be answered from the dock — and the player already measures its own output. - Lip-sync is narrow (0.45 star) since it is one slider and three presets; the three sound bays are equal width, so their meters keep the same relative size. AudioDockLayout moves with it (156 = 112 + 44; collapsed 44) and the layout test is updated. TraxBayTests now asserts the opposite of the old ruling: the bay HAS a meter, and the game bay no longer carries it.
29 lines
1.4 KiB
C#
29 lines
1.4 KiB
C#
namespace ytLive.Models;
|
||
|
||
/// <summary>How tall the audio dock should be for a given window height.
|
||
///
|
||
/// <para>Creator ruling (2026-10-30): the dock is 148px on a normal window and collapses to a 36px
|
||
/// telemetry strip when the window is short, because at 1366×768 a full dock leaves ~398px for the
|
||
/// preview and the composition starts letterboxing into a postage stamp.</para>
|
||
///
|
||
/// <para>2026-11-01: the master strip grew from 36 to 44 so its meter could be the biggest one on
|
||
/// screen (centred under the preview), so both constants moved with it — 156 = 112 bays + 44.</para>
|
||
///
|
||
/// <para>Pure, so the switch is testable without a window.</para></summary>
|
||
public static class AudioDockLayout
|
||
{
|
||
/// <summary>Below this window height the dock collapses. The app's minimum is 768; the
|
||
/// default window is 1040, so a normal launch shows the full dock.</summary>
|
||
public const double CollapseBelowHeight = 900;
|
||
|
||
/// <summary>148 = 112 of bays + the 36px master strip. The mockup wanted 168; the creator
|
||
/// read that as wasted space under a 154px scene strip, so the bays lost 20px of air.</summary>
|
||
public const double ExpandedHeight = 156;
|
||
public const double CollapsedHeight = 44;
|
||
|
||
public static bool IsCollapsed(double windowHeight) => windowHeight < CollapseBelowHeight;
|
||
|
||
public static double HeightFor(double windowHeight)
|
||
=> IsCollapsed(windowHeight) ? CollapsedHeight : ExpandedHeight;
|
||
}
|