jellyflood/Shared/Extensions/JellyfinAPI/TranscodeReason.swift
Joe Kribs 0025422634
[iOS & tvOS] Upgrade SDK to 10.10 (#1463)
* Buildable!

* Update file names.

* Default sort to sort name NOT name.

* SessionInfoDto vs SessionInfo

* Targetting

* Fix many invalid `ItemSortBy` existing. Will need to revisit later to see which can still be used!

* ExtraTypes Patch.

* Move from Binding to OnChange. Tested and Working.

* Update README.md

Update README to use 10.10.6. Bumped up from 10.8.13

* Update to Main on https://github.com/jellyfin/jellyfin-sdk-swift.git

* Now using https://github.com/jellyfin/jellyfin-sdk-swift.git again!

* Paths.getUserViews() userId moved to parameters

* Fix ViewModels where -Dto suffixes were removed by https://github.com/jellyfin/Swiftfin/pull/1465 auto-merge.

* SupportedCaseIterable

* tvOS supportedCases fixes for build issue.

* cleanup

* update API to 0.5.1 and correct VideoRangeTypes.

* Remove deviceProfile.responseProfiles = videoPlayer.responseProfiles

* Second to last adjustment:
Resolved: // TODO: 10.10 - Filter to only valid SortBy's for each BaseItemKind.
Last outstanding item: // TODO: 10.10 - What should authenticationProviderID & passwordResetProviderID be?

* Trailers itemID must precede userID

* Force User Policy to exist.

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-04-06 23:42:47 -04:00

108 lines
3.9 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 Foundation
import JellyfinAPI
import SwiftUI
extension TranscodeReason: Displayable, SystemImageable {
var displayTitle: String {
switch self {
case .containerNotSupported:
return L10n.containerNotSupported
case .videoCodecNotSupported:
return L10n.videoCodecNotSupported
case .audioCodecNotSupported:
return L10n.audioCodecNotSupported
case .subtitleCodecNotSupported:
return L10n.subtitleCodecNotSupported
case .audioIsExternal:
return L10n.audioIsExternal
case .secondaryAudioNotSupported:
return L10n.secondaryAudioNotSupported
case .videoProfileNotSupported:
return L10n.videoProfileNotSupported
case .videoLevelNotSupported:
return L10n.videoLevelNotSupported
case .videoResolutionNotSupported:
return L10n.videoResolutionNotSupported
case .videoBitDepthNotSupported:
return L10n.videoBitDepthNotSupported
case .videoFramerateNotSupported:
return L10n.videoFramerateNotSupported
case .refFramesNotSupported:
return L10n.refFramesNotSupported
case .anamorphicVideoNotSupported:
return L10n.anamorphicVideoNotSupported
case .interlacedVideoNotSupported:
return L10n.interlacedVideoNotSupported
case .audioChannelsNotSupported:
return L10n.audioChannelsNotSupported
case .audioProfileNotSupported:
return L10n.audioProfileNotSupported
case .audioSampleRateNotSupported:
return L10n.audioSampleRateNotSupported
case .audioBitDepthNotSupported:
return L10n.audioBitDepthNotSupported
case .containerBitrateExceedsLimit:
return L10n.containerBitrateExceedsLimit
case .videoBitrateNotSupported:
return L10n.videoBitrateNotSupported
case .audioBitrateNotSupported:
return L10n.audioBitrateNotSupported
case .unknownVideoStreamInfo:
return L10n.unknownVideoStreamInfo
case .unknownAudioStreamInfo:
return L10n.unknownAudioStreamInfo
case .directPlayError:
return L10n.directPlayError
case .videoRangeTypeNotSupported:
return L10n.videoRangeTypeNotSupported
case .videoCodecTagNotSupported:
return L10n.videoCodecTagNotSupported
}
}
var systemImage: String {
switch self {
case .containerNotSupported,
.containerBitrateExceedsLimit:
return "shippingbox"
case .audioCodecNotSupported,
.audioIsExternal,
.secondaryAudioNotSupported,
.audioChannelsNotSupported,
.audioProfileNotSupported,
.audioSampleRateNotSupported,
.audioBitDepthNotSupported,
.audioBitrateNotSupported,
.unknownAudioStreamInfo:
return "speaker.wave.2"
case .videoCodecNotSupported,
.videoProfileNotSupported,
.videoLevelNotSupported,
.videoResolutionNotSupported,
.videoBitDepthNotSupported,
.videoFramerateNotSupported,
.refFramesNotSupported,
.anamorphicVideoNotSupported,
.interlacedVideoNotSupported,
.videoBitrateNotSupported,
.unknownVideoStreamInfo,
.videoCodecTagNotSupported,
.videoRangeTypeNotSupported:
return "photo.tv"
case .subtitleCodecNotSupported:
return "captions.bubble"
default:
return "questionmark.app"
}
}
}