mirror of
https://github.com/yattee/yattee.git
synced 2025-04-26 08:36:29 +00:00
Add playback mode to playback settings
This commit is contained in:
parent
9a594b4a8d
commit
c8feeca41f
@ -62,6 +62,13 @@ struct PlaybackSettings: View {
|
|||||||
.frame(maxWidth: 50, alignment: .trailing)
|
.frame(maxWidth: 50, alignment: .trailing)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HStack {
|
||||||
|
controlsHeader("Playback Mode")
|
||||||
|
Spacer()
|
||||||
|
playbackModeControl
|
||||||
|
}
|
||||||
|
.padding(.vertical, 10)
|
||||||
|
|
||||||
HStack {
|
HStack {
|
||||||
controlsHeader("Rate")
|
controlsHeader("Rate")
|
||||||
Spacer()
|
Spacer()
|
||||||
@ -77,7 +84,6 @@ struct PlaybackSettings: View {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if player.activeBackend == .mpv {
|
if player.activeBackend == .mpv {
|
||||||
HStack {
|
HStack {
|
||||||
controlsHeader("Captions")
|
controlsHeader("Captions")
|
||||||
@ -281,6 +287,40 @@ struct PlaybackSettings: View {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ViewBuilder var playbackModeControl: some View {
|
||||||
|
#if os(tvOS)
|
||||||
|
Button {
|
||||||
|
player.playbackMode = player.playbackMode.next()
|
||||||
|
} label: {
|
||||||
|
Label(player.playbackMode.description, systemImage: player.playbackMode.systemImage)
|
||||||
|
.transaction { t in t.animation = nil }
|
||||||
|
.frame(minWidth: 350)
|
||||||
|
}
|
||||||
|
#elseif os(macOS)
|
||||||
|
playbackModePicker
|
||||||
|
.modifier(SettingsPickerModifier())
|
||||||
|
#if os(macOS)
|
||||||
|
.frame(maxWidth: 150)
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
Menu {
|
||||||
|
playbackModePicker
|
||||||
|
} label: {
|
||||||
|
Label(player.playbackMode.description, systemImage: player.playbackMode.systemImage)
|
||||||
|
}
|
||||||
|
.transaction { t in t.animation = .none }
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
var playbackModePicker: some View {
|
||||||
|
Picker("Playback Mode", selection: $player.playbackMode) {
|
||||||
|
ForEach(PlayerModel.PlaybackMode.allCases, id: \.rawValue) { mode in
|
||||||
|
Label(mode.description, systemImage: mode.systemImage).tag(mode)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.labelsHidden()
|
||||||
|
}
|
||||||
|
|
||||||
@ViewBuilder private var qualityProfileButton: some View {
|
@ViewBuilder private var qualityProfileButton: some View {
|
||||||
#if os(macOS)
|
#if os(macOS)
|
||||||
qualityProfilePicker
|
qualityProfilePicker
|
||||||
|
Loading…
x
Reference in New Issue
Block a user