Fix ec calibration crash

This commit is contained in:
Sylvain Berfini 2014-12-11 11:17:49 +01:00
parent 925b839625
commit 1b970dae29
4 changed files with 14 additions and 24 deletions

View file

@ -901,14 +901,7 @@ public class LinphoneManager implements LinphoneListener {
boolean encrypted, String authenticationToken) { boolean encrypted, String authenticationToken) {
} }
public void ecCalibrationStatus(final LinphoneCore lc,final EcCalibratorStatus status, final int delayMs, public void startEcCalibration(LinphoneEchoCalibrationListener l) throws LinphoneCoreException {
final Object data) {
routeAudioToReceiver();
EcCalibrationListener listener = (EcCalibrationListener) data;
listener.onEcCalibrationStatus(status, delayMs);
}
public void startEcCalibration(EcCalibrationListener l) throws LinphoneCoreException {
routeAudioToSpeaker(); routeAudioToSpeaker();
int oldVolume = mAudioManager.getStreamVolume(STREAM_VOICE_CALL); int oldVolume = mAudioManager.getStreamVolume(STREAM_VOICE_CALL);
int maxVolume = mAudioManager.getStreamMaxVolume(STREAM_VOICE_CALL); int maxVolume = mAudioManager.getStreamMaxVolume(STREAM_VOICE_CALL);
@ -918,14 +911,6 @@ public class LinphoneManager implements LinphoneListener {
mAudioManager.setStreamVolume(STREAM_VOICE_CALL, oldVolume, 0); mAudioManager.setStreamVolume(STREAM_VOICE_CALL, oldVolume, 0);
} }
private boolean isRinging; private boolean isRinging;
private boolean disableRinging = false; private boolean disableRinging = false;

View file

@ -22,7 +22,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.linphone.LinphoneManager.EcCalibrationListener;
import org.linphone.core.LinphoneAddress; import org.linphone.core.LinphoneAddress;
import org.linphone.core.LinphoneCore; import org.linphone.core.LinphoneCore;
import org.linphone.core.LinphoneCore.AdaptiveRateAlgorithm; import org.linphone.core.LinphoneCore.AdaptiveRateAlgorithm;
@ -30,6 +29,7 @@ import org.linphone.core.LinphoneCore.EcCalibratorStatus;
import org.linphone.core.LinphoneCore.MediaEncryption; import org.linphone.core.LinphoneCore.MediaEncryption;
import org.linphone.core.LinphoneCoreException; import org.linphone.core.LinphoneCoreException;
import org.linphone.core.LinphoneCoreFactory; import org.linphone.core.LinphoneCoreFactory;
import org.linphone.core.LinphoneCoreListener.LinphoneEchoCalibrationListener;
import org.linphone.core.LinphoneProxyConfig; import org.linphone.core.LinphoneProxyConfig;
import org.linphone.core.PayloadType; import org.linphone.core.PayloadType;
import org.linphone.mediastream.Log; import org.linphone.mediastream.Log;
@ -54,7 +54,7 @@ import android.preference.PreferenceScreen;
/** /**
* @author Sylvain Berfini * @author Sylvain Berfini
*/ */
public class SettingsFragment extends PreferencesListFragment implements EcCalibrationListener { public class SettingsFragment extends PreferencesListFragment implements LinphoneEchoCalibrationListener {
private static final int WIZARD_INTENT = 1; private static final int WIZARD_INTENT = 1;
private LinphonePreferences mPrefs; private LinphonePreferences mPrefs;
private Handler mHandler = new Handler(); private Handler mHandler = new Handler();
@ -926,7 +926,9 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
} }
@Override @Override
public void onEcCalibrationStatus(final EcCalibratorStatus status, final int delayMs) { public void ecCalibrationStatus(LinphoneCore lc, final EcCalibratorStatus status, final int delayMs, Object data) {
LinphoneManager.getInstance().routeAudioToReceiver();
mHandler.post(new Runnable() { mHandler.post(new Runnable() {
public void run() { public void run() {
CheckBoxPreference echoCancellation = (CheckBoxPreference) findPreference(getString(R.string.pref_echo_cancellation_key)); CheckBoxPreference echoCancellation = (CheckBoxPreference) findPreference(getString(R.string.pref_echo_cancellation_key));

View file

@ -22,11 +22,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
import java.net.URL; import java.net.URL;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphoneManager.EcCalibrationListener;
import org.linphone.LinphonePreferences; import org.linphone.LinphonePreferences;
import org.linphone.R; import org.linphone.R;
import org.linphone.core.LinphoneCore.EcCalibratorStatus; import org.linphone.core.LinphoneCore.EcCalibratorStatus;
import org.linphone.core.LinphoneCore;
import org.linphone.core.LinphoneCoreException; import org.linphone.core.LinphoneCoreException;
import org.linphone.core.LinphoneCoreListener.LinphoneEchoCalibrationListener;
import org.linphone.mediastream.Log; import org.linphone.mediastream.Log;
import android.os.Build; import android.os.Build;
@ -44,7 +45,7 @@ import de.timroes.axmlrpc.XMLRPCServerException;
/** /**
* @author Ghislain MARY * @author Ghislain MARY
*/ */
public class EchoCancellerCalibrationFragment extends Fragment implements EcCalibrationListener { public class EchoCancellerCalibrationFragment extends Fragment implements LinphoneEchoCalibrationListener {
private Handler mHandler = new Handler(); private Handler mHandler = new Handler();
private boolean mSendEcCalibrationResult = false; private boolean mSendEcCalibrationResult = false;
@ -63,14 +64,16 @@ public class EchoCancellerCalibrationFragment extends Fragment implements EcCali
} }
@Override @Override
public void onEcCalibrationStatus(EcCalibratorStatus status, int delayMs) { public void ecCalibrationStatus(LinphoneCore lc,LinphoneCore.EcCalibratorStatus status, int delay_ms, Object data) {
LinphoneManager.getInstance().routeAudioToReceiver();
if (status == EcCalibratorStatus.DoneNoEcho) { if (status == EcCalibratorStatus.DoneNoEcho) {
LinphonePreferences.instance().setEchoCancellation(false); LinphonePreferences.instance().setEchoCancellation(false);
} else if ((status == EcCalibratorStatus.Done) || (status == EcCalibratorStatus.Failed)) { } else if ((status == EcCalibratorStatus.Done) || (status == EcCalibratorStatus.Failed)) {
LinphonePreferences.instance().setEchoCancellation(true); LinphonePreferences.instance().setEchoCancellation(true);
} }
if (mSendEcCalibrationResult) { if (mSendEcCalibrationResult) {
sendEcCalibrationResult(status, delayMs); sendEcCalibrationResult(status, delay_ms);
} else { } else {
SetupActivity.instance().isEchoCalibrationFinished(); SetupActivity.instance().isEchoCalibrationFinished();
} }

@ -1 +1 @@
Subproject commit 4ebc9c85b954fd0e993a3f7e8890ae190fd8a79e Subproject commit f3c7c993eacd8f9eccb8088e53875ccbd50f346b