mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 22:25:57 +00:00
Temp
This commit is contained in:
57
submodules/TelegramUI/Sources/ServiceSoundManager.swift
Normal file
57
submodules/TelegramUI/Sources/ServiceSoundManager.swift
Normal file
@@ -0,0 +1,57 @@
|
||||
import Foundation
|
||||
import SwiftSignalKit
|
||||
import AudioToolbox
|
||||
import AppBundle
|
||||
|
||||
private func loadSystemSoundFromBundle(name: String) -> SystemSoundID? {
|
||||
let path = "\(getAppBundle().resourcePath!)/\(name)"
|
||||
let url = URL(fileURLWithPath: path)
|
||||
var sound: SystemSoundID = 0
|
||||
if AudioServicesCreateSystemSoundID(url as CFURL, &sound) == noErr {
|
||||
return sound
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
public final class ServiceSoundManager {
|
||||
private let queue = Queue()
|
||||
private var messageDeliverySound: SystemSoundID?
|
||||
private var incomingMessageSound: SystemSoundID?
|
||||
|
||||
init() {
|
||||
self.queue.async {
|
||||
self.messageDeliverySound = loadSystemSoundFromBundle(name: "MessageSent.caf")
|
||||
self.incomingMessageSound = loadSystemSoundFromBundle(name: "notification.caf")
|
||||
}
|
||||
}
|
||||
|
||||
public func playMessageDeliveredSound() {
|
||||
self.queue.async {
|
||||
if let messageDeliverySound = self.messageDeliverySound {
|
||||
AudioServicesPlaySystemSound(messageDeliverySound)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public func playIncomingMessageSound() {
|
||||
self.queue.async {
|
||||
if let incomingMessageSound = self.incomingMessageSound {
|
||||
AudioServicesPlaySystemSound(incomingMessageSound)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public func playVibrationSound() {
|
||||
self.queue.async {
|
||||
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate)
|
||||
}
|
||||
}
|
||||
|
||||
public func playLockSound() {
|
||||
self.queue.async {
|
||||
AudioServicesPlaySystemSound(1100)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public let serviceSoundManager = ServiceSoundManager()
|
||||
Reference in New Issue
Block a user