Esempio n. 1
0
        private void ShowServerStatus(object sender, EventArgs e)
        {
            var configuration = ExplicitlyMap
                                .TheseTypes <ILedManagerView, LedConfiguration>()
                                .Using <LedManagerViewToConfigurationMap>()
                                .Map(view);

            var serverStatusForm = new ServerStatusForm(configuration);

            serverStatusForm.Show();
        }
Esempio n. 2
0
        private void BrightnessChanged(object sender, IntegerEventArgs e)
        {
            var configuration = ExplicitlyMap
                                .TheseTypes <ILedManagerView, LedConfiguration>()
                                .Using <LedManagerViewToConfigurationMap>()
                                .Map(view);

            try
            {
                brightnessService.AdjustBrightness(e.Value, configuration.Servers);
            }
            catch (Exception ex)
            {
                NotifyError(ex);
            }
        }
Esempio n. 3
0
        public void Confirm()
        {
            if (cts != null)
            {
                try
                {
                    cts.Cancel();
                    cts.Dispose();
                }
                catch (ObjectDisposedException)
                {
                }
            }

            var serverConfig = ExplicitlyMap
                               .TheseTypes <IAddServerView, ServerConfiguration>()
                               .Using <AddServerViewToServerConfigurationMap>()
                               .Map(view);

            FinishPresenting(serverConfig);
        }
Esempio n. 4
0
        private void InitializePlayback(object sender, EventArgs e)
        {
            view.PlaybackStatus = PlaybackStatus.NotReady;
            MarkAsDirty();

            // Validate configuration before playback
            var configuration = ExplicitlyMap
                                .TheseTypes <ILedManagerView, LedConfiguration>()
                                .Using <LedManagerViewToConfigurationMap>()
                                .Map(view);

            IConfigurationValidator configValidator = new ConfigurationValidator();
            var validationResult = configValidator.Validate(configuration);

            if (validationResult.OK)
            {
                if (view.DisplayVideo)
                {
                    videoForm = new VideoForm();
                    videoForm.Show();
                }

                Task.Run(async() =>
                {
                    videoPlayer = new VideoPlayer(configuration, new PatternCreationService(), new VideoMetadataService());

                    var clientConfigPairs = new List <ClientConfigPair>();
                    foreach (var server in configuration.Servers)
                    {
                        clientConfigPairs.Add(new ClientConfigPair(new FadecandyClientWrapper(server.NetworkDeviceDetails.IPAddress, server.Port), server));
                    }

                    if (view.DisplayVideo)
                    {
                        clientConfigPairs.Add(new ClientConfigPair(new DisplayClientWrapper(videoForm), null));
                    }

                    await videoPlayer.Load(clientConfigPairs, view.VideoMetadata.StartTime.Minutes, view.VideoMetadata.StartTime.Seconds);
                    videoPlayer.ConnectedHost += (s, args) =>
                    {
                        view.PlaybackInfo = string.Format("Host '{0}' connected", args.Value);
                        MarkAsDirty();
                    };
                    videoPlayer.DisconnectedHost += (s, args) =>
                    {
                        view.PlaybackInfo = string.Format("Host '{0}' disconnected", args.Value);
                        MarkAsDirty();
                    };

                    view.PlaybackStatus = PlaybackStatus.ReadyToPlay;

                    MarkAsDirty();
                }).Forget();

                playbackCancellationTokenSource = new CancellationTokenSource();
            }
            else
            {
                view.PlaybackStatus = PlaybackStatus.NotReady;

                foreach (var error in validationResult.Errors)
                {
                    NotifyError(new Exception(error));
                }
            }

            MarkAsDirty();
        }