Player Layout

This commit is contained in:
daniel-c-harvey
2026-06-06 17:28:39 -04:00
parent 3e4ddbb2a6
commit 6b18d7cc1e
9 changed files with 111 additions and 33 deletions
@@ -1,17 +1,16 @@
using DeepDrftModels.DTOs;
using Microsoft.AspNetCore.Components;
namespace DeepDrftPublic.Client.Controls.AudioPlayerBar;
/// <summary>
/// Centre zone of the player: the <see cref="WaveformSeeker"/> over the now-playing metadata row
/// (<see cref="TrackMetaLabel"/>). The seeker owns the pointer-gesture seek logic and reads playback
/// state off the cascaded player service directly; this zone just forwards the seek callbacks up to
/// <see cref="AudioPlayerBar"/> (whose wiring is unchanged) and renders the current track's metadata.
/// Centre zone of the player: the <see cref="WaveformSeeker"/>. The seeker owns the pointer-gesture
/// seek logic and reads playback state off the cascaded player service directly; this zone just
/// forwards the seek callbacks up to <see cref="AudioPlayerBar"/> (whose wiring is unchanged).
/// The now-playing metadata (<see cref="TrackMetaLabel"/>) is a sibling zone in the grid, not nested
/// here, so the responsive layouts can place it independently of the waveform.
/// </summary>
public partial class PlayerSeekZone : ComponentBase
{
[Parameter] public TrackDto? CurrentTrack { get; set; }
[Parameter] public EventCallback OnSeekStart { get; set; }
[Parameter] public EventCallback<double> OnSeekEnd { get; set; }
[Parameter] public EventCallback<double> OnSeekChange { get; set; }