aboutsummaryrefslogtreecommitdiff
path: root/Hotline/Utility/SoundEffects.swift
diff options
context:
space:
mode:
authorRuben Beltran del Rio <git@r.bdr.sh>2025-11-27 23:38:04 +0100
committerRuben Beltran del Rio <git@r.bdr.sh>2025-11-27 23:38:04 +0100
commit213710bf5bd6413c747bf126db50816ef5de5a6e (patch)
tree912f8cf87955a08077c92fea8ad934f50b7ab975 /Hotline/Utility/SoundEffects.swift
parentf466b21dc02f78c984ba6748e703f6780a7a0db4 (diff)
parent6a95b53616a4abfa306ddce43151cf4fefbd20ed (diff)
Merge remote-tracking branch 'upstream/main'
Diffstat (limited to 'Hotline/Utility/SoundEffects.swift')
-rw-r--r--Hotline/Utility/SoundEffects.swift52
1 files changed, 0 insertions, 52 deletions
diff --git a/Hotline/Utility/SoundEffects.swift b/Hotline/Utility/SoundEffects.swift
deleted file mode 100644
index 74314e4..0000000
--- a/Hotline/Utility/SoundEffects.swift
+++ /dev/null
@@ -1,52 +0,0 @@
-import AVFAudio
-import Foundation
-
-enum SoundEffects: String {
- case loggedIn = "logged-in"
- case chatMessage = "chat-message"
- case transferComplete = "transfer-complete"
- case userLogin = "user-login"
- case userLogout = "user-logout"
- case newNews = "new-news"
- case serverMessage = "server-message"
- case error = "error"
-}
-
-@Observable
-class SoundEffectPlayer: NSObject, AVAudioPlayerDelegate {
- static let shared = SoundEffectPlayer()
-
- private var activeSounds: [AVAudioPlayer] = []
-
- func playSoundEffect(_ name: SoundEffects) {
- // Load a local sound file
- guard
- let soundFileURL = Bundle.main.url(
- forResource: name.rawValue,
- withExtension: "aiff"
- )
- else {
- return
- }
-
- DispatchQueue.main.async { [weak self] in
- guard let self = self else {
- return
- }
-
- if let soundEffect = try? AVAudioPlayer(contentsOf: soundFileURL) {
- soundEffect.delegate = self
- soundEffect.volume = 0.75
- soundEffect.play()
-
- self.activeSounds.append(soundEffect)
- }
- }
- }
-
- func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool) {
- if let i = self.activeSounds.firstIndex(of: player) {
- self.activeSounds.remove(at: i)
- }
- }
-}