feat(player): configurable play/pause fade duration#1
Closed
JenteJan wants to merge 1 commit into
Closed
Conversation
The play/pause volume fade was hardcoded to 175ms, which delays the actual mpv pause until the fade completes and makes toggling playback feel sluggish compared to native players like mpc/mpv. Expose the fade length as a 'Play/pause fade duration' setting (0-1000ms) shown beneath the existing fade toggle. A value of 0 (or any duration shorter than one fade step) now skips the fade entirely and hits mpv immediately for an instant, snappy response. Default stays at 175ms to preserve current behaviour.
3f15767 to
1fcea7d
Compare
Owner
Author
|
Superseded by DonutWare#1020 (opened upstream). |
JenteJan
added a commit
that referenced
this pull request
Jun 16, 2026
DLNA (and the default Chromecast receiver) now show the item's backdrop behind the cast badge, matching the Jellyfin receiver — in both the fullscreen player and the minimized bar. Collapse four near-duplicate placeholder widgets (_CastingPlaceholder x2, _RemotePlaybackPlaceholder, _WebCastPlaceholder) into one shared CastingPlaceholder; thread the current item's image into the DLNA and default-receiver players via cast_provider._currentItemImage().
JenteJan
added a commit
that referenced
this pull request
Jun 16, 2026
…DonutWare#9) Video AirPlay goes through the AVPlayer-backed list-tile; the native AVRoutePickerView icon only routes audio (which we don't want) and was confusing alongside it. Remove the icon from the picker and the AirPlayRouteButton widget; the 'AirPlay' tile is now the single, clear entry ('Play video on an Apple TV'). The native AirPlayRouteView platform views (ios/macos) are now unused and can be deleted in a follow-up.
JenteJan
added a commit
that referenced
this pull request
Jun 16, 2026
…ow-up) The AirPlay entry tapped, then connected to nothing until a route was picked. Now the iOS AirPlay row is the native AVRoutePickerView (video targets first): tapping it opens Apple's device sheet, and the native side reports route selection (AVAudioSession airPlay output) over a method channel. We swap to the AVPlayer player only when a device is actually selected, and disconnect when it's deselected — so cancelling the dialog leaves nothing connected. macOS keeps the existing list-tile path. Builds on iOS; needs device validation that the route-change detection fires as expected.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds a "Play/pause fade duration" setting (0–1000 ms) under the existing Play/pause volume fade toggle in Settings → Player.
Why
The play/pause volume fade was hardcoded to 175 ms. On pause that delays the actual mpv pause until the fade completes, so toggling playback feels sluggish vs. native players (mpc/mpv). The fade is a deliberate feature for music, so rather than removing it this exposes its length as a setting.
Behaviour
Notes
Draft — opened against my fork's develop for review before sending upstream.