public SettingsViewModel(IUnityContainer container,
                                 CoreDispatcher dispatcher,
                                 IForegroundUpdateService foregroundUpdateService)
        {
            _foregroundUpdateService = foregroundUpdateService;
            _localSettings           = ApplicationData.Current.LocalSettings;
            _dispatcher = dispatcher;

            _mediaSettings = container.Resolve <IMediaSettingsChannel>();
            _callChannel   = container.Resolve <ICallChannel>();
            _ntpService    = container.Resolve <NtpService>();

            _ntpService.OnNtpSyncFailed    += HandleNtpSynFailed;
            _ntpService.OnNtpTimeAvailable += HandleNtpTimeSync;

            CloseCommand           = new DelegateCommand(OnCloseCommandExecute);
            SaveCommand            = new DelegateCommand(OnSaveCommandExecute);
            QuitAppCommand         = new DelegateCommand(OnQuitAppCommandExecute);
            DeleteIceServerCommand = new DelegateCommand <IceServerViewModel>(OnDeleteIceServerCommandExecute);
            AddIceServerCommand    = new DelegateCommand(OnAddIceServerCommandExecute);

            // When AudioRoutingManager API is available, the UI elements related to microphone and speaker selection
            // are hidden from settings view.
            // In this case, the user will have the option to change the devices to be used from the call UI.
            // https://msdn.microsoft.com/en-us/library/windows/apps/windows.phone.media.devices.audioroutingmanager.aspx
            EnableAudioDeviceSelection = !ApiInformation.IsApiContractPresent("Windows.Phone.PhoneContract", 1);

            _foregroundUpdateService.OnMediaDevicesChanged += OnMediaDevicesChanged;
        }
Beispiel #2
0
        private void SetupVoipContext()
        {
            if (_voipChannel == null)
            {
                var renderResolver = new Func <IVideoRenderHelper>(() => new VideoRenderHelper());

                var voipCoordinator = new VoipCoordinator();
                _voipContext = new VoipContext(this, null, renderResolver, voipCoordinator);
                _voipChannel = new VoipChannel(this, null, _voipContext);
            }
            if (_mediaSettingsChannel == null)
            {
                _mediaSettingsChannel = new MediaSettingsChannel(this, null, _voipContext);
            }
        }
        public SettingsViewModel(IUnityContainer container,
                                 CoreDispatcher dispatcher)
        {
            _localSettings = ApplicationData.Current.LocalSettings;
            _dispatcher    = dispatcher;

            _mediaSettings = container.Resolve <IMediaSettingsChannel>();
            _voipChannel   = container.Resolve <IVoipChannel>();
            _ntpService    = container.Resolve <NtpService>();

            _ntpService.OnNTPSyncFailed    += handleNtpSynFailed;
            _ntpService.OnNTPTimeAvailable += handleNtpTimeSync;

            CloseCommand           = new DelegateCommand(OnCloseCommandExecute);
            SaveCommand            = new DelegateCommand(OnSaveCommandExecute);
            QuitAppCommand         = new DelegateCommand(OnQuitAppCommandExecute);
            DeleteIceServerCommand = new DelegateCommand <IceServerViewModel>(OnDeleteIceServerCommandExecute);
            AddIceServerCommand    = new DelegateCommand(OnAddIceServerCommandExecute);
        }
        public SettingsViewModel(IUnityContainer container,
                                 CoreDispatcher dispatcher)
        {
            _localSettings = ApplicationData.Current.LocalSettings;
            _dispatcher = dispatcher;

            _mediaSettings = container.Resolve<IMediaSettingsChannel>();
            _voipChannel = container.Resolve<IVoipChannel>();
            _ntpService = container.Resolve<NtpService>();

            _ntpService.OnNTPSyncFailed += handleNtpSynFailed;
            _ntpService.OnNTPTimeAvailable += handleNtpTimeSync;

            CloseCommand = new DelegateCommand(OnCloseCommandExecute);
            SaveCommand = new DelegateCommand(OnSaveCommandExecute);
            QuitAppCommand = new DelegateCommand(OnQuitAppCommandExecute);
            DeleteIceServerCommand = new DelegateCommand<IceServerViewModel>(OnDeleteIceServerCommandExecute);
            AddIceServerCommand = new DelegateCommand(OnAddIceServerCommandExecute);            
        }
Beispiel #5
0
        public ConversationViewModel(IClientChannel clientChannel,
                                     IForegroundUpdateService foregroundUpdateService,
                                     ICallChannel callChannel, CoreDispatcher uiDispatcher,
                                     IMediaSettingsChannel settingsChannel)
        {
            _clientChannel           = clientChannel;
            _callChannel             = callChannel;
            _settingsChannel         = settingsChannel;
            _uiDispatcher            = uiDispatcher;
            _foregroundUpdateService = foregroundUpdateService;
            foregroundUpdateService.OnRelayMessagesUpdated += OnRelayMessagesUpdated;
            foregroundUpdateService.OnCallStatusUpdate     += OnCallStatusUpdate;
            foregroundUpdateService.OnFrameFormatUpdate    += OnFrameFormatUpdate;
            foregroundUpdateService.OnFrameRateUpdate      += OnFrameRateUpdate;
            SendInstantMessageCommand = new DelegateCommand(OnSendInstantMessageCommandExecute,
                                                            OnSendInstantMessageCommandCanExecute);
            AudioCallCommand         = new DelegateCommand(OnCallCommandExecute, OnCallCommandCanExecute);
            VideoCallCommand         = new DelegateCommand(OnVideoCallCommandExecute, OnVideoCallCommandCanExecute);
            HangupCommand            = new DelegateCommand(OnHangupCommandExecute, OnHangupCommandCanExecute);
            AnswerCommand            = new DelegateCommand(OnAnswerCommandExecute, OnAnswerCommandCanExecute);
            RejectCommand            = new DelegateCommand(OnRejectCommandExecute, OnRejectCommandCanExecute);
            CloseConversationCommand = new DelegateCommand(OnCloseConversationCommandExecute,
                                                           () => _canCloseConversation);
            MuteMicrophoneCommand   = new DelegateCommand(MuteMicCommandExecute, MicCommandCanExecute);
            UnMuteMicrophoneCommand = new DelegateCommand(UnMuteCommandExecute, MicCommandCanExecute);
            SwitchVideoCommand      = new DelegateCommand(SwitchVideoCommandExecute, SwitchVideoCommandCanExecute);

            IsAudioRoutingApiAvailable = ApiInformation.IsApiContractPresent("Windows.Phone.PhoneContract", 1);
            if (IsAudioRoutingApiAvailable)
            {
                ActivateSpeakerPhone   = new DelegateCommand(ActivateSpeakerPhoneExecute, ActivateSpeakerPhoneCanExecute);
                DeactivateSpeakerPhone = new DelegateCommand(DeactivateSpeakerPhoneExecute, DeactivateSpeakerPhoneCanExecute);
                AudioRoutingManager.GetDefault().AudioEndpointChanged += AudioEndpointChanged;
            }

            ActivateFrontCamera = new DelegateCommand(ActivateFrontCameraExecute, ActivateFrontCameraCanExecute);
            ActivateBackCamera  = new DelegateCommand(ActivateBackCameraExecute, ActivateBackCameraCanExecute);

            LayoutService.Instance.LayoutChanged += LayoutChanged;
            LayoutChanged(LayoutService.Instance.LayoutType);
            SetVideoPresenters();
        }
Beispiel #6
0
        private void SetupVoipContext()
        {
            if (_voipChannel == null)
            {
                var renderResolver = new Func<IVideoRenderHelper>(() => new VideoRenderHelper());

                var voipCoordinator = new VoipCoordinator();
                _voipContext = new VoipContext(this, null, renderResolver, voipCoordinator);
                _voipChannel = new VoipChannel(this, null, _voipContext);
            }
            if (_mediaSettingsChannel == null)
            {
                _mediaSettingsChannel = new MediaSettingsChannel(this, null, _voipContext);
            }
        }