Example #1
0
 public void InstallServices(IServiceProvider map)
 {
     _core      = map.GetService(typeof(Core)) as Core;
     _config    = map.GetService(typeof(Config)) as Config;
     _hueClient = map.GetService(typeof(HueCore)) as HueCore;
     _screen    = map.GetService(typeof(ScreenReader)) as ScreenReader;
 }
Example #2
0
 public void InstallServices(IServiceProvider _map)
 {
     _config    = _map.GetService(typeof(Config)) as Config;
     _hueClient = _map.GetService(typeof(HueCore)) as HueCore;
     _logger    = _map.GetService(typeof(FileLogger)) as FileLogger;
     if (!_config.Model.ffmpegCaptureSettings.useFFMpeg)
     {
         _rgbLighter = _map.GetService(typeof(RGBLighter)) as RGBLighter;
     }
     _stripLighter = _map.GetService(typeof(StripLighter)) as StripLighter;
 }
Example #3
0
        private IServiceProvider ConfigureServices(bool isHeadless)
        {
            //setup and add command service.
            _input         = new InputHandler(isHeadless);
            _core          = new Core();
            _screen        = new ScreenReader();
            _zoneProcesser = new ZoneProcessor();
            _hueClient     = new HueCore();
            _rgbLighter    = new RGBLighter();
            _stripLighter  = new StripLighter();
            _socketServer  = new SocketHandler();

            var services = new ServiceCollection();

            if (_config.Model.ffmpegCaptureSettings.useFFMpeg)
            {
                services
                .AddScoped <FileLogger>()
                .AddSingleton(_config)
                .AddSingleton(_input)
                .AddSingleton(_core)
                .AddSingleton(_hueClient)
                .AddSingleton(_screen)
                .AddSingleton(_zoneProcesser)
                .AddSingleton(_stripLighter)
                .AddSingleton(_socketServer);
            }
            else
            {
                services
                .AddScoped <FileLogger>()
                .AddSingleton(_config)
                .AddSingleton(_input)
                .AddSingleton(_core)
                .AddSingleton(_hueClient)
                .AddSingleton(_screen)
                .AddSingleton(_zoneProcesser)
                .AddSingleton(_rgbLighter)
                .AddSingleton(_stripLighter)
                .AddSingleton(_socketServer);
            }
            var provider = new DefaultServiceProviderFactory().CreateServiceProvider(services);

            return(provider);
        }
Example #4
0
        public async Task <bool> ConnectToBridge()
        {
            try
            {
                var bridgeIPs = await HueCore.GetBridges();

                if (!bridgeIPs?.Any() ?? false)
                {
                    return(false);
                }

                var bridges = bridgeIPs.ToList();

                bool validInput = false;
                do
                {
                    Console.Clear();
                    Console.WriteLine("Found Bridges:");
                    var i = 1;
                    foreach (var b in bridges)
                    {
                        Console.WriteLine($"{i++}: ip:{b.IpAddress} id:{b.BridgeId}");
                    }


                    Console.WriteLine("Input a bridge(#) to connect to: ");
                    var read    = Console.ReadLine();
                    var readInt = -1;
                    if (int.TryParse(read, out readInt))
                    {
                        if (readInt > bridges.Count || readInt < 1)
                        {
                            continue;
                        }
                        validInput = true;
                        _hueClient.SetBridge(bridges[readInt - 1]);
                        bool nameValid = false;
                        do
                        {
                            try
                            {
                                Console.Clear();
                                Console.WriteLine("Input Device Name and press Link Button on HUE Bridge before hitting enter: ");
                                var deviceName = Console.ReadLine().Trim();
                                if (string.IsNullOrWhiteSpace(deviceName) || deviceName.Length > 19 || deviceName.Contains(' '))
                                {
                                    continue;
                                }
                                nameValid = true;
                                if (_config.Model.hueSettings.hueType == HueType.Basic)
                                {
                                    await _hueClient.RegisterBridge(deviceName);
                                }
                                else
                                {
                                    await _hueClient.RegisterBridgeEntertainment(deviceName);
                                }
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(ex.Message);
                                Console.ReadLine();
                            }
                        }while (!nameValid);
                    }
                }while (!validInput);

                return(true);
            }
            catch
            {
                return(true);
            }
        }