コード例 #1
0
ファイル: Program.cs プロジェクト: deeja/AudioSwitcher
        private static int Main(string[] args)
        {
            if (args.Length > 2 || args.Length < 1)
            {
                return(PrintUsage());
            }

            //Process CLI Arguments
            for (var i = 0; i < args.Length - 1; i++)
            {
                switch (args[i])
                {
                case "--debug":
                    _isDebug = true;
                    break;
                }
            }

            //Process file name
            string fName = args[args.Length - 1];

            if (!fName.EndsWith(".js"))
            {
                Console.WriteLine("Invalid input file");
                Console.WriteLine();
                return(PrintUsage());
            }

            IAudioController controller;

            if (_isDebug)
            {
                controller = new SandboxAudioController(new CoreAudioController());
            }
            else
            {
                controller = new CoreAudioController();
            }

            using (var engine = new JsEngine())
            {
                engine.AddCoreLibrary();
                engine.AddAudioSwitcherLibrary(controller);

                //Enable to log to CLI
                //engine.SetGlobalValue("console", new ConsoleOutput(engine));
                //engine.InternalEngine.SetGlobalValue("console", new FirebugConsole(engine.InternalEngine));
                engine.SetOutput(new ConsoleScriptOutput());

                try
                {
                    Console.WriteLine("Executing {0}...", fName);
                    var result = engine.Execute(new Scripting.FileScriptSource(fName));
                    if (!result.Success)
                    {
                        throw result.ExecutionException;
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }

#if DEBUG
            Console.ReadKey();
#endif

            return(0);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: cdhunt/AudioSwitcher
        private static int Main(string[] args)
        {
            if (args.Length > 2 || args.Length < 1)
                return PrintUsage();

            //Process CLI Arguments
            for (var i = 0; i < args.Length - 1; i++)
            {
                switch (args[i])
                {
                    case "--debug":
                        _isDebug = true;
                        break;
                }
            }

            //Process file name
            string fName = args[args.Length - 1];
            if (!fName.EndsWith(".js"))
            {
                Console.WriteLine("Invalid input file");
                Console.WriteLine();
                return PrintUsage();
            }

            IAudioController controller;

            if (_isDebug)
                controller = new SandboxAudioController(new CoreAudioController());
            else
                controller = new CoreAudioController();

            using (var engine = new JsEngine())
            {

                engine.AddCoreLibrary();
                engine.AddAudioSwitcherLibrary(controller);

                //Enable to log to CLI
                //engine.SetGlobalValue("console", new ConsoleOutput(engine));
                //engine.InternalEngine.SetGlobalValue("console", new FirebugConsole(engine.InternalEngine));
                engine.SetOutput(new ConsoleScriptOutput());

                try
                {
                    Console.WriteLine("Executing {0}...", fName);
                    var result = engine.Execute(new Scripting.FileScriptSource(fName));
                    if (!result.Success)
                        throw result.ExecutionException;
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }

            #if DEBUG
            Console.ReadKey();
            #endif

            return 0;
        }