ios 1.0.10: shuffle/repeat on Now Playing, playback speed

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
cdnutterandClaude Opus 5.5 committed 2026-10-20 11:21:32 -07:00
1 parent 5b767cacc2
commit b0dba777f9
6 files changed
+96 -8

No files matched your search

+1 -1
View File
@@ -62,7 +62,7 @@ final class NowPlaying: @unchecked Sendable {
MPMediaItemPropertyAlbumTitle: t.album,
MPMediaItemPropertyPlaybackDuration: Double(max(pm.durationMs, t.durationMs)) / 1000,
MPNowPlayingInfoPropertyElapsedPlaybackTime: Double(pm.positionMs()) / 1000,
MPNowPlayingInfoPropertyPlaybackRate: pm.isPlaying && !pm.buffering ? 1.0 : 0.0,
MPNowPlayingInfoPropertyPlaybackRate: pm.isPlaying && !pm.buffering ? pm.speed : 0.0,
MPNowPlayingInfoPropertyDefaultPlaybackRate: 1.0,
MPNowPlayingInfoPropertyMediaType: MPNowPlayingInfoMediaType.audio.rawValue,
MPNowPlayingInfoPropertyPlaybackQueueIndex: max(pm.index, 0),
@@ -123,6 +123,7 @@ final class PlaybackManager: StemEngineListener, @unchecked Sendable {
private(set) var stemNames: [String] = []
private(set) var mix: [String: StemSetting] = [:]
private(set) var master: Float
private(set) var speed = 1.0
private(set) var waveform: Waveform?
private(set) var durationMs: Int64 = 0
private(set) var message: AppMessage?
@@ -165,6 +166,8 @@ final class PlaybackManager: StemEngineListener, @unchecked Sendable {
eq.onParams = { [weak self] p in self?.engine.eqParams = p }
engine.eqParams = eq.currentParams()
engine.masterGain = masterTaper(master)
speed = settings.playbackSpeed
engine.setSpeed(speed)
restore()
observeSession()
Task { @MainActor [weak self] in
@@ -329,6 +332,15 @@ final class PlaybackManager: StemEngineListener, @unchecked Sendable {
func setShuffle(_ on: Bool) { if on != shuffle { toggleShuffle() } }
static let speeds: [Double] = [0.5, 0.75, 0.9, 1, 1.1, 1.25, 1.5, 2]
func setSpeed(_ v: Double) {
speed = min(max(v, 0.5), 2)
engine.setSpeed(speed)
settings.playbackSpeed = speed
changed()
}
// ---- transport ----------------------------------------------------------------------
func play() {