feat: configure explicit state-dependent player keybindings
This commit is contained in:
@@ -62,6 +62,16 @@ struct SystemPlaybackChecks {
|
||||
require(model.state.position == pausedPosition, "repeated pause preserves position")
|
||||
require(center.nowPlayingInfo?[MPNowPlayingInfoPropertyPlaybackRate] as? Double == 0,
|
||||
"paused system timeline does not extrapolate")
|
||||
let playbackKey = try! KeyChord("space")
|
||||
require(model.handleKey(playbackKey) && model.effectivePlaying,
|
||||
"play binding records intent before backend acknowledgement")
|
||||
require(model.handleKey(playbackKey) && !model.effectivePlaying,
|
||||
"same binding resolves pause against pending play intent")
|
||||
require(model.handleKey(playbackKey, isRepeat: true) && !model.effectivePlaying,
|
||||
"held paired shortcut is consumed without oscillating")
|
||||
until("rapid opposite intents settle to paused") { model.state.status == PLAYER_PAUSED }
|
||||
require(!model.perform(.pause) && !model.effectivePlaying,
|
||||
"explicit pause cannot resume an already paused player")
|
||||
|
||||
let seekableState = model.state
|
||||
var nonseekableState = seekableState
|
||||
|
||||
Reference in New Issue
Block a user