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.
19 lines
684 B
C#
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();
|
|
}
|