mirror of
https://github.com/yattee/yattee.git
synced 2025-04-25 16:16: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)
|
||||
}
|
||||
|
||||
HStack {
|
||||
controlsHeader("Playback Mode")
|
||||
Spacer()
|
||||
playbackModeControl
|
||||
}
|
||||
.padding(.vertical, 10)
|
||||
|
||||
HStack {
|
||||
controlsHeader("Rate")
|
||||
Spacer()
|
||||
@ -77,7 +84,6 @@ struct PlaybackSettings: View {
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
if player.activeBackend == .mpv {
|
||||
HStack {
|
||||
controlsHeader("Captions")
|
||||
@ -281,6 +287,40 @@ struct PlaybackSettings: View {
|
||||
#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 {
|
||||
#if os(macOS)
|
||||
qualityProfilePicker
|
||||
|
Loading…
x
Reference in New Issue
Block a user