Files
LlamaCasty/Services/Audio/ITraxPlayer.cs
T
gramps 7339df5fcd feat(dock): the TRAX bay — track, play/pause, level, duck badge
Unit 7. The bay shows the track name (left-click toggles playback, right-click opens the picker —
the label stays the control), a play/pause button, the duck badge, and a dB level.

No ladder here, deliberately: nothing measures the music bed, and a decorative ladder would break
the measured-not-painted rule. A test asserts the bay has no SegmentMeter.

The level is real: `ITraxPlayer.UserGain` is a new creator gain multiplied onto the fixed design
volume, separate from `LocalGain` (which follows the desktop mute). The VM's `TraxVolumeDb` is the
same dB scale as the other faders, so unity means the bed's design level.
2026-10-30 13:15:17 -07:00

19 lines
684 B
C#

namespace ytLive.Services.Audio;
/// <summary>Seam over the TRAX background-music player (<see cref="MusicPlayer"/>) so the
/// toggle/status-light logic is testable without a real audio device.</summary>
public interface ITraxPlayer : IDisposable
{
event Action<Exception?>? PlaybackEnded;
string? TrackName { get; }
bool IsPlaying { get; }
float LocalGain { get; set; }
/// <summary>The creator's TRAX level (1 = the bed's fixed design level). Separate from
/// <see cref="LocalGain"/>, which follows the desktop mute; the dock's fader moves this.</summary>
float UserGain { get; set; }
void Load(string path);
void Play();
void Pause();
}