Exemplo n.º 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;

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

            // Get port for the http server
            int httpPort;
            ok = Config.TryGetInt("httpPort", out httpPort, 80);
            if (!ok || httpPort <= 0)
                Logger.Log("Could not parse a valid value for httpPort setting. Using default: " + httpPort.ToString(), Logger.LogLevel.Warn);

            // Get port for the websocket server
            int websocketPort;
            ok = Config.TryGetInt("websocketPort", out websocketPort, 81);
            if (!ok || websocketPort <= 0)
                Logger.Log("Could not parse a valid value for websocketPort setting. Using default: " + websocketPort.ToString(), Logger.LogLevel.Warn);

            // Get the media detector polling interval
            int mediaPollingInterval;
            ok = Config.TryGetInt("mediaPollingInterval", out mediaPollingInterval, 3000);
            if (!ok || mediaPollingInterval <= 0)
                Logger.Log("Could not parse a valid value for mediaPollingInterval setting. Using default: " + mediaPollingInterval.ToString(), Logger.LogLevel.Warn);

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

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