예제 #1
0
        public TestViewModel(IEventAggregator eventAggregator, IMeetingSdkAgent sdkWrapper)
        {
            _eventAggregator = eventAggregator;
            _sdkWrapper      = sdkWrapper;
            _windowManager   = IoC.Get <IMeetingWindowManager>();

            _eventAggregator.GetEvent <NetStatusNoticeEvent>().Subscribe(OnNetStatusNotice);
            _eventAggregator.GetEvent <NetCheckedEvent>().Subscribe(OnNetChecked);


            var p1 = StreamParameterProviders.GetProvider <PublishMicStreamParameter>();
            var p2 = StreamParameterProviders.GetProvider <PublishCameraStreamParameter>();

            var parameter = new PublishCameraStreamParameter();

            StreamParameterProviders.ProviderParameter(parameter);

            Started = sdkWrapper.IsStarted;


            VideoDevices       = new BindableCollection <string>();
            AudioInputDevices  = new BindableCollection <string>();
            AudioOutputDevices = new BindableCollection <string>();


            //var accessor = IoC.Get<IDeviceNameAccessor>();

            //string deviceName;
            //if (accessor.TryGetName(DeviceName.Camera, m => m.Option == "First", out deviceName))
            //{
            //    // deviceName
            //}
        }
예제 #2
0
        public LoginViewModel(LoginView loginView)
        {
            _loginView        = loginView;
            _netCheckService  = DependencyResolver.Current.GetService <INetCheckService>();
            _localDataManager = DependencyResolver.Current.GetService <ILocalDataManager>();
            _bmsService       = DependencyResolver.Current.GetService <IBms>();

            _meetingSdkAgent = DependencyResolver.Current.GetService <IMeetingSdkAgent>();
            _eventAggregator = DependencyResolver.Current.GetService <IEventAggregator>();
            _windowManager   = DependencyResolver.Current.GetService <IMeetingWindowManager>();

            LoginingCommand = DelegateCommand.FromAsyncHandler(LoginingAsync);

            //RegisterEvents();
            GlobalData.Instance.ModeList = new List <Mode>
            {
                new Mode {
                    Name = "自动", ReceiveCommand = true
                },
                new Mode {
                    Name = "键盘", ReceiveCommand = false
                }
            };
            GlobalData.Instance.CurrentMode = GlobalData.Instance.ModeList.FirstOrDefault();
        }
예제 #3
0
        public PictureModeViewModel()
        {
            _windowManager = DependencyResolver.Current.GetService <IMeetingWindowManager>();

            CheckPictureModeCommand = new DelegateCommand <object>(CheckPictureModeAsync);
            InitPictureModes();
        }
예제 #4
0
 public VideoBox(string name, WindowsFormsHost host)
 {
     this.Name             = name;
     this.Host             = host;
     Handle                = IntPtr.Zero;
     _eventAggregator      = IoC.Get <IEventAggregator>();
     _meetingWindowManager = IoC.Get <IMeetingWindowManager>();
 }
예제 #5
0
        public CreateClassViewModel(CreateClassView createClassView)
        {
            _createClassView = createClassView;
            Classrooms       = new ObservableCollection <ClassroomEx>();
            _classroomBms    = DependencyResolver.Current.GetService <IBms>();
            _meetingSdkAgent = DependencyResolver.Current.GetService <IMeetingSdkAgent>();
            _windowManager   = DependencyResolver.Current.GetService <IMeetingWindowManager>();

            GetClassroomsCommand = DelegateCommand.FromAsyncHandler(GetClassroomsAsync);
            CreateClassCommand   = new DelegateCommand(CreateClass);
            GoBackCommand        = new DelegateCommand(GoBack);
        }
예제 #6
0
        private InvitationService()
        {
            _meetingSdkAgent  = DependencyResolver.Current.GetService <IMeetingSdkAgent>();
            _windowManager    = DependencyResolver.Current.GetService <IMeetingWindowManager>();
            _localDataManager = DependencyResolver.Current.GetService <ILocalDataManager>();
            _manualPushLive   = DependencyResolver.Current.Container.ResolveNamed <IPushLive>("ManualPushLive");
            _localRecordLive  = DependencyResolver.Current.GetService <IRecordLive>();
            _eventAggregator  = DependencyResolver.Current.GetService <IEventAggregator>();

            _eventAggregator.GetEvent <UiTransparentMsgReceivedEvent>().Subscribe(OnUiMsgReceivedEventHandler);
            _eventAggregator.GetEvent <MeetingInvitationEvent>().Subscribe(_meetingManagerService_InvitationReceivedEvent);
        }
예제 #7
0
        public SetSpecialViewModel(LayoutRenderType pictureMode)
        {
            _windowManager = DependencyResolver.Current.GetService <IMeetingWindowManager>();

            _targetPictureMode = pictureMode;

            SetSpecialViewTip(pictureMode);

            AttendeeViews = new ObservableCollection <TextWithButtonItem>();

            GetAttendeeViewsCommand = new DelegateCommand(GetAttendeeViewsAsync);
            SetSpecialViewCommand   = new DelegateCommand <TextWithButtonItem>(SetSpecialViewAsync);
        }
예제 #8
0
        public static void AddOrUpdate(CacheKey key, object value)
        {
            if (key == CacheKey.HostId)
            {
                _windowManager = DependencyResolver.Current.GetService <IMeetingWindowManager>();

                _windowManager.HostId = int.Parse(value.ToString());
            }

            _cache.AddOrUpdate(key, value, (cacheKey, oldValue) =>
            {
                return(value);
            });
        }
        public SelectAttendeeListViewModel(SelectAttendeeListView selectAttendeeListView, LayoutRenderType specialViewType)
        {
            _windowManager = IoC.Get <IMeetingWindowManager>();

            _selectAttendeeListView = selectAttendeeListView;
            _targetSpecialViewType  = specialViewType;

            _userInfos = IoC.Get <List <UserInfo> >();

            AttendeeItems = new ObservableCollection <AttendeeItem>();

            LoadedCommand        = new DelegateCommand(LoadedAsync);
            WindowKeyDownCommand = new DelegateCommand <object>(WindowKeyDownHandlerAsync);
        }
예제 #10
0
        public static void AddOrUpdate(CacheKey key, object value)
        {
            if (key == CacheKey.HostId)
            {
                _windowManager = IoC.Get <IMeetingWindowManager>();

                _windowManager.HostId = int.Parse(value.ToString());
            }

            _cache.AddOrUpdate(key, value, (cacheKey, oldValue) =>
            {
                return(value);
            });
        }
예제 #11
0
        public ClassModeViewModel()
        {
            _localDataManager   = DependencyResolver.Current.GetService <ILocalDataManager>();
            _meetingService     = DependencyResolver.Current.GetService <IMeetingSdkAgent>();
            _windowManager      = DependencyResolver.Current.GetService <IMeetingWindowManager>();
            _remoteRecord       = DependencyResolver.Current.GetService <IRemoteRecord>();
            _deviceNameAccessor = DependencyResolver.Current.GetService <IDeviceNameAccessor>();

            CheckClassModeCommand = new DelegateCommand <object>(CheckClassModeAsync);
            ShareCommand          = new DelegateCommand(ShareAsync);
            RecordCommand         = DelegateCommand.FromAsyncHandler(RecordAsync);
            InitClassModeItems();
            InitToggleItems();
        }
예제 #12
0
        public LayoutViewModel(LayoutView layoutView)
        {
            _layoutView = layoutView;

            _windowManager = IoC.Get <IMeetingWindowManager>();

            WindowKeyDownCommand        = new DelegateCommand <object>(WindowKeyDownHandlerAsync);
            SetAverageLayoutCommand     = new DelegateCommand(SetAverageLayoutAsync);
            SelectAttendeeAsBigCommand  = new DelegateCommand(SelectAttendeeAsBig);
            SelectAttendeeAsFullCommand = new DelegateCommand(SelectAttendeeAsFull);
            LoadedCommand = new DelegateCommand(() =>
            {
                InputSimulatorManager.Instance.Simulator.Keyboard.KeyPress(VirtualKeyCode.TAB);
            });
        }
        public ManageAttendeeListViewModel(ManageAttendeeListView manageAttendeeListView)
        {
            _manageAttendeeListView          = manageAttendeeListView;
            _manageAttendeeListView.Closing += _manageAttendeeListView_Closing;
            _userInfos       = IoC.Get <List <UserInfo> >();
            _meetingSdkAgent = IoC.Get <IMeetingSdkAgent>();
            _windowManager   = IoC.Get <IMeetingWindowManager>();

            RegisterEvents();

            AttendeeItems = new ObservableCollection <AttendeeItem>();

            LoadedCommand        = new DelegateCommand(LoadedAsync);
            WindowKeyDownCommand = new DelegateCommand <object>(WindowKeyDownHandlerAsync);
        }
예제 #14
0
        public ExtendedWindowManager(IMeetingWindowManager meetingWindowManager, IEventAggregator eventAggregator, IMeetingSdkAgent meetingSdkAgent)
        {
            windowManager    = meetingWindowManager;
            _eventAggregator = eventAggregator;
            _meetingSdkAgent = meetingSdkAgent;

            _eventAggregator.GetEvent <VideoBoxAddedEvent>().Subscribe(AccountResourceAddedEventHandler);
            _eventAggregator.GetEvent <VideoBoxRemovedEvent>().Subscribe(AccountResourceRemovedEventHandler);

            LayoutRendererStore = new LayoutRendererStore()
            {
                CurrentLayoutRenderType = LayoutRenderType.AverageLayout,
            };

            Properties = new Dictionary <string, object>();
        }
        public LoginViewModel(Window loginView)
        {
            _windowManager        = IoC.Get <IMeetingWindowManager>();
            _loginView            = loginView;
            _userInfo             = IoC.Get <UserInfo>();
            _bmsService           = IoC.Get <IBms>();
            _visualizeShellSevice = IoC.Get <IVisualizeShell>();
            _loginView.Closing   += _loginView_Closing;

            LoginCommand          = DelegateCommand.FromAsyncHandler(LoginAsync);
            LoadCommand           = DelegateCommand.FromAsyncHandler(LoadAsync);
            SaveSettingCommand    = DelegateCommand.FromAsyncHandler(SaveSettingAsync);
            ShowSettingCommand    = new DelegateCommand(ShowSettingAsync);
            TopMostTriggerCommand = new DelegateCommand(TriggerTopMost);
            ShowLogCommand        = DelegateCommand.FromAsyncHandler(ShowLogAsync);
        }
예제 #16
0
        //public bool CanRender(IVideoBoxManager videoBoxManager, out string cannotRenderMessage)
        //{
        //    cannotRenderMessage = string.Empty;
        //    return true;
        //}

        //public void CalculateViewBoxPositions(IVideoBoxManager videoBoxManager, double width, double height, string key)
        //{
        //    ModeDisplayerFactory.Factory.Create().CalculateViewBoxPositions(videoBoxManager, width, height, key);
        //}

        //public void Render(IVideoBoxManager videoBoxManager)
        //{

        //}

        //private bool TryGetContainer(IVideoBoxManager videoBoxManager, out Canvas canvas)
        //{
        //    canvas = null;

        //    if (videoBoxManager == null)
        //    {
        //        return false;
        //    }

        //    if (!videoBoxManager.Any())
        //    {
        //        return false;
        //    }

        //    canvas = videoBoxManager.First().Host?.Parent as Canvas;

        //    return canvas != null;
        //}

        public void Render(IEnumerable <IVideoBox> videoBoxs, Size canvasSize)
        {
            IMeetingWindowManager meetingWindowManager = IoC.Get <IMeetingWindowManager>();

            meetingWindowManager.ModeDisplayerStore.Create().Display(videoBoxs, canvasSize);
        }
예제 #17
0
파일: Mode.cs 프로젝트: wuscier/Classroom3
 public Mode()
 {
     _meetingSdkAgent      = DependencyResolver.Current.GetService <IMeetingSdkAgent>();
     _windowManager        = DependencyResolver.Current.GetService <IMeetingWindowManager>();
     _classScheduleService = DependencyResolver.Current.GetService <IClassScheduleService>();
 }
예제 #18
0
 public ShellViewModel(IRegionManager regionManager)
 {
     _regionManager = regionManager;
     _windowManager = IoC.Get <IMeetingWindowManager>();
 }