60 lines
1.3 KiB
Swift
60 lines
1.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 2021 Aiden Vigue & Jellyfin Contributors
|
|
*/
|
|
|
|
import Defaults
|
|
|
|
enum SubtitleSize: Int32, CaseIterable, Defaults.Serializable {
|
|
case smallest
|
|
case smaller
|
|
case regular
|
|
case larger
|
|
case largest
|
|
}
|
|
|
|
// MARK: - appearance
|
|
|
|
extension SubtitleSize {
|
|
var label: String {
|
|
switch self {
|
|
case .smallest:
|
|
return "Smallest"
|
|
case .smaller:
|
|
return "Smaller"
|
|
case .regular:
|
|
return "Regular"
|
|
case .larger:
|
|
return "Larger"
|
|
case .largest:
|
|
return "Largest"
|
|
}
|
|
}
|
|
}
|
|
|
|
// MARK: - sizing for VLC
|
|
|
|
extension SubtitleSize {
|
|
/// Value to be passed to VLCKit (via hacky internal property, until VLCKit 4)
|
|
///
|
|
/// note that it doesn't correspond to actual font sizes; a smaller int creates bigger text
|
|
var textRendererFontSize: Int {
|
|
switch self {
|
|
case .smallest:
|
|
return 24
|
|
case .smaller:
|
|
return 20
|
|
case .regular:
|
|
return 16
|
|
case .larger:
|
|
return 12
|
|
case .largest:
|
|
return 8
|
|
}
|
|
}
|
|
}
|