jellyflood/Shared/Objects/VideoPlayerActionButton.swift

90 lines
2.3 KiB
Swift

//
// Swiftfin is subject to the terms of the Mozilla Public
// License, v2.0. If a copy of the MPL was not distributed with this
// file, you can obtain one at https://mozilla.org/MPL/2.0/.
//
// Copyright (c) 2025 Jellyfin & Jellyfin Contributors
//
import Defaults
import Foundation
// TODO: atow, advanced was removed to be redesigned before being released
enum VideoPlayerActionButton: String, CaseIterable, Defaults.Serializable, Displayable, Identifiable {
// case advanced
case aspectFill
case audio
case autoPlay
case chapters
case playbackSpeed
case playNextItem
case playPreviousItem
case subtitles
var displayTitle: String {
switch self {
// case .advanced:
// return L10n.advanced
case .aspectFill:
return L10n.aspectFill
case .audio:
return L10n.audio
case .autoPlay:
return L10n.autoPlay
case .chapters:
return L10n.chapters
case .playbackSpeed:
return L10n.playbackSpeed
case .playNextItem:
return L10n.playNextItem
case .playPreviousItem:
return L10n.playPreviousItem
case .subtitles:
return L10n.subtitles
}
}
var id: String {
rawValue
}
var settingsSystemImage: String {
switch self {
// case .advanced:
// return "gearshape.fill"
case .aspectFill:
return "arrow.up.left.and.arrow.down.right"
case .audio:
return "speaker.wave.2"
case .autoPlay:
return "play.circle.fill"
case .chapters:
return "list.bullet.circle"
case .playbackSpeed:
return "speedometer"
case .playNextItem:
return "chevron.right.circle"
case .playPreviousItem:
return "chevron.left.circle"
case .subtitles:
return "captions.bubble"
}
}
static let defaultBarActionButtons: [VideoPlayerActionButton] = [
.aspectFill,
.autoPlay,
.playPreviousItem,
.playNextItem,
]
static let defaultMenuActionButtons: [VideoPlayerActionButton] = [
.audio,
.subtitles,
.playbackSpeed,
.chapters,
// .advanced,
]
}