Disable software aec if enabled but not needed anymore (only once, user can still enable it back later)
This commit is contained in:
parent
7140f4f20d
commit
9c4731a8fc
3 changed files with 40 additions and 0 deletions
|
@ -504,6 +504,14 @@ public class LinphoneManager implements LinphoneCoreListener {
|
|||
prefMigrator.doMigration();
|
||||
}
|
||||
|
||||
// Some devices could be using software AEC before
|
||||
// This will disable it in favor of hardware AEC if available
|
||||
if (prefMigrator.isEchoMigratioNeeded()) {
|
||||
Log.d("Echo canceller configuration need to be updated");
|
||||
prefMigrator.doEchoMigration();
|
||||
mPrefs.echoConfigurationUpdated();
|
||||
}
|
||||
|
||||
mLc.setContext(mServiceContext);
|
||||
mLc.setZrtpSecretsCache(basePath + "/zrtp_secrets");
|
||||
|
||||
|
|
|
@ -684,6 +684,14 @@ public class LinphonePreferences {
|
|||
public int getEchoCalibration() {
|
||||
return getConfig().getInt("sound", "ec_delay", -1);
|
||||
}
|
||||
|
||||
public boolean isEchoConfigurationUpdated() {
|
||||
return getConfig().getBool("app", "ec_updated", false);
|
||||
}
|
||||
|
||||
public void echoConfigurationUpdated() {
|
||||
getConfig().setBool("app", "ec_updated", true);
|
||||
}
|
||||
// End of audio settings
|
||||
|
||||
// Video settings
|
||||
|
|
|
@ -44,6 +44,30 @@ public class PreferencesMigrator {
|
|||
mOldPrefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
}
|
||||
|
||||
public boolean isEchoMigratioNeeded() {
|
||||
LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull();
|
||||
if (lc == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (mNewPrefs.isEchoConfigurationUpdated()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return (!lc.needsEchoCalibration() && mNewPrefs.isEchoCancellationEnabled());
|
||||
}
|
||||
|
||||
public void doEchoMigration() {
|
||||
LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull();
|
||||
if (lc == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!lc.needsEchoCalibration()) {
|
||||
mNewPrefs.setEchoCancellation(false);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isMigrationNeeded() {
|
||||
int accountNumber = mOldPrefs.getInt(getString(R.string.pref_extra_accounts), -1);
|
||||
return accountNumber != -1;
|
||||
|
|
Loading…
Reference in a new issue