Added volume button to media player for voices.

This commit is contained in:
23rd 2022-11-06 18:25:47 +03:00
parent a8d8b5be28
commit 371ba40a50
2 changed files with 12 additions and 8 deletions

View file

@ -317,8 +317,10 @@ base::Observable<AudioMsgId> &Updated() {
float64 ComputeVolume(AudioMsgId::Type type) { float64 ComputeVolume(AudioMsgId::Type type) {
const auto gain = [&] { const auto gain = [&] {
switch (type) { switch (type) {
case AudioMsgId::Type::Voice: return VolumeMultiplierAll; case AudioMsgId::Type::Voice:
case AudioMsgId::Type::Song: return VolumeMultiplierSong * mixer()->getSongVolume(); return VolumeMultiplierAll * mixer()->getSongVolume();
case AudioMsgId::Type::Song:
return VolumeMultiplierSong * mixer()->getSongVolume();
case AudioMsgId::Type::Video: return mixer()->getVideoVolume(); case AudioMsgId::Type::Video: return mixer()->getVideoVolume();
} }
return 1.; return 1.;
@ -1371,8 +1373,9 @@ void Fader::onTimer() {
}; };
auto suppressGainForMusic = ComputeVolume(AudioMsgId::Type::Song); auto suppressGainForMusic = ComputeVolume(AudioMsgId::Type::Song);
auto suppressGainForMusicChanged = volumeChangedSong || _volumeChangedSong; auto suppressGainForMusicChanged = volumeChangedSong || _volumeChangedSong;
auto suppressGainForVoice = ComputeVolume(AudioMsgId::Type::Voice);
for (auto i = 0; i != kTogetherLimit; ++i) { 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); updatePlayback(AudioMsgId::Type::Song, i, suppressGainForMusic, suppressGainForMusicChanged);
} }
auto suppressGainForVideo = ComputeVolume(AudioMsgId::Type::Video); auto suppressGainForVideo = ComputeVolume(AudioMsgId::Type::Video);

View file

@ -697,8 +697,10 @@ void Widget::updateControlsGeometry() {
if (hasPlaybackSpeedControl()) { if (hasPlaybackSpeedControl()) {
_speedToggle->moveToRight(right, 0); right += _speedToggle->width(); _speedToggle->moveToRight(right, 0); right += _speedToggle->width();
} }
_repeatToggle->moveToRight(right, 0); right += _repeatToggle->width(); if (_type == AudioMsgId::Type::Song) {
_orderToggle->moveToRight(right, 0); right += _orderToggle->width(); _repeatToggle->moveToRight(right, 0); right += _repeatToggle->width();
_orderToggle->moveToRight(right, 0); right += _orderToggle->width();
}
_volumeToggle->moveToRight(right, 0); right += _volumeToggle->width(); _volumeToggle->moveToRight(right, 0); right += _volumeToggle->width();
updateControlsWrapGeometry(); updateControlsWrapGeometry();
@ -840,10 +842,10 @@ int Widget::getNameRight() const {
int Widget::getTimeRight() const { int Widget::getTimeRight() const {
auto result = 0; auto result = 0;
result += _volumeToggle->width();
if (_type == AudioMsgId::Type::Song) { if (_type == AudioMsgId::Type::Song) {
result += _repeatToggle->width() result += _repeatToggle->width()
+ _orderToggle->width() + _orderToggle->width();
+ _volumeToggle->width();
} }
if (hasPlaybackSpeedControl()) { if (hasPlaybackSpeedControl()) {
result += _speedToggle->width(); result += _speedToggle->width();
@ -908,7 +910,6 @@ bool Widget::hasPlaybackSpeedControl() const {
void Widget::updateControlsVisibility() { void Widget::updateControlsVisibility() {
_repeatToggle->setVisible(_type == AudioMsgId::Type::Song); _repeatToggle->setVisible(_type == AudioMsgId::Type::Song);
_orderToggle->setVisible(_type == AudioMsgId::Type::Song); _orderToggle->setVisible(_type == AudioMsgId::Type::Song);
_volumeToggle->setVisible(_type == AudioMsgId::Type::Song);
_speedToggle->setVisible(hasPlaybackSpeedControl()); _speedToggle->setVisible(hasPlaybackSpeedControl());
if (!_shadow->isHidden()) { if (!_shadow->isHidden()) {
_playbackSlider->setVisible(_type == AudioMsgId::Type::Song); _playbackSlider->setVisible(_type == AudioMsgId::Type::Song);