incremental waveform generation (kind-of) working

This commit is contained in:
Drew Weymouth
2025-07-26 15:33:22 -07:00
parent 88b7f62e50
commit c521c617ec
17 changed files with 365 additions and 160 deletions
+7 -7
View File
@@ -181,8 +181,8 @@ func (d *DLNAPlayer) PlayFile(urlstr string, meta mediaprovider.MediaItemMetadat
}()
}
d.state = playing
remainingDur := meta.Duration - int(startTime)
d.setTrackChangeTimer(time.Duration(remainingDur) * time.Second)
remainingDur := meta.Duration - time.Duration(startTime)*time.Second
d.setTrackChangeTimer(remainingDur)
d.stopwatch.Reset()
d.stopwatch.Start()
d.lastStartTime = int(startTime)
@@ -265,7 +265,7 @@ func (d *DLNAPlayer) Continue() error {
return err
}
d.metaLock.Lock()
nextTrackChange := time.Duration(d.curTrackMeta.Duration)*time.Second - d.curPlayPos()
nextTrackChange := d.curTrackMeta.Duration - d.curPlayPos()
d.metaLock.Unlock()
d.state = playing
d.setTrackChangeTimer(nextTrackChange)
@@ -349,7 +349,7 @@ func (d *DLNAPlayer) SeekSeconds(secs float64) error {
if d.state == playing {
d.metaLock.Lock()
nextTrackChange := time.Duration(d.curTrackMeta.Duration)*time.Second - time.Duration(secs)*time.Second
nextTrackChange := d.curTrackMeta.Duration - time.Duration(secs)*time.Second
d.metaLock.Unlock()
d.setTrackChangeTimer(nextTrackChange)
d.stopwatch.Start()
@@ -397,7 +397,7 @@ func (d *DLNAPlayer) GetStatus() player.Status {
return player.Status{
State: state,
TimePos: timePos,
Duration: float64(d.curTrackMeta.Duration),
Duration: d.curTrackMeta.Duration.Seconds(),
}
}
@@ -428,7 +428,7 @@ func (d *DLNAPlayer) syncPlaybackTime() {
if d.state == playing {
d.stopwatch.Start()
}
d.setTrackChangeTimer(time.Duration(d.curTrackMeta.Duration-d.lastStartTime) * time.Second)
d.setTrackChangeTimer(d.curTrackMeta.Duration - time.Duration(d.lastStartTime)*time.Second)
d.InvokeOnSeek()
}
}
@@ -511,7 +511,7 @@ func (d *DLNAPlayer) handleOnTrackChange() {
}
d.curTrackMeta = d.nextTrackMeta
d.nextTrackMeta = mediaprovider.MediaItemMetadata{}
nextTrackChange := time.Duration(d.curTrackMeta.Duration) * time.Second
nextTrackChange := d.curTrackMeta.Duration
d.metaLock.Unlock()
if stopping {
+1 -1
View File
@@ -90,7 +90,7 @@ func (j *JukeboxPlayer) PlayTrack(track *mediaprovider.Track, _ float64) error {
j.curTrack = 0
j.queueLength = 1
j.curTrackDuration = float64(track.Duration)
j.curTrackDuration = track.Duration.Seconds()
return nil
}