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