Example #1
0
File: Program.cs Project: XCVG/XSMP
        static void Main(string[] args)
        {
            Console.WriteLine($"Starting {ProductNameString}");

            AppDomain.CurrentDomain.ProcessExit        += new EventHandler(HandleExternalExit);
            AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(HandleUnhandledException);

            //portable mode handling
            CheckPortableMode(args);

            SetupFolders();
            LoadUserConfig();

            //port override arg handling
            CheckPortOverride(args);

            MediaDB       mediaDatabase = new MediaDB();
            APIController apiController = new APIController(new APISurface(mediaDatabase));
            RESTServer    restServer    = new RESTServer(apiController);

            IsRunning = true;

            //argument commands handling
            if (args.Contains("-rebuild"))
            {
                mediaDatabase.StartRebuild();
            }

            if (args.Contains("-flushcache"))
            {
                MediaTranscoder.FlushCache();
            }

            while (IsRunning)
            {
                Thread.Sleep(10);
                //TODO poll components?
            }

            Console.WriteLine("Ending XSMP");

            restServer.Dispose();
            mediaDatabase.Dispose();
        }