diff --git a/Classes/CallManager.swift b/Classes/CallManager.swift index 727cbb26f..1b58a7b86 100644 --- a/Classes/CallManager.swift +++ b/Classes/CallManager.swift @@ -142,7 +142,7 @@ import AVFoundation return allow } - @objc func setSpeakerEnabled(enable: Bool) { + @objc func enableSpeaker(enable: Bool) { speakerEnabled = enable do { if (enable && allowSpeaker()) { @@ -150,6 +150,7 @@ import AVFoundation UIDevice.current.isProximityMonitoringEnabled = false bluetoothEnabled = false } else { + try AVAudioSession.sharedInstance().overrideOutputAudioPort(.none) let buildinPort = AudioHelper.bluetoothAudioDevice() try AVAudioSession.sharedInstance().setPreferredInput(buildinPort) UIDevice.current.isProximityMonitoringEnabled = (lc!.callsNb > 0) @@ -436,7 +437,7 @@ class CoreManagerDelegate: CoreDelegate { if (CallManager.instance().speakerBeforePause) { CallManager.instance().speakerBeforePause = false - CallManager.instance().setSpeakerEnabled(enable: true) + CallManager.instance().enableSpeaker(enable: true) CoreManagerDelegate.speaker_already_enabled = true } break @@ -460,7 +461,7 @@ class CoreManagerDelegate: CoreDelegate { UIDevice.current.isProximityMonitoringEnabled = false CoreManagerDelegate.speaker_already_enabled = false if (CallManager.instance().lc!.callsNb == 0) { - CallManager.instance().setSpeakerEnabled(enable: false) + CallManager.instance().enableSpeaker(enable: false) // disable this because I don't find anygood reason for it: _bluetoothAvailable = FALSE; // furthermore it introduces a bug when calling multiple times since route may not be // reconfigured between cause leading to bluetooth being disabled while it should not @@ -506,7 +507,7 @@ class CoreManagerDelegate: CoreDelegate { if (cstate == .IncomingReceived || cstate == .OutgoingInit || cstate == .Connected || cstate == .StreamsRunning) { if (video && !CoreManagerDelegate.speaker_already_enabled && !CallManager.instance().bluetoothEnabled) { - CallManager.instance().setSpeakerEnabled(enable: true) + CallManager.instance().enableSpeaker(enable: true) CoreManagerDelegate.speaker_already_enabled = true } } diff --git a/Classes/CallOutgoingView.m b/Classes/CallOutgoingView.m index c97043be3..524e8437a 100644 --- a/Classes/CallOutgoingView.m +++ b/Classes/CallOutgoingView.m @@ -93,20 +93,20 @@ static UICompositeViewDescription *compositeDescription = nil; - (IBAction)onRoutesBluetoothClick:(id)sender { [self hideRoutes:TRUE animated:TRUE]; - [CallManager.instance setSpeakerEnabled:FALSE]; + [CallManager.instance enableSpeakerWithEnable:FALSE]; [LinphoneManager.instance setBluetoothEnabled:TRUE]; } - (IBAction)onRoutesEarpieceClick:(id)sender { [self hideRoutes:TRUE animated:TRUE]; - [CallManager.instance setSpeakerEnabled:FALSE]; + [CallManager.instance enableSpeakerWithEnable:FALSE]; [LinphoneManager.instance setBluetoothEnabled:FALSE]; } - (IBAction)onRoutesSpeakerClick:(id)sender { [self hideRoutes:TRUE animated:TRUE]; [LinphoneManager.instance setBluetoothEnabled:FALSE]; - [CallManager.instance setSpeakerEnabled:TRUE]; + [CallManager.instance enableSpeakerWithEnable:TRUE]; } - (IBAction)onRoutesClick:(id)sender { diff --git a/Classes/CallView.m b/Classes/CallView.m index d6bb1fb39..0d2ac590f 100644 --- a/Classes/CallView.m +++ b/Classes/CallView.m @@ -816,20 +816,20 @@ static void hideSpinner(LinphoneCall *call, void *user_data) { - (IBAction)onRoutesBluetoothClick:(id)sender { [self hideRoutes:TRUE animated:TRUE]; - [CallManager.instance setSpeakerEnabled:FALSE]; + [CallManager.instance enableSpeakerWithEnable:FALSE]; [LinphoneManager.instance setBluetoothEnabled:TRUE]; } - (IBAction)onRoutesEarpieceClick:(id)sender { [self hideRoutes:TRUE animated:TRUE]; - [CallManager.instance setSpeakerEnabled:FALSE]; + [CallManager.instance enableSpeakerWithEnable:FALSE]; [LinphoneManager.instance setBluetoothEnabled:FALSE]; } - (IBAction)onRoutesSpeakerClick:(id)sender { [self hideRoutes:TRUE animated:TRUE]; [LinphoneManager.instance setBluetoothEnabled:FALSE]; - [CallManager.instance setSpeakerEnabled:TRUE]; + [CallManager.instance enableSpeakerWithEnable:TRUE]; } - (IBAction)onRoutesClick:(id)sender { diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index 2b34ba9e1..9933817e2 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -1929,7 +1929,7 @@ static int comp_call_state_paused(const LinphoneCall *call, const void *param) { - (void)setBluetoothEnabled:(BOOL)enable { if (_bluetoothAvailable) { - // The change of route will be done in setSpeakerEnabled + // The change of route will be done in enableSpeaker CallManager.instance.bluetoothEnabled = enable; if (CallManager.instance.bluetoothEnabled) { NSError *err = nil; @@ -1947,7 +1947,7 @@ static int comp_call_state_paused(const LinphoneCall *call, const void *param) { } } } - [CallManager.instance setSpeakerEnabled:CallManager.instance.speakerEnabled]; + [CallManager.instance enableSpeakerWithEnable:CallManager.instance.speakerEnabled]; } #pragma mark - Call Functions diff --git a/Classes/LinphoneUI/UISpeakerButton.m b/Classes/LinphoneUI/UISpeakerButton.m index d8d6ded6d..c02c0f57f 100644 --- a/Classes/LinphoneUI/UISpeakerButton.m +++ b/Classes/LinphoneUI/UISpeakerButton.m @@ -46,11 +46,11 @@ INIT_WITH_COMMON_CF { } - (void)onOn { - [CallManager.instance setSpeakerEnabled:TRUE]; + [CallManager.instance enableSpeakerWithEnable:TRUE]; } - (void)onOff { - [CallManager.instance setSpeakerEnabled:FALSE]; + [CallManager.instance enableSpeakerWithEnable:FALSE]; } - (bool)onUpdate { diff --git a/Classes/LinphoneUI/UIVideoButton.m b/Classes/LinphoneUI/UIVideoButton.m index 4872bb48c..adc846844 100644 --- a/Classes/LinphoneUI/UIVideoButton.m +++ b/Classes/LinphoneUI/UIVideoButton.m @@ -58,7 +58,7 @@ INIT_WITH_COMMON_CF { if (!linphone_core_video_display_enabled(LC)) return; - [CallManager.instance setSpeakerEnabled:FALSE]; + [CallManager.instance enableSpeakerWithEnable:FALSE]; [self setEnabled:FALSE]; [waitView startAnimating];