Refactor RangeSet for 32-bit support

This commit is contained in:
Ali
2022-05-11 23:41:57 +04:00
parent 3f6dabad1e
commit fc89536b5c
21 changed files with 134 additions and 80 deletions

View File

@@ -4,6 +4,7 @@ import AsyncDisplayKit
import SwiftSignalKit
import UniversalMediaPlayer
import AccountContext
import RangeSet
private final class UniversalVideoContentSubscriber {
let id: Int32
@@ -28,11 +29,11 @@ private final class UniversalVideoContentHolder {
var statusValue: MediaPlayerStatus?
var bufferingStatusDisposable: Disposable?
var bufferingStatusValue: (IndexSet, Int64)?
var bufferingStatusValue: (RangeSet<Int64>, Int64)?
var playbackCompletedIndex: Int?
init(content: UniversalVideoContent, contentNode: UniversalVideoContentNode & ASDisplayNode, statusUpdated: @escaping (MediaPlayerStatus?) -> Void, bufferingStatusUpdated: @escaping ((IndexSet, Int64)?) -> Void, playbackCompleted: @escaping () -> Void) {
init(content: UniversalVideoContent, contentNode: UniversalVideoContentNode & ASDisplayNode, statusUpdated: @escaping (MediaPlayerStatus?) -> Void, bufferingStatusUpdated: @escaping ((RangeSet<Int64>, Int64)?) -> Void, playbackCompleted: @escaping () -> Void) {
self.content = content
self.contentNode = contentNode
@@ -131,7 +132,7 @@ private final class UniversalVideoContentHolder {
private final class UniversalVideoContentHolderCallbacks {
let playbackCompleted = Bag<() -> Void>()
let status = Bag<(MediaPlayerStatus?) -> Void>()
let bufferingStatus = Bag<((IndexSet, Int64)?) -> Void>()
let bufferingStatus = Bag<((RangeSet<Int64>, Int64)?) -> Void>()
var isEmpty: Bool {
return self.playbackCompleted.isEmpty && self.status.isEmpty && self.bufferingStatus.isEmpty
@@ -278,7 +279,7 @@ public final class UniversalVideoManagerImpl: UniversalVideoManager {
} |> runOn(Queue.mainQueue())
}
public func bufferingStatusSignal(content: UniversalVideoContent) -> Signal<(IndexSet, Int64)?, NoError> {
public func bufferingStatusSignal(content: UniversalVideoContent) -> Signal<(RangeSet<Int64>, Int64)?, NoError> {
return Signal { subscriber in
var callbacks: UniversalVideoContentHolderCallbacks
if let current = self.holderCallbacks[content.id] {