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); }, [=] {