Example #1
0
        public void Engine_AddLibrary_AudioSwitcher()
        {
            var engine = new ScriptEngine();
            var asLib  = engine.AddAudioSwitcherLibrary(GetAudioContext());

            Assert.Equal(true, engine.HasGlobalValue(asLib.Name));
        }
Example #2
0
        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());
            }

            AudioContext currentContext;

            if (IsDebug)
            {
                currentContext = new IsolatedAudioContext();
            }
            else
            {
                currentContext = new SystemAudioContext();
            }

            var engine = new ScriptEngine();

            engine.AddCoreLibrary();
            engine.AddAudioSwitcherLibrary(currentContext);

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

            try
            {
                engine.Evaluate(new FileScriptSource(fName));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }

            return(0);
        }
Example #3
0
        public void AudioSwitcher_getAudioDevices_Recording()
        {
            var engine = new ScriptEngine();

            engine.AddAudioSwitcherLibrary(GetAudioContext());

            Assert.DoesNotThrow(() => engine.Execute("AudioSwitcher.getAudioDevices(2)"));
        }
Example #4
0
        public void Engine_RemoveLibrary_AudioSwitcher()
        {
            var engine = new ScriptEngine();
            var asLib  = engine.AddAudioSwitcherLibrary(GetAudioContext());

            engine.RemoveLibrary(asLib);

            Assert.Equal(engine.GetGlobalValue(asLib.Name), Undefined.Value);
        }
Example #5
0
        public void AudioSwitcher_AudioDevice_getFlags()
        {
            var engine = new ScriptEngine();

            engine.AddAudioSwitcherLibrary(GetAudioContext());

            const string js = @"AudioSwitcher.getAudioDevices()[0].flags";

            //unmutes
            Assert.DoesNotThrow(() => engine.Execute(js));
        }
Example #6
0
        public void AudioSwitcher_AudioDevice_getVolume()
        {
            var engine = new ScriptEngine();

            engine.AddAudioSwitcherLibrary(GetAudioContext());

            const string js = @"AudioSwitcher.getAudioDevices()[0].volume()";

            //don't care what it retuns, just that it exists
            Assert.DoesNotThrow(() => engine.Execute(js));
        }
Example #7
0
        public void AudioSwitcher_AudioDevice_setMute_false()
        {
            var engine = new ScriptEngine();

            engine.AddAudioSwitcherLibrary(GetAudioContext());

            const string js = @"AudioSwitcher.getAudioDevices()[0].mute(false)";

            //unmutes
            Assert.Equal(false, engine.Evaluate <bool>(js));
        }
Example #8
0
        public void AudioSwitcher_AudioDevice_Exists()
        {
            var engine = new ScriptEngine();

            engine.AddAudioSwitcherLibrary(GetAudioContext());

            const string js = @"AudioSwitcher.getAudioDevices()[0];";

            Assert.DoesNotThrow(() => engine.Execute(js));
            Assert.NotEqual(null, engine.Evaluate <JavaScriptAudioDevice>(js));
            Assert.IsType <JavaScriptAudioDevice>(engine.Evaluate <JavaScriptAudioDevice>(js));
        }
Example #9
0
        public void AudioSwitcher_AudioDevice_toggleMute()
        {
            var engine = new ScriptEngine();

            engine.AddAudioSwitcherLibrary(GetAudioContext());

            const string js = @"AudioSwitcher.getAudioDevices()[0].toggleMute()";

            //Toggles the mute and tests non equality of state
            var isMuted = engine.Evaluate <bool>(js);

            Assert.NotEqual(isMuted, engine.Evaluate <bool>(js));
        }
Example #10
0
        public void AudioSwitcher_AudioDevice_setVolume()
        {
            var engine = new ScriptEngine();

            engine.AddAudioSwitcherLibrary(GetAudioContext());

            const string setTo10       = @"AudioSwitcher.getAudioDevices()[0].volume(10)";
            const string getVolume     = @"AudioSwitcher.getAudioDevices()[0].volume()";
            var          orignalVol    = engine.Evaluate <int>(getVolume);
            string       setToOriginal = @"AudioSwitcher.getAudioDevices()[0].volume(" + orignalVol + ")";

            //unmutes
            Assert.Equal(10, engine.Evaluate <int>(setTo10));
            Assert.Equal(10, engine.Evaluate <int>(getVolume));
            Assert.Equal(orignalVol, engine.Evaluate <int>(setToOriginal));
        }
Example #11
0
        public void AudioSwitcher_getAudioDeviceByName_Recording_Flags()
        {
            var engine = new ScriptEngine();

            engine.AddAudioSwitcherLibrary(GetAudioContext());

            const string js = @"AudioSwitcher.getAudioDevice(AudioSwitcher.getAudioDevices(2)[0].name, 2);";

            Assert.DoesNotThrow(() => engine.Execute(js));
            var audioDevice         = engine.Evaluate <JavaScriptAudioDevice>("AudioSwitcher.getAudioDevices(2)[0]");
            var resolvedAudioDevice = engine.Evaluate <JavaScriptAudioDevice>(js);

            Assert.NotEqual(null, resolvedAudioDevice);
            Assert.Equal(audioDevice.ID, resolvedAudioDevice.ID);
            Assert.IsType <JavaScriptAudioDevice>(resolvedAudioDevice);
        }