forked from mirrors/linphone-iphone
fix speaker of call
This commit is contained in:
parent
65746e68a1
commit
7fdfe63632
6 changed files with 16 additions and 15 deletions
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue