Example #1
0
        /// <summary>
        /// Checks and initialises all the components for the application.
        /// </summary>
        static bool Init()
        {
            bool ok;

            // Set the error level
            Logger.Level = Logger.LogLevel.Info;

            // Loads all settings
            Config = LoadConfig();
            if (Config == null) return false;

            // Get port for the http server
            int httpPort = Config.Get("httpPort") ?? 80;

            // Get port for the websocket server
            int websocketPort = Config.Get("websocketPort") ?? 81;

            // Get the media detector polling interval
            int mediaPollingInterval = Config.Get("mediaPollingInterval") ?? 3000;

            // Load devices from config
            var devices = Config.Get("devices");
            if (devices is IEnumerable<JToken>)
                Devices.Device.Parse(devices as IEnumerable);

            // Init the server
            var server = new Server.ToucheeServer(httpPort, websocketPort);

            // Build plugin context
            IPluginContext pluginContext = new ToucheePluginContext(server);

            // Loads all plugins
            if (!LoadPlugins(pluginContext)) return false;

            // Kickstart WinLirc client
            var wlc = Devices.WinLirc.Client;

            // Init the library
            var library = Library.Instance;
            library.Init(server, mediaPollingInterval);

            // Start server
            if (!server.Start()) {
                Shutdown("Could not start server");
                return false;
            }

            // Show the form
            Logger.Log("Loading complete!", Logger.LogLevel.Info);
            var mainForm = new Forms.Main();
            Application.Run(mainForm);

            // Done
            return true;
        }
Example #2
0
        /// <summary>
        /// Checks and initialises all the components for the application.
        /// </summary>
        static bool Init()
        {
            bool ok;


            // Set the error level
            Logger.Level = Logger.LogLevel.Info;


            // Loads all settings
            Config = LoadConfig();
            if (Config == null)
            {
                return(false);
            }


            // Get port for the http server
            int httpPort = Config.Get("httpPort") ?? 80;

            // Get port for the websocket server
            int websocketPort = Config.Get("websocketPort") ?? 81;

            // Get the media detector polling interval
            int mediaPollingInterval = Config.Get("mediaPollingInterval") ?? 3000;


            // Load devices from config
            var devices = Config.Get("devices");

            if (devices is IEnumerable <JToken> )
            {
                Devices.Device.Parse(devices as IEnumerable);
            }

            // Init the server
            var server = new Server.ToucheeServer(httpPort, websocketPort);


            // Build plugin context
            IPluginContext pluginContext = new ToucheePluginContext(server);


            // Loads all plugins
            if (!LoadPlugins(pluginContext))
            {
                return(false);
            }


            // Kickstart WinLirc client
            var wlc = Devices.WinLirc.Client;


            // Init the library
            var library = Library.Instance;

            library.Init(server, mediaPollingInterval);


            // Start server
            if (!server.Start())
            {
                Shutdown("Could not start server");
                return(false);
            }


            // Show the form
            Logger.Log("Loading complete!", Logger.LogLevel.Info);
            var mainForm = new Forms.Main();

            Application.Run(mainForm);


            // Done
            return(true);
        }