advplyr.audiobookshelf-app/ios/App/Shared/models/PlaybackSession.swift

51 lines
1.3 KiB
Swift
Raw Normal View History

2022-04-12 14:28:47 +02:00
//
// PlaybackSession.swift
// App
//
// Created by Rasmus Krämer on 12.04.22.
//
import Foundation
2022-04-22 20:31:45 -04:00
struct PlaybackSession: Codable {
2022-04-12 14:28:47 +02:00
var id: String
var userId: String?
var libraryItemId: String?
var episodeId: String?
var mediaType: String
// var mediaMetadata: MediaTypeMetadata - It is not implemented in android?
var chapters: [Chapter]
var displayTitle: String?
var displayAuthor: String?
var coverPath: String?
var duration: Double
var playMethod: Int
var startedAt: Double?
var updatedAt: Double?
2022-04-12 14:28:47 +02:00
var timeListening: Double
var audioTracks: [AudioTrack]
var currentTime: Double
2022-07-31 13:33:36 -04:00
var libraryItem: LibraryItem?
2022-08-11 18:34:59 -04:00
var localLibraryItem: LocalLibraryItem?
2022-04-12 14:28:47 +02:00
var serverConnectionConfigId: String?
var serverAddress: String?
2022-08-11 20:38:51 -04:00
var isLocal: Bool { self.localLibraryItem != nil }
var localMediaProgressId: String {
if let episodeId = episodeId {
return "\(localLibraryItem!.id)-\(episodeId)"
} else {
return localLibraryItem!.id
}
}
2022-08-11 20:38:51 -04:00
var totalDuration: Double {
var total = 0.0
self.audioTracks.forEach { total += $0.duration }
return total
}
2022-08-11 20:38:51 -04:00
var progress: Double { self.currentTime / self.totalDuration }
2022-04-12 14:28:47 +02:00
}