summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Stibane <marc@taler.net>2023-10-26 01:00:13 +0200
committerMarc Stibane <marc@taler.net>2023-10-26 01:00:13 +0200
commit8767f5abddd2f4eb7e8635c2907d71f1b1abc87f (patch)
tree41591993b998b179c4fed89f3e5c00b818bbf1f1
parenta4faa7dd58d4a8080ee1cd002443f5d068fea301 (diff)
downloadtaler-ios-8767f5abddd2f4eb7e8635c2907d71f1b1abc87f.tar.gz
taler-ios-8767f5abddd2f4eb7e8635c2907d71f1b1abc87f.tar.bz2
taler-ios-8767f5abddd2f4eb7e8635c2907d71f1b1abc87f.zip
Adjust volume for payment sounds
-rw-r--r--TalerWallet1/Helper/Controller+playSound.swift33
1 files changed, 28 insertions, 5 deletions
diff --git a/TalerWallet1/Helper/Controller+playSound.swift b/TalerWallet1/Helper/Controller+playSound.swift
index bf6a784..7e76e36 100644
--- a/TalerWallet1/Helper/Controller+playSound.swift
+++ b/TalerWallet1/Helper/Controller+playSound.swift
@@ -10,13 +10,34 @@ extension Controller {
/// 0 = failure, 1 = received, 2 = sent
@MainActor func playSound(_ number: Int) {
+ let sysVolume = AVAudioSession.sharedInstance().outputVolume
+ let volume = sysVolume < 0.16 ? 2.5 // too bad we cannot make it louder
+ : sysVolume < 0.21 ? 1.5 // nope, doesn't work
+ : sysVolume < 0.26 ? 1.0 // this is full volume...
+ : sysVolume < 0.31 ? 0.9 // and
+// : sysVolume < 0.36 ?
+ : sysVolume < 0.41 ? 0.8 // we
+// : sysVolume < 0.46 ?
+ : sysVolume < 0.51 ? 0.7 // must
+ : sysVolume < 0.56 ? 0.6 // reduce
+// : sysVolume < 0.61 ?
+ : sysVolume < 0.66 ? 0.5 // it,
+ : sysVolume < 0.71 ? 0.4 // or
+ : sysVolume < 0.76 ? 0.3 // it'll
+ : sysVolume < 0.81 ? 0.2 // play
+ : sysVolume < 0.86 ? 0.15 // way
+ : sysVolume < 0.91 ? 0.10 // too
+ : 0.07 // loud!
+// logger.log("❗️sys:\(sysVolume) vol:\(volume)")
+
var soundID: SystemSoundID = 0
let notificationGenerator = useHaptics ? UINotificationFeedbackGenerator() : nil
if number > 9 {
soundID = UInt32(number)
} else {
let sound = (number == 0) ? "payment_failure" :
- (number == 1) ? "payment_success" : "PaymentReceived"
+ (number == 1) ? "payment_success"
+ : "PaymentReceived"
let fileURL = URL(fileURLWithPath: "/System/Library/Audio/UISounds/"
+ sound + ".caf")
AudioServicesCreateSystemSoundID(fileURL as CFURL, &soundID)
@@ -25,13 +46,14 @@ extension Controller {
if number == 0 || number > 9 || playSounds < 0 {
AudioServicesPlaySystemSound(soundID);
} else if playSounds > 0 {
- if let url = Bundle.main.url(forResource: (number == 1) ? "payment_received"
- : "payment_sent",
- withExtension: "m4a") {
+ if let url = Bundle.main.url(forResource: (number == 1) ? "payment_sent"
+ : "payment_received",
+ withExtension: "m4a") {
player.removeAllItems()
player.insert(AVPlayerItem(url: url), after: nil)
- logger.log("\(url, privacy: .public) \(soundID)")
+ logger.log("\(url, privacy: .public)")
player.play()
+ player.volume = Float(volume)
} else {
AudioServicesPlaySystemSound(soundID);
}
@@ -39,5 +61,6 @@ extension Controller {
if let notificationGenerator {
notificationGenerator.notificationOccurred(number == 0 ? .error : .success)
}
+
}
}