From 8287d717f8458ba035814b117d6e21c65b48d2ed Mon Sep 17 00:00:00 2001
From: John Preston <johnprestonmail@gmail.com>
Date: Sun, 26 Jan 2025 11:34:18 +0400
Subject: [PATCH] Fix notifications without sounds on macOS.

---
 .../SourceFiles/media/audio/media_audio_local_cache.cpp  | 9 +++------
 Telegram/SourceFiles/window/notifications_manager.cpp    | 4 +++-
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/Telegram/SourceFiles/media/audio/media_audio_local_cache.cpp b/Telegram/SourceFiles/media/audio/media_audio_local_cache.cpp
index 66a169de0..0a9e499ba 100644
--- a/Telegram/SourceFiles/media/audio/media_audio_local_cache.cpp
+++ b/Telegram/SourceFiles/media/audio/media_audio_local_cache.cpp
@@ -13,7 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
 namespace Media::Audio {
 namespace {
 
-constexpr auto kMaxDuration = 10 * crl::time(1000);
+constexpr auto kMaxDuration = 3 * crl::time(1000);
 constexpr auto kMaxStreams = 2;
 constexpr auto kFrameSize = 4096;
 
@@ -121,12 +121,9 @@ constexpr auto kFrameSize = 4096;
 	}
 #endif // DA_FFMPEG_NEW_CHANNEL_LAYOUT
 	const auto inrate = inCodecContext->sample_rate;
-	const auto rate = (inrate == 44'100 || inrate == 48'000)
-		? inrate
-		: 44'100;
+	const auto rate = 44'100;
 	outCodecContext->sample_fmt = AV_SAMPLE_FMT_S16;
 	outCodecContext->time_base = AVRational{ 1, rate };
-	outCodecContext->bit_rate = 64 * 1024;
 	outCodecContext->sample_rate = rate;
 
 	error = avcodec_open2(outCodecContext.get(), outCodec, nullptr);
@@ -342,7 +339,7 @@ QString LocalDiskCache::name(const LocalSound &sound) {
 		return i->second;
 	}
 
-	auto result = u"TDesktop-%1"_q.arg(sound.id
+	auto result = u"TD_%1"_q.arg(sound.id
 		? QString::number(sound.id, 16).toUpper()
 		: u"Default"_q);
 	const auto path = _base + u"%1.wav"_q.arg(result);
diff --git a/Telegram/SourceFiles/window/notifications_manager.cpp b/Telegram/SourceFiles/window/notifications_manager.cpp
index f11b30587..3e8f8812e 100644
--- a/Telegram/SourceFiles/window/notifications_manager.cpp
+++ b/Telegram/SourceFiles/window/notifications_manager.cpp
@@ -1277,7 +1277,9 @@ void NativeManager::doShowNotification(NotificationFields &&fields) {
 	// #TODO optimize
 	auto userpicView = item->history()->peer->createUserpicView();
 	const auto owner = &item->history()->owner();
-	const auto sound = fields.soundId ? [=, id = *fields.soundId] {
+	const auto withSound = fields.soundId
+		&& Core::App().settings().soundNotify();
+	const auto sound = withSound ? [=, id = *fields.soundId] {
 		return _localSoundCache.sound(id, [=] {
 			return Core::App().notifications().lookupSoundBytes(owner, id);
 		}, [=] {