feat(p12-w2): track-cardinal high-res waveform fetch + bridge rewire
Add GET api/track/{trackEntryKey}/waveform/high-res (+ proxy), ITrackDataService.GetTrackWaveform; rewire visualizer to resolve the current track's EntryKey and re-fetch on track change. Retire the client mix-waveform read path.
This commit is contained in:
@@ -24,11 +24,4 @@ public interface IReleaseDataService
|
||||
|
||||
/// <summary>Single release resolved by its opaque public EntryKey, with both metadata satellites (nulls for non-matching media).</summary>
|
||||
Task<ApiResult<ReleaseDto>> GetByEntryKey(string entryKey);
|
||||
|
||||
/// <summary>
|
||||
/// The Mix waveform datum for a release addressed by its public EntryKey. Success with a value
|
||||
/// when present; success with a null value when no datum is stored (a valid state, not a failure);
|
||||
/// failure on any other transport error.
|
||||
/// </summary>
|
||||
Task<ApiResult<WaveformProfileDto?>> GetMixWaveform(string entryKey);
|
||||
}
|
||||
|
||||
@@ -30,6 +30,14 @@ public interface ITrackDataService
|
||||
|
||||
Task<ApiResult<TrackDto>> GetTrack(string trackId);
|
||||
|
||||
/// <summary>
|
||||
/// The per-track high-res waveform datum, addressed by the track's EntryKey (phase-12 §5b — the
|
||||
/// datum is the track's; the release is only addressing context). Success with a value when a
|
||||
/// high-res datum is stored; success with a null value when none is (a not-yet-backfilled track —
|
||||
/// a valid state, not a failure, the visualizer blanks); failure on any other transport error.
|
||||
/// </summary>
|
||||
Task<ApiResult<WaveformProfileDto?>> GetTrackWaveform(string trackEntryKey);
|
||||
|
||||
/// <summary>
|
||||
/// Fetches a random track from the public library for instant play. Success with a value on a
|
||||
/// hit; success with a null value when the library is empty (a valid state, not a failure);
|
||||
|
||||
@@ -31,7 +31,4 @@ public class ReleaseClientDataService : IReleaseDataService
|
||||
|
||||
public Task<ApiResult<ReleaseDto>> GetByEntryKey(string entryKey)
|
||||
=> _releaseClient.GetByEntryKey(entryKey);
|
||||
|
||||
public Task<ApiResult<WaveformProfileDto?>> GetMixWaveform(string entryKey)
|
||||
=> _releaseClient.GetMixWaveform(entryKey);
|
||||
}
|
||||
|
||||
@@ -39,6 +39,9 @@ public class TrackClientDataService : ITrackDataService
|
||||
public Task<ApiResult<TrackDto>> GetTrack(string trackId)
|
||||
=> _trackClient.GetTrack(trackId);
|
||||
|
||||
public Task<ApiResult<WaveformProfileDto?>> GetTrackWaveform(string trackEntryKey)
|
||||
=> _trackClient.GetTrackWaveform(trackEntryKey);
|
||||
|
||||
public Task<ApiResult<TrackDto?>> GetRandomTrack()
|
||||
=> _trackClient.GetRandom();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user