mirror of
https://github.com/yattee/yattee.git
synced 2024-12-13 05:40:32 +05:30
39 lines
900 B
Swift
39 lines
900 B
Swift
|
import CoreMedia
|
||
|
import Foundation
|
||
|
import SwiftyJSON
|
||
|
|
||
|
// swiftlint:disable:next final_class
|
||
|
class Segment: ObservableObject, Hashable {
|
||
|
let category: String
|
||
|
let segment: [Double]
|
||
|
let uuid: String
|
||
|
let videoDuration: Int
|
||
|
|
||
|
init(category: String, segment: [Double], uuid: String, videoDuration: Int) {
|
||
|
self.category = category
|
||
|
self.segment = segment
|
||
|
self.uuid = uuid
|
||
|
self.videoDuration = videoDuration
|
||
|
}
|
||
|
|
||
|
func timeInSegment(_ time: CMTime) -> Bool {
|
||
|
(segment.first! ... segment.last!).contains(time.seconds)
|
||
|
}
|
||
|
|
||
|
var skipTo: CMTime {
|
||
|
CMTime(seconds: segment.last!, preferredTimescale: 1)
|
||
|
}
|
||
|
|
||
|
func hash(into hasher: inout Hasher) {
|
||
|
hasher.combine(uuid)
|
||
|
}
|
||
|
|
||
|
static func == (lhs: Segment, rhs: Segment) -> Bool {
|
||
|
lhs.uuid == rhs.uuid
|
||
|
}
|
||
|
|
||
|
func title() -> String {
|
||
|
category
|
||
|
}
|
||
|
}
|