public void OnVoipState(VoipState voipState) { if (_foregroundChannel == null) { _foregroundChannel = _container.Resolve<IForegroundChannel>(); } _foregroundChannel.OnVoipState(voipState); }
private void OnVoipStateUpdate(VoipState voipState) { RunOnUiThread(async() => { _currentVoipState = voipState.State; switch (voipState.State) { case VoipStateEnum.LocalRinging: await PlaySound(true); ShowAsParallel = false; UpdateSelection(); break; case VoipStateEnum.RemoteRinging: await PlaySound(false); ShowAsParallel = false; UpdateSelection(); break; case VoipStateEnum.Idle: await StopSound(); ShowAsParallel = LayoutService.Instance.LayoutType == LayoutType.Parallel; UpdateSelection(); break; case VoipStateEnum.EstablishOutgoing: case VoipStateEnum.EstablishIncoming: await StopSound(); break; case VoipStateEnum.HangingUp: case VoipStateEnum.ActiveCall: break; default: throw new ArgumentOutOfRangeException(); } }); }
private void OnStateUpdated(VoipManager sender, VoipState newState) { this.BeginOnUIThread(() => { switch (newState) { case VoipState.WaitInit: case VoipState.WaitInitAck: _state = newState; StateLabel.Content = Strings.Resources.VoipConnecting; break; case VoipState.Established: _state = newState; StateLabel.Content = "00:00"; SignalBarsLabel.Visibility = Visibility.Visible; StartUpdatingCallDuration(); sender.SetIncomingVideoOutput(BackgroundPanel); break; case VoipState.Failed: //switch (sender.GetLastError()) //{ // case libtgvoip.Error.Incompatible: // case libtgvoip.Error.Timeout: // case libtgvoip.Error.Unknown: // _state = newState; // StateLabel.Content = Strings.Resources.VoipFailed; // break; //} break; } }); }
public void OnVoipState(VoipState voipState) { ForegroundClient.OnVoipState(voipState); }
private void OnVoipStateUpdate(VoipState voipState) { switch (voipState.State) { case VoipStateEnum.Idle: CallState = CallState.Idle; IsOtherConversationInCallMode = false; LocalSwapChainPanelHandle = 0; RemoteSwapChainPanelHandle = 0; break; case VoipStateEnum.LocalRinging: if (voipState.PeerId == UserId) { CallState = CallState.LocalRinging; UnMuteCommandExecute(); //Start new calls with mic enabled IsVideoEnabled = voipState.IsVideoEnabled; IsAudioOnlyCall = !voipState.IsVideoEnabled; LocalNativeVideoSize = new Size(0, 0); RemoteNativeVideoSize = new Size(0, 0); LocalFrameRate = "N/A"; RemoteFrameRate = "N/A"; } else { IsOtherConversationInCallMode = true; } break; case VoipStateEnum.RemoteRinging: if (voipState.PeerId == UserId) { CallState = CallState.RemoteRinging; UnMuteCommandExecute(); //Start new calls with mic enabled IsVideoEnabled = voipState.IsVideoEnabled; LocalNativeVideoSize = new Size(0, 0); RemoteNativeVideoSize = new Size(0, 0); LocalFrameRate = "N/A"; RemoteFrameRate = "N/A"; } else { IsOtherConversationInCallMode = true; } break; case VoipStateEnum.EstablishOutgoing: if (voipState.PeerId == UserId) { CallState = CallState.Connected; } else { IsOtherConversationInCallMode = true; } break; case VoipStateEnum.EstablishIncoming: if (voipState.PeerId == UserId) { CallState = CallState.Connected; IsVideoEnabled = voipState.IsVideoEnabled; IsAudioOnlyCall = !voipState.IsVideoEnabled; IsSelfVideoAvailable = IsVideoEnabled; IsPeerVideoAvailable = IsVideoEnabled; } else { IsOtherConversationInCallMode = true; } break; case VoipStateEnum.HangingUp: if (voipState.PeerId == UserId) { CallState = CallState.Connected; } else { IsOtherConversationInCallMode = true; } break; case VoipStateEnum.ActiveCall: if (voipState.PeerId == UserId) { CallState = CallState.Connected; IsSelfVideoAvailable = IsVideoEnabled; IsPeerVideoAvailable = voipState.IsVideoEnabled; } else { IsOtherConversationInCallMode = true; } break; default: throw new ArgumentOutOfRangeException(); } }
public void OnVoipState(VoipState state) { SendToForeground(state); }
public void OnVoipState(VoipState state) { RunOnUiThread(() => OnVoipStateUpdate?.Invoke(state)); }