Fixed echo canceller calibration

This commit is contained in:
Sylvain Berfini 2017-10-18 14:28:50 +02:00
parent bc64f13563
commit ff69d00612
3 changed files with 10 additions and 3 deletions

View file

@ -1542,7 +1542,7 @@ public class LinphoneManager implements CoreListener, ChatMessageListener, Senso
boolean encrypted, String authenticationToken) {
}
public void startEcCalibration(CoreListener l) throws CoreException {
public void startEcCalibration() throws CoreException {
routeAudioToSpeaker();
setAudioManagerInCallMode();
Log.i("Set audio mode on 'Voice Communication'");

View file

@ -50,6 +50,7 @@ import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.media.AudioManager;
import android.net.Uri;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
@ -97,6 +98,7 @@ public class SettingsFragment extends PreferencesListFragment {
mListener = new CoreListenerStub() {
@Override
public void onEcCalibrationResult(Core lc, Core.EcCalibratorStatus status, int delayMs) {
lc.removeListener(mListener);
LinphoneManager.getInstance().routeAudioToReceiver();
CheckBoxPreference echoCancellation = (CheckBoxPreference) findPreference(getString(R.string.pref_echo_cancellation_key));
@ -540,6 +542,7 @@ public class SettingsFragment extends PreferencesListFragment {
public boolean onPreferenceChange(Preference preference, Object newValue) {
boolean enable = (Boolean) newValue;
pt.enable(enable);
((CheckBoxPreference)preference).setChecked(enable);
return true;
}
});
@ -662,7 +665,8 @@ public class SettingsFragment extends PreferencesListFragment {
try {
if (LinphoneManager.getInstance().getEchoTesterStatus())
stopEchoTester();
LinphoneManager.getInstance().startEcCalibration(mListener);
LinphoneManager.getLc().addListener(mListener);
LinphoneManager.getInstance().startEcCalibration();
} catch (CoreException e) {
Log.e(e);
}
@ -747,6 +751,7 @@ public class SettingsFragment extends PreferencesListFragment {
}
}
pt.enable(enable);
((CheckBoxPreference)preference).setChecked(enable);
return true;
}
});

View file

@ -57,6 +57,7 @@ public class EchoCancellerCalibrationFragment extends Fragment implements XmlRpc
mListener = new CoreListenerStub(){
@Override
public void onEcCalibrationResult(Core lc, Core.EcCalibratorStatus status, int delay_ms) {
lc.removeListener(mListener);
LinphoneManager.getInstance().routeAudioToReceiver();
if (mSendEcCalibrationResult) {
sendEcCalibrationResult(status, delay_ms);
@ -76,7 +77,8 @@ public class EchoCancellerCalibrationFragment extends Fragment implements XmlRpc
xmlRpcRequest.setListener(this);
try {
LinphoneManager.getInstance().startEcCalibration(mListener);
LinphoneManager.getLc().addListener(mListener);
LinphoneManager.getInstance().startEcCalibration();
} catch (CoreException e) {
Log.e(e, "Unable to calibrate EC");
AssistantActivity.instance().isEchoCalibrationFinished();