jellyflood/Shared/Objects/MediaPlayerManager/NowPlayable/NowPlayableMetadata.swift

66 lines
1.8 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 MediaPlayer
struct NowPlayableStaticMetadata {
let mediaType: MPNowPlayingInfoMediaType
let isLiveStream: Bool
let title: String
let artist: String?
let artwork: MPMediaItemArtwork?
let albumArtist: String?
let albumTitle: String?
init(
mediaType: MPNowPlayingInfoMediaType,
isLiveStream: Bool = false,
title: String,
artist: String? = nil,
artwork: MPMediaItemArtwork? = nil,
albumArtist: String? = nil,
albumTitle: String? = nil
) {
self.mediaType = mediaType
self.isLiveStream = isLiveStream
self.title = title
self.artist = artist
self.artwork = artwork
self.albumArtist = albumArtist
self.albumTitle = albumTitle
}
}
struct NowPlayableDynamicMetadata {
let rate: Float
let position: Duration
let duration: Duration
let currentLanguageOptions: [MPNowPlayingInfoLanguageOption]
let availableLanguageOptionGroups: [MPNowPlayingInfoLanguageOptionGroup]
init(
rate: Float = 1,
position: Duration,
duration: Duration,
currentLanguageOptions: [MPNowPlayingInfoLanguageOption] = [],
availableLanguageOptionGroups: [MPNowPlayingInfoLanguageOptionGroup] = []
) {
self.rate = rate
self.position = position
self.duration = duration
self.currentLanguageOptions = currentLanguageOptions
self.availableLanguageOptionGroups = availableLanguageOptionGroups
}
}