This commit is contained in:
Ali 2019-11-05 22:19:30 +04:00
parent d0d0760062
commit 8f6946c6b4
5 changed files with 59 additions and 44 deletions

View File

@ -430,7 +430,7 @@ private final class AudioPlayerRendererContext {
return
}
print("MediaPlayerAudioRenderer initialize audio unit: \((CFAbsoluteTimeGetCurrent() - startTime) * 1000.0) ms")
print("\(CFAbsoluteTimeGetCurrent()) MediaPlayerAudioRenderer initialize audio unit: \((CFAbsoluteTimeGetCurrent() - startTime) * 1000.0) ms")
self.audioGraph = audioGraph
self.timePitchAudioUnit = timePitchAudioUnit
@ -508,7 +508,7 @@ private final class AudioPlayerRendererContext {
return
}
print("MediaPlayerAudioRenderer start audio unit: \((CFAbsoluteTimeGetCurrent() - startTime) * 1000.0) ms")
print("\(CFAbsoluteTimeGetCurrent()) MediaPlayerAudioRenderer start audio unit: \((CFAbsoluteTimeGetCurrent() - startTime) * 1000.0) ms")
}
}

View File

@ -2203,9 +2203,13 @@ public func groupInfoController(context: AccountContext, peerId originalPeerId:
updateDescription = .complete()
}
let signal = combineLatest(updateTitle, updateDescription)
let signal = combineLatest(queue: .mainQueue(),
updateTitle,
updateDescription
)
updatePeerNameDisposable.set((signal |> deliverOnMainQueue).start(error: { _ in
updatePeerNameDisposable.set((signal
|> deliverOnMainQueue).start(error: { _ in
updateState { state in
return state.withUpdatedSavingData(false)
}

View File

@ -159,7 +159,7 @@ public class ManagedAudioSessionControl {
public final class ManagedAudioSession {
private var nextId: Int32 = 0
private let queue = Queue()
private let queue: Queue
private let hasLoudspeaker: Bool
private var holders: [HolderRecord] = []
private var currentTypeAndOutputMode: (ManagedAudioSessionType, AudioSessionOutputMode)?
@ -175,6 +175,8 @@ public final class ManagedAudioSession {
private let isPlaybackActiveSubscribers = Bag<(Bool) -> Void>()
public init() {
self.queue = Queue()
self.hasLoudspeaker = UIDevice.current.model == "iPhone"
let queue = self.queue
@ -522,8 +524,11 @@ public final class ManagedAudioSession {
if deactivate {
self.holders[activeIndex].active = false
let id = self.holders[activeIndex].id
self.holders[activeIndex].deactivatingDisposable = (self.holders[activeIndex].deactivate() |> deliverOn(self.queue)).start(completed: { [weak self] in
if let strongSelf = self {
self.holders[activeIndex].deactivatingDisposable = (self.holders[activeIndex].deactivate()
|> deliverOn(self.queue)).start(completed: { [weak self] in
guard let strongSelf = self else {
return
}
var index = 0
for currentRecord in strongSelf.holders {
if currentRecord.id == id {
@ -536,7 +541,6 @@ public final class ManagedAudioSession {
index += 1
}
strongSelf.updateHolders()
}
})
}
} else if activeIndex == nil {
@ -753,15 +757,15 @@ public final class ManagedAudioSession {
try AVAudioSession.sharedInstance().setActive(true, options: [.notifyOthersOnDeactivation])
print("AudioSession activate: \((CFAbsoluteTimeGetCurrent() - startTime) * 1000.0) ms")
print("\(CFAbsoluteTimeGetCurrent()) AudioSession activate: \((CFAbsoluteTimeGetCurrent() - startTime) * 1000.0) ms")
self.updateCurrentAudioRouteInfo()
print("AudioSession updateCurrentAudioRouteInfo: \((CFAbsoluteTimeGetCurrent() - startTime) * 1000.0) ms")
print("\(CFAbsoluteTimeGetCurrent()) AudioSession updateCurrentAudioRouteInfo: \((CFAbsoluteTimeGetCurrent() - startTime) * 1000.0) ms")
try self.setupOutputMode(outputMode, type: type)
print("AudioSession setupOutputMode: \((CFAbsoluteTimeGetCurrent() - startTime) * 1000.0) ms")
print("\(CFAbsoluteTimeGetCurrent()) AudioSession setupOutputMode: \((CFAbsoluteTimeGetCurrent() - startTime) * 1000.0) ms")
if case .voiceCall = type {
try AVAudioSession.sharedInstance().setPreferredIOBufferDuration(0.005)

View File

@ -571,7 +571,14 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode {
let nextTransitionVersion = Atomic<Int>(value: 0)
let historyViewTransitionDisposable = combineLatest(queue: messageViewQueue, historyViewUpdate, self.chatPresentationDataPromise.get(), selectedMessages, automaticDownloadNetworkType, self.historyAppearsClearedPromise.get(), animatedEmojiStickers).start(next: { [weak self] update, chatPresentationData, selectedMessages, networkType, historyAppearsCleared, animatedEmojiStickers in
let historyViewTransitionDisposable = combineLatest(queue: messageViewQueue,
historyViewUpdate,
self.chatPresentationDataPromise.get(),
selectedMessages,
automaticDownloadNetworkType,
self.historyAppearsClearedPromise.get(),
animatedEmojiStickers
).start(next: { [weak self] update, chatPresentationData, selectedMessages, networkType, historyAppearsCleared, animatedEmojiStickers in
func applyHole() {
Queue.mainQueue().async {
if let strongSelf = self {