From 371ba40a5007aad4ad48493e801ae411fb3d3263 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Sun, 6 Nov 2022 18:25:47 +0300 Subject: [PATCH] Added volume button to media player for voices. --- Telegram/SourceFiles/media/audio/media_audio.cpp | 9 ++++++--- .../SourceFiles/media/player/media_player_widget.cpp | 11 ++++++----- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Telegram/SourceFiles/media/audio/media_audio.cpp b/Telegram/SourceFiles/media/audio/media_audio.cpp index 7c3a2747e..cb19b704a 100644 --- a/Telegram/SourceFiles/media/audio/media_audio.cpp +++ b/Telegram/SourceFiles/media/audio/media_audio.cpp @@ -317,8 +317,10 @@ base::Observable &Updated() { float64 ComputeVolume(AudioMsgId::Type type) { const auto gain = [&] { switch (type) { - case AudioMsgId::Type::Voice: return VolumeMultiplierAll; - case AudioMsgId::Type::Song: return VolumeMultiplierSong * mixer()->getSongVolume(); + case AudioMsgId::Type::Voice: + return VolumeMultiplierAll * mixer()->getSongVolume(); + case AudioMsgId::Type::Song: + return VolumeMultiplierSong * mixer()->getSongVolume(); case AudioMsgId::Type::Video: return mixer()->getVideoVolume(); } return 1.; @@ -1371,8 +1373,9 @@ void Fader::onTimer() { }; auto suppressGainForMusic = ComputeVolume(AudioMsgId::Type::Song); auto suppressGainForMusicChanged = volumeChangedSong || _volumeChangedSong; + auto suppressGainForVoice = ComputeVolume(AudioMsgId::Type::Voice); for (auto i = 0; i != kTogetherLimit; ++i) { - updatePlayback(AudioMsgId::Type::Voice, i, VolumeMultiplierAll, volumeChangedAll); + updatePlayback(AudioMsgId::Type::Voice, i, suppressGainForVoice, suppressGainForMusicChanged); updatePlayback(AudioMsgId::Type::Song, i, suppressGainForMusic, suppressGainForMusicChanged); } auto suppressGainForVideo = ComputeVolume(AudioMsgId::Type::Video); diff --git a/Telegram/SourceFiles/media/player/media_player_widget.cpp b/Telegram/SourceFiles/media/player/media_player_widget.cpp index 3ee8b0a2c..46676f132 100644 --- a/Telegram/SourceFiles/media/player/media_player_widget.cpp +++ b/Telegram/SourceFiles/media/player/media_player_widget.cpp @@ -697,8 +697,10 @@ void Widget::updateControlsGeometry() { if (hasPlaybackSpeedControl()) { _speedToggle->moveToRight(right, 0); right += _speedToggle->width(); } - _repeatToggle->moveToRight(right, 0); right += _repeatToggle->width(); - _orderToggle->moveToRight(right, 0); right += _orderToggle->width(); + if (_type == AudioMsgId::Type::Song) { + _repeatToggle->moveToRight(right, 0); right += _repeatToggle->width(); + _orderToggle->moveToRight(right, 0); right += _orderToggle->width(); + } _volumeToggle->moveToRight(right, 0); right += _volumeToggle->width(); updateControlsWrapGeometry(); @@ -840,10 +842,10 @@ int Widget::getNameRight() const { int Widget::getTimeRight() const { auto result = 0; + result += _volumeToggle->width(); if (_type == AudioMsgId::Type::Song) { result += _repeatToggle->width() - + _orderToggle->width() - + _volumeToggle->width(); + + _orderToggle->width(); } if (hasPlaybackSpeedControl()) { result += _speedToggle->width(); @@ -908,7 +910,6 @@ bool Widget::hasPlaybackSpeedControl() const { void Widget::updateControlsVisibility() { _repeatToggle->setVisible(_type == AudioMsgId::Type::Song); _orderToggle->setVisible(_type == AudioMsgId::Type::Song); - _volumeToggle->setVisible(_type == AudioMsgId::Type::Song); _speedToggle->setVisible(hasPlaybackSpeedControl()); if (!_shadow->isHidden()) { _playbackSlider->setVisible(_type == AudioMsgId::Type::Song);