예제 #1
0
        public Presenter(PresenterSettings presenterSettings)
        {
            try
            {
                _presenterSettings = presenterSettings;
                _videoCapture = _presenterSettings.VideoCaptureControl;
                _audioStreamManager = new AudioStreamManager(_presenterSettings.AudioTimerInterval, 
                    _presenterSettings.OnAudioCaptureAvailable);

                // initialize the image capture size
                if (_videoCapture != null)
                {
                    _videoCapture.ImageHeight = presenterSettings.VideoScreenSize.Height;
                    _videoCapture.ImageWidth = presenterSettings.VideoScreenSize.Width;

                    _firstTimeCapturing = true;

                    // bind the image captured event
                    _videoCapture.ImageCaptured += new Delegates.WebCamEventHandler(presenterSettings.OnVideoImageCaptured);
                }

                _screenCaptureTool = new ScreenCaptureTool(_presenterSettings.RemotingTimerInterval, 
                    _presenterSettings.OnRemotingImageCaptured);
            }
            catch (Exception ex)
            {
                Tools.Instance.Logger.LogError(ex.ToString());
            }
        }
예제 #2
0
 public static IPresenter Instance(PresenterSettings presenterSettings)
 {
     if (_presenter == null)
     {
         lock (_syncPresenter)
         {
             if (_presenter == null)
             {        
                 _presenter = new Presenter(presenterSettings);
             }
         }
     }
     return _presenter;
 }
예제 #3
0
        public Presenter(IMPView view, PresenterSettings settings = null)
        {
            _player = new MusicPlayer();
            _view   = view;

            _settings = settings ?? new PresenterSettings();

            _view.SetNextTrackSetting(_player.NextTrackSelection);
            _view.SetVolume(_player.Volume);

            _player.PlayerStatusChanged += (o, status) =>
            {
                if (status == Status.Playing)
                {
                    _view.SetPlay();
                }
                else
                {
                    _view.SetPause();
                }
            };

            _player.TrackSelected += (o, track) =>
            {
                _view.SetMaximumProgress(track.DurationRaw);
                _view.SetTrackTitle(track.Title);
                _view.SetTrackProgress(TimeSpan.Zero);
                _view.SetTrackDuration(track.Duration);
                _view.SetSelectedTrack(track.Title);
            };

            _player.ProgressChanged += (o, progressRaw) =>
            {
                _view.SetProgress((int)progressRaw);
                _view.SetTrackProgress(((MusicPlayer)o).Progress);
            };

            _player.VolumeChanged += (o, volume) =>
            {
                _view.SetVolume(volume);
            };
        }
예제 #4
0
        private void InitializePresenterSettings()
        {
            try
            {
                int videoTimerInterval = int.Parse(ConfigurationManager.AppSettings["videoTimerInterval"].ToString());
                int height = 354, width = 360;
                _presenterSettings = new PresenterSettings()
                {
                    Identity = FriendlyName,
                    VideoTimerInterval = videoTimerInterval,
                    VideoScreenSize =
                        new DescriptorUtils.Structures.ScreenSize()
                        {
                            Height = height,
                            Width = width
                        },
                    OnVideoImageCaptured = new EventHandler(Program.Controller.OnVideoImageCaptured),
                    RemotingTimerInterval = int.Parse(ConfigurationManager.AppSettings["remotingTimerInterval"].ToString()),
                    OnRemotingImageCaptured = new EventHandler(Program.Controller.OnRemotingImageCaptured),
                    OnAudioCaptureAvailable = new EventHandler(Program.Controller.OnAudioCaptured),
                    AudioTimerInterval = int.Parse(ConfigurationManager.AppSettings["audioTimerInterval"].ToString()),
                    PrivateConference = bool.Parse(ConfigurationManager.AppSettings["PrivateConference"].ToString())

                };
            }
            catch (Exception ex)
            {
                Tools.Instance.Logger.LogError(ex.ToString());
            }
        }
예제 #5
0
 public ViewSettings()
 {
     InitializeComponent();
     _presenter = new PresenterSettings(this);
 }