From 3c86da78af93bdec3347add895a979e287ad0ed9 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Sun, 6 Jun 2021 23:34:32 +0300 Subject: [PATCH] Added volume support to SMC class. --- .../window/system_media_controls_manager.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Telegram/SourceFiles/window/system_media_controls_manager.cpp b/Telegram/SourceFiles/window/system_media_controls_manager.cpp index 60b3e921e5..e9039bb63a 100644 --- a/Telegram/SourceFiles/window/system_media_controls_manager.cpp +++ b/Telegram/SourceFiles/window/system_media_controls_manager.cpp @@ -10,6 +10,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/observer.h" #include "base/platform/base_platform_system_media_controls.h" #include "core/application.h" +#include "core/core_settings.h" #include "data/data_document.h" #include "data/data_document_media.h" #include "data/data_file_origin.h" @@ -190,6 +191,21 @@ SystemMediaControlsManager::SystemMediaControlsManager( _controls->setEnabled(false); }, _lifetime); + if (_controls->volumeSupported()) { + rpl::single( + Core::App().settings().songVolume() + ) | rpl::then( + Core::App().settings().songVolumeChanges() + ) | rpl::start_with_next([=](float64 volume) { + _controls->setVolume(volume); + }, _lifetime); + + _controls->volumeChangeRequests( + ) | rpl::start_with_next([](float64 volume) { + Core::App().settings().setSongVolume(volume); + }, _lifetime); + } + } SystemMediaControlsManager::~SystemMediaControlsManager() = default;