public void Engine_AddLibrary_AudioSwitcher()
 {
     using (var engine = new JsEngine())
     {
         engine.AddAudioSwitcherLibrary(GetAudioController());
         engine.Execute("AudioSwitcher = lib('AudioSwitcher');");
         Assert.Equal(true, engine.InternalEngine.HasGlobalValue("AudioSwitcher"));
     }
 }
 public void AudioSwitcher_getAudioDevices_All()
 {
     using (var engine = new JsEngine())
     {
         engine.AddAudioSwitcherLibrary(GetAudioController());
         engine.Execute("AudioSwitcher = lib('AudioSwitcher');");
         engine.Execute("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.ALL)");
         Assert.Equal(4, engine.Evaluate <int>("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.ALL).length").Value);
     }
 }
 public void AudioSwitcher_getAudioDevices_Capture()
 {
     using (var engine = new JsEngine())
     {
         engine.AddAudioSwitcherLibrary(GetAudioController());
         engine.Execute("AudioSwitcher = lib('AudioSwitcher');");
         Assert.DoesNotThrow(() => engine.Execute("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.CAPTURE)"));
         Assert.Equal(2, engine.Evaluate <int>("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.CAPTURE).length").Value);
     }
 }
 public void AudioSwitcher_getAudioDevices_Capture_IsCapture_Enum()
 {
     using (var engine = new JsEngine())
     {
         engine.AddAudioSwitcherLibrary(GetAudioController());
         engine.Execute("AudioSwitcher = lib('AudioSwitcher');");
         var device  = engine.Evaluate <JavaScriptAudioDevice>("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.CAPTURE)[0]").Value;
         var devices = engine.Evaluate <IEnumerable <JavaScriptAudioDevice> >("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.CAPTURE)").Value;
         Assert.True(devices.All(x => x.IsCapture));
         Assert.True(device.IsCapture);
     }
 }
 public void AudioSwitcher_getAudioDevices_Playback_IsPlayback()
 {
     using (var engine = new JsEngine())
     {
         engine.AddAudioSwitcherLibrary(GetAudioController());
         engine.Execute("AudioSwitcher = lib('AudioSwitcher');");
         var device  = engine.Evaluate <JavaScriptAudioDevice>("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.PLAYBACK)[0]").Value;
         var devices = engine.Evaluate <JavaScriptAudioDevice[]>("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.PLAYBACK)").Value;
         Assert.True(devices.All(x => x.IsPlayback));
         Assert.True(device.IsPlayback);
     }
 }
        public void AudioSwitcher_AudioDevice_setMute_true()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

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

                //Sets to muted
                Assert.Equal(true, engine.Evaluate <bool>(js).Value);
            }
        }
        public void AudioSwitcher_AudioDevice_toggleMute()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

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

                //Toggles the mute and tests non equality of state
                var isMuted = engine.Evaluate <bool>(js).Value;
                Assert.NotEqual(isMuted, engine.Evaluate <bool>(js).Value);
            }
        }
        public void AudioSwitcher_AudioDevice_getFlags()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

                const string js     = @"AudioSwitcher.getAudioDevices()[0].flags";
                var          result = engine.Execute(js);
                Assert.NotNull(result);
                Assert.Null(result.ExecutionException);
                Assert.True(result.Success);
            }
        }
        public void AudioSwitcher_AudioDevice_getName()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

                const string js = @"AudioSwitcher.getAudioDevices()[0].name";
                var result = engine.Execute(js);
                Assert.NotNull(result);
                Assert.Null(result.ExecutionException);
                Assert.True(result.Success);
            }
        }
        public void AudioSwitcher_AudioDevice_getID()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

                const string    js     = @"AudioSwitcher.getAudioDevices()[0].id";
                ExecutionResult result = null;
                Assert.DoesNotThrow(() => result = engine.Execute(js));
                Assert.NotNull(result);
                Assert.Null(result.ExecutionException);
                Assert.True(result.Success);
            }
        }
        public void AudioSwitcher_AudioDevice_setDefault_Capture_Comm()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

                const string setDefault   = @"AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.CAPTURE)[0].setAsDefaultComm()";
                const string checkDefault = @"AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.CAPTURE)[0].isDefaultComm";

                engine.Execute(setDefault);

                Assert.Equal(true, engine.Evaluate <bool>(checkDefault).Value);
            }
        }
        public void AudioSwitcher_AudioDevice_getVolume()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

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

                //don't care what it returns, just that it exists
                var result = engine.Execute(js);
                Assert.NotNull(result);
                Assert.Null(result.ExecutionException);
                Assert.True(result.Success);
            }
        }
        public void AudioSwitcher_AudioDevice_setVolume()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

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

                Assert.Equal(10, engine.Evaluate <int>(setTo10).Value);
                Assert.Equal(10, engine.Evaluate <int>(getVolume).Value);
                Assert.Equal(orignalVol, engine.Evaluate <int>(setToOriginal).Value);
            }
        }
        public void AudioSwitcher_AudioDevice_Exists()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

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

                var result = engine.Execute(js);
                Assert.NotNull(result);
                Assert.Null(result.ExecutionException);
                Assert.True(result.Success);
                Assert.NotEqual(null, engine.Evaluate<JavaScriptAudioDevice>(js));
                Assert.IsType<JavaScriptAudioDevice>(engine.Evaluate<JavaScriptAudioDevice>(js).Value);
            }
        }
        public void AudioSwitcher_AudioDevice_Exists()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

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

                var result = engine.Execute(js);
                Assert.NotNull(result);
                Assert.Null(result.ExecutionException);
                Assert.True(result.Success);
                Assert.NotEqual(null, engine.Evaluate <JavaScriptAudioDevice>(js));
                Assert.IsType <JavaScriptAudioDevice>(engine.Evaluate <JavaScriptAudioDevice>(js).Value);
            }
        }
        public void AudioSwitcher_getAudioDeviceByName_Capture_Flags()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

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

                var result = engine.Execute(js);
                Assert.NotNull(result);
                Assert.Null(result.ExecutionException);
                Assert.True(result.Success);
                var audioDevice         = engine.Evaluate <JavaScriptAudioDevice>("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.CAPTURE)[0]").Value;
                var resolvedAudioDevice = engine.Evaluate <JavaScriptAudioDevice>(js).Value;

                Assert.NotEqual(null, resolvedAudioDevice);
                Assert.Equal(audioDevice.Id, resolvedAudioDevice.Id);
                Assert.IsType <JavaScriptAudioDevice>(resolvedAudioDevice);
                Assert.True(resolvedAudioDevice.IsCapture);
            }
        }
        public void AudioSwitcher_getAudioDeviceByName()
        {
            const string js = @"AudioSwitcher.getAudioDevice(AudioSwitcher.getAudioDevices()[0].name);";

            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

                ExecutionResult result = null;
                Assert.DoesNotThrow(() => result = engine.Execute(js));
                Assert.NotNull(result);
                Assert.Null(result.ExecutionException);
                Assert.True(result.Success);

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

                Assert.NotEqual(null, resolvedAudioDevice);
                Assert.Equal(audioDevice.Id, resolvedAudioDevice.Id);
                Assert.IsType <JavaScriptAudioDevice>(resolvedAudioDevice);
            }
        }
 public void Engine_AddLibrary_AudioSwitcher()
 {
     using (var engine = new JsEngine())
     {
         engine.AddAudioSwitcherLibrary(GetAudioController());
         engine.Execute("AudioSwitcher = lib('AudioSwitcher');");
         Assert.Equal(true, engine.InternalEngine.HasGlobalValue("AudioSwitcher"));
     }
 }
 public void AudioSwitcher_getAudioDevices_Playback_IsPlayback_Enum()
 {
     using (var engine = new JsEngine())
     {
         engine.AddAudioSwitcherLibrary(GetAudioController());
         engine.Execute("AudioSwitcher = lib('AudioSwitcher');");
         var device = engine.Evaluate<JavaScriptAudioDevice>("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.PLAYBACK)[0]").Value;
         var devices = engine.Evaluate<IEnumerable<JavaScriptAudioDevice>>("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.PLAYBACK)").Value;
         Assert.True(devices.All(x => x.IsPlayback));
         Assert.True(device.IsPlayback);
     }
 }
 public void AudioSwitcher_getAudioDevices_Playback()
 {
     using (var engine = new JsEngine())
     {
         engine.AddAudioSwitcherLibrary(GetAudioController());
         engine.Execute("AudioSwitcher = lib('AudioSwitcher');");
         engine.Execute("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.PLAYBACK)");
         Assert.Equal(2, engine.Evaluate<int>("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.PLAYBACK).length").Value);
     }
 }
 public void AudioSwitcher_getAudioDevices_Capture_IsCapture_List()
 {
     using (var engine = new JsEngine())
     {
         engine.AddAudioSwitcherLibrary(GetAudioController());
         engine.Execute("AudioSwitcher = lib('AudioSwitcher');");
         var device = engine.Evaluate<JavaScriptAudioDevice>("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.CAPTURE)[0]").Value;
         var devices = engine.Evaluate<List<JavaScriptAudioDevice>>("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.CAPTURE)").Value;
         Assert.IsAssignableFrom<IEnumerable<JavaScriptAudioDevice>>(devices);
         Assert.IsAssignableFrom<IList<JavaScriptAudioDevice>>(devices);
         Assert.IsType<List<JavaScriptAudioDevice>>(devices);
         Assert.True(devices.All(x => x.IsCapture));
         Assert.True(device.IsCapture);
     }
 }
        public void AudioSwitcher_getAudioDeviceByName_Playback_Flags()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

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

                var result = engine.Execute(js);
                Assert.NotNull(result);
                Assert.Null(result.ExecutionException);
                Assert.True(result.Success);
                var audioDevice = engine.Evaluate<JavaScriptAudioDevice>("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.PLAYBACK)[0]").Value;
                var resolvedAudioDevice = engine.Evaluate<JavaScriptAudioDevice>(js).Value;

                Assert.NotEqual(null, resolvedAudioDevice);
                Assert.Equal(audioDevice.Id, resolvedAudioDevice.Id);
                Assert.IsType<JavaScriptAudioDevice>(resolvedAudioDevice);
                Assert.True(resolvedAudioDevice.IsPlayback);
            }
        }
        public void AudioSwitcher_AudioDevice_toggleMute()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

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

                //Toggles the mute and tests non equality of state
                var isMuted = engine.Evaluate<bool>(js).Value;
                Assert.NotEqual(isMuted, engine.Evaluate<bool>(js).Value);
            }
        }
        public void AudioSwitcher_AudioDevice_setMute_true()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

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

                //Sets to muted
                Assert.Equal(true, engine.Evaluate<bool>(js).Value);
            }
        }
        public void AudioSwitcher_AudioDevice_setDefault_Playback_Comm()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

                const string setDefault = @"AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.PLAYBACK)[0].setAsDefaultComm()";
                const string checkDefault = @"AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.PLAYBACK)[0].isDefaultComm";

                engine.Execute(setDefault);

                Assert.Equal(true, engine.Evaluate<bool>(checkDefault).Value);
            }
        }
Esempio n. 26
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());
            }

            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);
        }
Esempio n. 27
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();
            }

            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;
        }
        public void AudioSwitcher_AudioDevice_getVolume()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

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

                //don't care what it returns, just that it exists
                var result = engine.Execute(js);
                Assert.NotNull(result);
                Assert.Null(result.ExecutionException);
                Assert.True(result.Success);
            }
        }
        public void AudioSwitcher_AudioDevice_setVolume()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

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

                Assert.Equal(10, engine.Evaluate<int>(setTo10).Value);
                Assert.Equal(10, engine.Evaluate<int>(getVolume).Value);
                Assert.Equal(orignalVol, engine.Evaluate<int>(setToOriginal).Value);
            }
        }