Example #1
0
        protected override void Load(ContainerBuilder builder)
        {
            var services = new List <Type>();
            //services.Add(typeof(EnvironmentService));
            //services.Add(typeof(MusicCastHost));
            var swimbaitConfig = SwimbaitConfig.Get();

            RegisterTypes(builder, "Services", services);

            var environmentService = GetEnvironmentService();
            var musicCastHost      = new MusicCastHost(environmentService);

            musicCastHost.RelayHost = IPAddress.Parse(swimbaitConfig["RelayHost"]);


            builder.RegisterInstance <EnvironmentService>(environmentService)
            .AsImplementedInterfaces()
            .AsSelf()
            .SingleInstance();

            builder.RegisterInstance <MusicCastHost>(musicCastHost)
            .AsImplementedInterfaces()
            .AsSelf()
            .SingleInstance();
        }
Example #2
0
        public static void Main(string[] args)
        {
            var keyHandler = new KeyHandler();

            // todo: IOC
            var environmentService = SwimbaitModule.GetEnvironmentService();

            _multicastServer  = new MulticastServer(environmentService);
            _multicastService = new MulticastService(environmentService);
            var _musicCastHost = new MusicCastHost(environmentService);

            //Add command line configuration source to read command line parameters.
            var builder       = new ConfigurationBuilder();
            var portsToListen = new [] { 80, EnvironmentService.SwimbaitDlnaPort, 51100 };

            var urisToListen = portsToListen
                               .ToList()
                               .Select(p => $"http://{environmentService.IpAddress}:{p}");

            var uriToListenString = string.Join(";", urisToListen);

            var config = builder
                         .AddCommandLine(new[] { $"server.urls={uriToListenString}" })
                         .AddEnvironmentVariables()
                         .Build();

            _musicCastHost.RelayHost = IPAddress.Parse(config["Swimbait:RelayHost"]);

            // Dirty DI
            Startup._environmentService = environmentService;
            Startup._musicCastHost      = _musicCastHost;

            var host = new WebHostBuilder()
                       .UseConfiguration(config)
                       .UseKestrel()
                       .UseStartup <Startup>()
                       .Build();

            Console.WriteLine($"Starting the server. Listening on {uriToListenString}. Udp broadcasting to {environmentService.SubnetBroadcastIp}");
            host.Start();

            Console.WriteLine("Press 'Q' to stop the server");
            Console.WriteLine("Press 'M' to send SSDP Multicast discovery");
            Console.WriteLine("Press 'C' when ready to connect to the MusicCast app");

            _multicastServer.Start();

            keyHandler.KeyEvent += KeyHandler_KeyEvent;

            keyHandler.WaitForExit();

            host.Dispose();

            _multicastServer.Dispose();
        }
Example #3
0
 public MediaRendererController(
     ILoggerFactory loggerFactory
     , MusicCastHost musicCastHost) : base(loggerFactory)
 {
     _musicCastHost = musicCastHost;
 }
Example #4
0
 public SystemController(ILoggerFactory loggerFactory, MusicCastHost musicCastHost) : base(loggerFactory)
 {
     _musicCastHost = musicCastHost;
 }
Example #5
0
 public DisttributionController(ILoggerFactory loggerFactory, MusicCastHost musicCastHost) : base(loggerFactory)
 {
     _musicCastHost = musicCastHost;
 }