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) {
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);

View file

@ -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);