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; }
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; }
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); }
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); } }