50 lines
1.5 KiB
Swift
50 lines
1.5 KiB
Swift
import Foundation
|
|
|
|
final class AudioPlayerSettings: ObservableObject {
|
|
|
|
@Published
|
|
var playlistCoverImageSize: Int
|
|
|
|
@Published
|
|
var smallCoverImageSize: Int
|
|
|
|
@Published
|
|
var audioPlayerJsFile: FileResource?
|
|
|
|
@Published
|
|
var audioPlayerCssFile: FileResource?
|
|
|
|
init(playlistCoverImageSize: Int,
|
|
smallCoverImageSize: Int,
|
|
audioPlayerJsFile: FileResource?,
|
|
audioPlayerCssFile: FileResource?) {
|
|
self.playlistCoverImageSize = playlistCoverImageSize
|
|
self.smallCoverImageSize = smallCoverImageSize
|
|
self.audioPlayerJsFile = audioPlayerJsFile
|
|
self.audioPlayerCssFile = audioPlayerCssFile
|
|
}
|
|
|
|
init(file: AudioPlayerSettingsFile, files: [String : FileResource]) {
|
|
self.playlistCoverImageSize = file.playlistCoverImageSize
|
|
self.smallCoverImageSize = file.smallCoverImageSize
|
|
self.audioPlayerJsFile = file.audioPlayerJsFile.map { files[$0] }
|
|
self.audioPlayerCssFile = file.audioPlayerCssFile.map { files[$0] }
|
|
}
|
|
|
|
var file: AudioPlayerSettingsFile {
|
|
.init(playlistCoverImageSize: playlistCoverImageSize,
|
|
smallCoverImageSize: smallCoverImageSize,
|
|
audioPlayerJsFile: audioPlayerJsFile?.id,
|
|
audioPlayerCssFile: audioPlayerCssFile?.id)
|
|
}
|
|
}
|
|
|
|
extension AudioPlayerSettings {
|
|
|
|
static let `default`: AudioPlayerSettings = .init(
|
|
playlistCoverImageSize: 280,
|
|
smallCoverImageSize: 78,
|
|
audioPlayerJsFile: nil,
|
|
audioPlayerCssFile: nil)
|
|
}
|