diff --git a/CHANGELOG.md b/CHANGELOG.md index 5339df6df..acf3945e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## 4.4.0 - [Undefined] +## Added + +## Fixed + +- Changing volume in settings has a overall effect. +- ALSA volumes can be view/changed while being in call. + ## 4.3.1 - 2021-11-04 ### Added diff --git a/linphone-app/src/components/call/CallModel.cpp b/linphone-app/src/components/call/CallModel.cpp index c75d592c2..43329aa06 100644 --- a/linphone-app/src/components/call/CallModel.cpp +++ b/linphone-app/src/components/call/CallModel.cpp @@ -199,22 +199,34 @@ void CallModel::updateStats (const shared_ptr &callSt // ----------------------------------------------------------------------------- float CallModel::getSpeakerVolumeGain () const { - return mCall->getSpeakerVolumeGain(); + float gain = mCall->getSpeakerVolumeGain(); + if( gain < 0) + gain = CoreManager::getInstance()->getSettingsModel()->getPlaybackGain(); + return gain; } void CallModel::setSpeakerVolumeGain (float volume) { Q_ASSERT(volume >= 0.0f && volume <= 1.0f); - mCall->setSpeakerVolumeGain(volume); + if( mCall->getSpeakerVolumeGain() >= 0) + mCall->setSpeakerVolumeGain(volume); + else + CoreManager::getInstance()->getSettingsModel()->setPlaybackGain(volume); emit speakerVolumeGainChanged(getSpeakerVolumeGain()); } float CallModel::getMicroVolumeGain () const { - return mCall->getMicrophoneVolumeGain(); + float gain = mCall->getMicrophoneVolumeGain(); + if( gain < 0) + gain = CoreManager::getInstance()->getSettingsModel()->getCaptureGain(); + return gain; } void CallModel::setMicroVolumeGain (float volume) { Q_ASSERT(volume >= 0.0f && volume <= 1.0f); - mCall->setMicrophoneVolumeGain(volume); + if(mCall->getMicrophoneVolumeGain() >= 0) + mCall->setMicrophoneVolumeGain(volume); + else + CoreManager::getInstance()->getSettingsModel()->setCaptureGain(volume); emit microVolumeGainChanged(getMicroVolumeGain()); } diff --git a/linphone-app/src/components/settings/SettingsModel.cpp b/linphone-app/src/components/settings/SettingsModel.cpp index c10c7e2d2..6f711bbfa 100644 --- a/linphone-app/src/components/settings/SettingsModel.cpp +++ b/linphone-app/src/components/settings/SettingsModel.cpp @@ -224,6 +224,7 @@ float SettingsModel::getPlaybackGain() const { } void SettingsModel::setPlaybackGain(float gain) { + CoreManager::getInstance()->getCore()->setPlaybackGainDb(MediastreamerUtils::linearToDb(gain)); if (mSimpleCaptureGraph && mSimpleCaptureGraph->isRunning()) { mSimpleCaptureGraph->setPlaybackGain(gain); } @@ -235,6 +236,7 @@ float SettingsModel::getCaptureGain() const { } void SettingsModel::setCaptureGain(float gain) { + CoreManager::getInstance()->getCore()->setMicGainDb(MediastreamerUtils::linearToDb(gain)); if (mSimpleCaptureGraph && mSimpleCaptureGraph->isRunning()) { mSimpleCaptureGraph->setCaptureGain(gain); }