public async Task <IEnumerable <SoundDevice> > GetAllInputDevicesAsync( )
        {
            idsCache = new HashSet <string>();
            var result = new List <SoundDevice>();
            await Task.Run(() =>
            {
                MMDeviceEnumerator enumerator = new MMDeviceEnumerator();
                int waveOutDevices            = WaveOut.DeviceCount;
                Application.Current.Dispatcher.Invoke(() => { (Application.Current.MainWindow.DataContext as MainViewModel).ProgressMaxValue = waveOutDevices; });

                for (int waveOutDevice = 0; waveOutDevice < waveOutDevices; waveOutDevice++)
                {
                    WaveOutCapabilities deviceInfo = WaveOut.GetCapabilities(waveOutDevice);
                    foreach (MMDevice device in enumerator.EnumerateAudioEndPoints(DataFlow.Render, DeviceState.Active))
                    {
                        if (idsCache.Contains(device.ID))
                        {
                            continue;
                        }

                        if (device.FriendlyName.StartsWith(deviceInfo.ProductName))
                        {
                            Application.Current.Dispatcher.Invoke(() => { (Application.Current.MainWindow.DataContext as MainViewModel).ProgressValue = waveOutDevice; });
                            idsCache.Add(device.ID);
                            result.Add(new SoundDevice(device));
                        }
                    }
                }
            });

            return(result);
        }
 public WaveOutDevice(int id, WaveOutCapabilities capabilities)
 {
     this.capabilities = capabilities;
     Player            = new WavePlayerConverter(new WaveOut {
         DeviceNumber = id
     });
 }
Example #3
0
        /*****************  private methods   *******************/

        private void PlaySound()
        {
            if (oWaveOut != null)
            {
                oWaveOut.Dispose();
            }
            oWaveOut    = new WaveOut(this.Handle);
            oWaveReader = new WaveFileReader(Properties.Resources.AHOOGAx2);
            int    iHowMany = WaveOut.DeviceCount;
            string sTemp    = "";

            for (int i = 0; i < iHowMany; i++)
            {
                WaveOutCapabilities oCap = WaveOut.GetCapabilities(i);
                Debug.WriteLine(oCap.ProductName);
                sTemp = oCap.ProductName.ToLower();
                if (sTemp.Contains("speakers") && !sTemp.Contains("(usb "))
                {
                    oWaveOut.DeviceNumber = i;
                    break;
                }
            }
            oWaveOut.Init(oWaveReader);
            oWaveOut.Play();
        }
Example #4
0
        public static void GetDevices()
        {
            List <HotkeyAudioDevice> audioOutputDevicesList = new List <HotkeyAudioDevice>();

            for (int deviceId = 0; deviceId < WaveOut.DeviceCount; deviceId++)
            {
                WaveOutCapabilities capabilities = WaveOut.GetCapabilities(deviceId);
                HotkeyAudioDevice   audioDevice  = new HotkeyAudioDevice();
                audioDevice.AudioDeviceId   = deviceId;
                audioDevice.AudioDeviceName = capabilities.ProductName;
                audioOutputDevicesList.Add(audioDevice);
            }
            Instance.AudioOutputDevices = audioOutputDevicesList;

            List <HotkeyAudioDevice> audioInputDevicesList = new List <HotkeyAudioDevice>();

            for (int deviceId = 0; deviceId < WaveIn.DeviceCount; deviceId++)
            {
                WaveInCapabilities capabilities = WaveIn.GetCapabilities(deviceId);
                HotkeyAudioDevice  audioDevice  = new HotkeyAudioDevice();
                audioDevice.AudioDeviceId   = deviceId;
                audioDevice.AudioDeviceName = capabilities.ProductName;
                audioInputDevicesList.Add(audioDevice);
            }
            Instance.AudioInputDevices = audioInputDevicesList;
        }
Example #5
0
        async void Start()
        {
            ItemList = null;
            Bs_1     = false;
            Bs_2     = true;

            /*// First get the device selector chosen by the UI.
             * DeviceInfo dv = Index;
             *//*var dev = await DeviceInformation.FindAllAsync();*//*
             * DeviceInformationCollection dev = null;
             * if (null == dv.Selection)
             * {
             *  dev = await DeviceInformation.FindAllAsync(dv.DeviceClassSelector);
             * }
             * else if(dv.Kind == DeviceInformationKind.Unknown)
             * {
             *  dev = await DeviceInformation.FindAllAsync(dv.Selection, null);
             * }
             * else
             * {
             *  dev = await DeviceInformation.FindAllAsync(dv.Selection, null, dv.Kind);
             * }
             * Output(dev);*/
            WaveOutCapabilities list = new WaveOutCapabilities();

            Debug.WriteLine(list.ProductName);
        }
Example #6
0
        public AudioManager()
        {
            // set up output devices
            List <SoundDevice> outDevices = new List <SoundDevice>();

            for (int i = -1; i < WaveOut.DeviceCount; i++)
            {
                WaveOutCapabilities device = WaveOut.GetCapabilities(i);
                Console.WriteLine("{0} | {1}", i, device.ProductName);
                outDevices.Add(new SoundDevice(device.ProductName, i));
            }
            OutDevices = outDevices.AsReadOnly();

            // set up input devices
            List <SoundDevice> inDevices = new List <SoundDevice>();

            for (int i = -1; i < WaveIn.DeviceCount; i++)
            {
                WaveInCapabilities device = WaveIn.GetCapabilities(i);
                Console.WriteLine("{0} | {1}", i, device.ProductName);
                inDevices.Add(new SoundDevice(device.ProductName, i));
            }
            InDevices = inDevices.AsReadOnly();

            Instance = this;
        }
Example #7
0
        } // private class ListItem

        /**
         * Methods
         */
        /// <summary>
        /// Initializes a new instance of the <see cref="ConfigureAudioDevice"/> class.
        /// </summary>
        public ConfigureAudioDevice()
        {
            InitializeComponent();

            this.WaveInDevice       = Properties.Settings.Default.InputDevice;
            this.WaveOutDevice      = Properties.Settings.Default.OutputDevice;
            this.BufferMilliseconds = Properties.Settings.Default.Buffer;

            int waveInDevices = WaveIn.DeviceCount;

            for (int waveInDevice = 0; waveInDevice < waveInDevices; waveInDevice++)
            {
                WaveInCapabilities deviceInfo = WaveIn.GetCapabilities(waveInDevice);
                inputDeviceComboBox.Items.Add(new ListItem(waveInDevice, deviceInfo.ProductName));
            }

            int waveOutDevices = WaveOut.DeviceCount;

            for (int waveOutDevice = 0; waveOutDevice < waveOutDevices; waveOutDevice++)
            {
                WaveOutCapabilities deviceInfo = WaveOut.GetCapabilities(waveOutDevice);
                outputDeviceComboBox.Items.Add(new ListItem(waveOutDevice, deviceInfo.ProductName));
            }

            inputDeviceComboBox.SelectedIndex  = this.WaveInDevice;
            outputDeviceComboBox.SelectedIndex = this.WaveOutDevice;
            bufferTextBox.Text = this.BufferMilliseconds.ToString();

            bufferTextBox.TextChanged += BufferTextBox_TextChanged;
        }
Example #8
0
        private void Form1_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < WaveOut.DeviceCount; i++)
            {
                WaveOutCapabilities WOC = WaveOut.GetCapabilities(i);
                cbx_Devices.Items.Add(WOC.ProductName);
            }
            cbx_Devices.Text = WaveOut.GetCapabilities(0).ProductName; //Returns default device
            var langs = Voices.VoiceList.GroupBy(i => i.Lang).Select(y => y.FirstOrDefault());

            foreach (var lang in langs)
            {
                TreeNode node;
                try
                {
                    node = tvLanguages.Nodes.Add(new CultureInfo(lang.Lang.Replace("_", "-")).DisplayName);
                }
                catch (Exception)
                {
                    //Wine Workaround
                    node = tvLanguages.Nodes.Add(lang.Lang);
                }

                foreach (var v in Voices.VoiceList.Where(n => n.Lang == lang.Lang).ToArray())
                {
                    node.Nodes.Add(v.Name);
                }
            }
        }
Example #9
0
        public WaveOutMixingProvider(int devNum)
        {
            _devNum = devNum;
            WaveOutCapabilities devCaps = WaveOut.GetCapabilities(devNum);

            _numChannels = devCaps.Channels;
            _providers.Clear();
        }
 public void getDeviceList(userEntry commandUser, string argumentString)
 {
     for (int i = 0; i < WaveOut.DeviceCount; i++)
     {
         WaveOutCapabilities curDevice = WaveOut.GetCapabilities(i);
         m_BotBrain.sendDefaultChannelMessage(string.Format(m_BotBrain.localizer.getString("soundDeviceListEntry"), i, curDevice.ProductName));
     }
 }
Example #11
0
 // Fill in the available output sources.
 private void fillPlayback()
 {
     for (int i = 0; i < WaveOut.DeviceCount; i++)
     {
         WaveOutCapabilities WOC = WaveOut.GetCapabilities(i);
         playbackDrop.Items.Insert(i, WOC.ProductName);
     }
 }
Example #12
0
        /// <summary>
        /// Retrieves the capabilities of a waveOut device
        /// </summary>
        /// <param name="devNumber">Device to test</param>
        /// <returns>The WaveOut device capabilities</returns>
        public static WaveOutCapabilities GetCapabilities(int devNumber)
        {
            var caps       = new WaveOutCapabilities();
            int structSize = Marshal.SizeOf(caps);

            MmException.Try(WaveInterop.waveOutGetDevCaps((IntPtr)devNumber, out caps, structSize), "waveOutGetDevCaps");
            return(caps);
        }
        /// <summary>
        ///     Retrieves the output device.
        /// </summary>
        /// <param name="index">The index of the device.</param>
        /// <returns>The output device capabilities.</returns>
        public static WaveOutCapabilities GetOutputDevice(int index)
        {
            var caps       = new WaveOutCapabilities();
            var structSize = Marshal.SizeOf(caps);

            MmException.Try(WaveInterop.waveOutGetDevCaps((IntPtr)index, out caps, structSize), "waveOutGetDevCaps");
            return(caps);
        }
Example #14
0
 private void EnumlateDevices()
 {
     for (int id = 0; id < WaveOut.DeviceCount; id++)
     {
         WaveOutCapabilities capabilities = WaveOut.GetCapabilities(id);
         AudioDeviceList.Items.Add(String.Format("{0}:{1}", id, capabilities.ProductName));
     }
     AudioDeviceList.SelectedIndex = 0;
 }
Example #15
0
 public static void grabDevices()
 {
     _allDevices = new string[WaveOut.DeviceCount];
     for (int i = 0; i < allDevices.Length; ++i)
     {
         WaveOutCapabilities cap = WaveOut.GetCapabilities(i);
         _allDevices[i] = cap.ProductName;
     }
 }
 private void LlenarComboDispositivos()
 {
     for (int i = 0; i < WaveOut.DeviceCount; i++)
     {
         WaveOutCapabilities capacidades = WaveOut.GetCapabilities(i);
         cbDispositivos.Items.Add(capacidades.ProductName);
     }
     cbDispositivos.SelectedIndex = 0;
 }
Example #17
0
        private void StartStopSineWave()
        {
            if (waveOut == null)
            {
                button1.Content = "Stop Sound";
                //string str = channelSelector.Text;
                //selectedChannels = Int32.Parse(str);
                Console.WriteLine("User Selected Channels: " + selectedChannels);
                WaveOutCapabilities outdeviceInfo = WaveOut.GetCapabilities(0);
                waveOutChannels = outdeviceInfo.Channels;
                waveOut         = new WaveOut();
                int waveOutDevices = WaveOut.DeviceCount;
                for (int i = 0; i < waveOutDevices; i++)
                {
                    outdeviceInfo = WaveOut.GetCapabilities(i);
                    Console.WriteLine("Device {0}: {1}, {2} channels",
                                      i, outdeviceInfo.ProductName, outdeviceInfo.Channels);
                }


                List <IWaveProvider> inputs = new List <IWaveProvider>();
                frequencies = new List <int>();
                centerbins  = new List <int>();
                //Foutstream = new List<StreamWriter>();
                for (int c = 0; c < selectedChannels; c++)
                {
                    inputs.Add(new SineWaveProvider32(18000 + c * 700, 0.25f, 44100, 1));
                    frequencies.Add(18000 + c * 700);
                    centerbins.Add((int)Math.Round((18000 + c * 700) / 10.768));

                    Console.WriteLine(centerbins.ElementAt(c));
                }

                var splitter = new MultiplexingWaveProvider(inputs, selectedChannels);
                try
                {
                    waveOut.Init(splitter);
                    waveOut.Play();
                }
                catch (System.ArgumentException)
                {
                    Console.WriteLine("Invalid audio channel count. Please select a lower number of audio channels");
                }
            }
            else
            {
                waveOut.Stop();
                waveOut.Dispose();
                waveOut         = null;
                button1.Content = "Generate Sound";

                frequencies.Clear();
                centerbins.Clear();
                //Foutstream.Clear();
            }
        }
 void ListaDispositivosDeSalida()
 {
     cbDispositivoSalida.Items.Clear();
     for (int i = 0; i < WaveOut.DeviceCount; i++)
     {
         WaveOutCapabilities capacidades = WaveOut.GetCapabilities(i);
         cbDispositivoSalida.Items.Add(capacidades.ProductName);
     }
     cbDispositivoSalida.SelectedIndex = 0;
 }
 void ListaDispositivosSalida()  //lo que hace esta funcion es tomar el nombre de cada dispositivo de salida y con un for los recore e imprime en el cb
 {
     cbDispositivoSalida.Items.Clear();
     for (int i = 0; i < WaveOut.DeviceCount; i++)
     {
         WaveOutCapabilities capacidades = WaveOut.GetCapabilities(i);
         cbDispositivoSalida.Items.Add(capacidades.ProductName);
     }
     cbDispositivoSalida.SelectedIndex = 0;
 }
        public string ListAudioOutputs()
        {
            for (int i = 0; i < WaveOut.DeviceCount; i++)
            {
                WaveOutCapabilities device = WaveOut.GetCapabilities(i);
                context.WriteLine(i + "\t" + device.ProductName);
            }

            return(null);
        }
Example #21
0
 private void LlenarComboSalida()
 {
     cbSalida.Items.Clear();
     for (int i = 0; i < WaveOut.DeviceCount; i++)
     {
         WaveOutCapabilities capacidades = WaveOut.GetCapabilities(i);
         cbSalida.Items.Add(capacidades.ProductName);
     }
     cbSalida.SelectedIndex = 0;
 }
Example #22
0
        // Display available Audio Devices
        public static void PrintAudioDevices()
        {
            Console.WriteLine("\nAvailable Audio Device(s):");

            for (int i = 0; i < WaveOut.DeviceCount; i++)
            {
                WaveOutCapabilities WOC = WaveOut.GetCapabilities(i);
                Console.WriteLine("   {0}={1}", i, WOC.ProductName);
            }
        }
 void ListarDispositivosSalida()
 {
     cbDispositivoSalida.Items.Clear();
     for (int i = 0; i < WaveOut.DeviceCount; i++)
     {//Guarda las caracteristicas del Disp
         WaveOutCapabilities capacidades = WaveOut.GetCapabilities(i);
         cbDispositivoSalida.Items.Add(capacidades.ProductName);
     }
     cbDispositivoSalida.SelectedIndex = 0;
 }
Example #24
0
        private void StartStopSineWave()
        {
            if (waveOut == null)
            {
                button1.Content = "Stop Sound";
                Console.WriteLine("User Selected Channels: " + selectedChannels);
                WaveOutCapabilities outdeviceInfo = WaveOut.GetCapabilities(0);
                waveOutChannels = outdeviceInfo.Channels;
                waveOut         = new WaveOut();

                int waveOutDevices = WaveOut.DeviceCount;
                for (int i = 0; i < waveOutDevices; i++)
                {
                    outdeviceInfo = WaveOut.GetCapabilities(i);
                    Console.WriteLine("Device {0}: {1}, {2} channels",
                                      i, outdeviceInfo.ProductName, outdeviceInfo.Channels);
                }

                List <IWaveProvider> inputs = new List <IWaveProvider>();
                frequencies = new List <int>();
                centerbins  = new List <int>();

                for (int c = 0; c < selectedChannels; c++)
                {
                    //Original Sine Wave generation
                    inputs.Add(new SineWaveProvider32(minFrequency + c * frequencyStep, 0.5f, 44100, 1));
                    frequencies.Add(minFrequency + c * frequencyStep);
                    centerbins.Add((int)Math.Round((minFrequency + c * frequencyStep) / 10.768));
                }

                var splitter = new MultiplexingWaveProvider(inputs, selectedChannels);
                try
                {
                    waveOut.Init(splitter);
                    waveOut.Play();
                }
                catch (System.ArgumentException)
                {
                    Console.WriteLine("Invalid audio channel count. Please select a lower number of audio channels");
                }

                //Console.WriteLine("Number of Channels: " + wOut.NumberOfBuffers);
                Console.WriteLine("Number of Channels: " + waveOut.OutputWaveFormat.Channels);
            }
            else
            {
                waveOut.Stop();
                waveOut.Dispose();
                waveOut         = null;
                button1.Content = "Start Sound";

                frequencies.Clear();
                centerbins.Clear();
            }
        }
Example #25
0
 void ListarDispositivosSalidas()
 {
     cbDispositivoSalida.Items.Clear();
     //DeviceCount regresa el numero de dispositivos de salida que tiene conectados en el dispositivo de audio
     for (int i = 0; i < WaveOut.DeviceCount; i++)
     {
         WaveOutCapabilities capacidades = WaveOut.GetCapabilities(i);
         cbDispositivoSalida.Items.Add(capacidades.ProductName);
     }
     cbDispositivoSalida.SelectedIndex = 0;
 }
Example #26
0
 void ListarDispositivosSalida()
 {
     //Elimina todos los items dentro del comboBox
     cbDispositivoSalida.Items.Clear();
     //Checa el nombre de cada dispositivo conectado y los pone en el combo box.
     for (int i = 0; i < WaveOut.DeviceCount; i++)
     {
         WaveOutCapabilities capacidades = WaveOut.GetCapabilities(i);
         cbDispositivoSalida.Items.Add(capacidades.ProductName);
     }
 }
Example #27
0
        public void Start()
        {
            if (wi != null)
            {
                return;
            }

            int IN_DEVICE_INDEX = -1;

            int waveInDevices = WaveIn.DeviceCount;

            for (int waveInDevice = 0; waveInDevice < waveInDevices; waveInDevice++)
            {
                WaveInCapabilities deviceInfo = WaveIn.GetCapabilities(waveInDevice);
                Console.WriteLine("Device {0}: {1}, {2} channels", waveInDevice, deviceInfo.ProductName, deviceInfo.Channels);
                if (deviceInfo.ProductName.Contains("VoiceMeeter"))
                {
                    IN_DEVICE_INDEX = waveInDevice;
                    break;
                }
            }

            int OUT_DEVICE_INDEX = -1;

            int waveOutDevices = WaveOut.DeviceCount;

            for (int waveOutDevice = 0; waveOutDevice < waveOutDevices; waveOutDevice++)
            {
                WaveOutCapabilities deviceInfo = WaveOut.GetCapabilities(waveOutDevice);
                Console.WriteLine("Device {0}: {1}, {2} channels", waveOutDevice, deviceInfo.ProductName, deviceInfo.Channels);
                if (deviceInfo.ProductName.Contains("VoiceMeeter" +
                                                    ""))
                {
                    OUT_DEVICE_INDEX = waveOutDevice;
                    break;
                }
            }

            // create wave input from mic
            wi = new WaveInEvent();
            wi.DeviceNumber = IN_DEVICE_INDEX;
            wi.WaveFormat   = new WaveFormat(RATE, 1);
            sampleRate      = RATE;
            Console.WriteLine("Running at a sample rate of " + sampleRate);
            wi.BufferMilliseconds = (int)((double)BUFFERSIZE / (double)RATE * 1000.0);
            wi.RecordingStopped  += waveIn_RecordingStopped;
            wi.DataAvailable     += waveIn_DataAvailable;

            bwp = new BufferedWaveProvider(wi.WaveFormat);
            bwp.BufferLength            = BUFFERSIZE * 2;
            bwp.DiscardOnBufferOverflow = true;

            wi.StartRecording();
        }
Example #28
0
        private void populateSetupComboBoxes()
        {
            //Clear it if it is not empty like on a refresh
            if (Setup_Microphone.Items.Count > 0)
            {
                Setup_Microphone.Items.Clear();
            }
            if (Setup_OutputCombined.Items.Count > 0)
            {
                Setup_OutputCombined.Items.Clear();
            }
            if (Setup_SynthesizerOnly.Items.Count > 0)
            {
                Setup_SynthesizerOnly.Items.Clear();
            }

            //Microphone
            for (int dID = 0; dID < WaveIn.DeviceCount; dID++)
            {
                WaveInCapabilities wiCap = WaveIn.GetCapabilities(dID);
                Setup_Microphone.Items.Add(wiCap.ProductName);
            }

            //Combined Output
            for (int dID = 0; dID < WaveOut.DeviceCount; dID++)
            {
                WaveOutCapabilities woCap = WaveOut.GetCapabilities(dID);
                Setup_OutputCombined.Items.Add(woCap.ProductName);
            }

            //Synth Only Output
            for (int dID = 0; dID < WaveOut.DeviceCount; dID++)
            {
                WaveOutCapabilities woCap = WaveOut.GetCapabilities(dID);
                Setup_SynthesizerOnly.Items.Add(woCap.ProductName);
            }

            //Game Selection
            Setup_Game.ItemsSource         = SourceGameManager.gamesList;
            Setup_Game.SelectedIndex       = 0;
            SourceGameManager.selectedGame = Setup_Game.SelectedItem as SourceGame;

            //Set selected
            Setup_Microphone.SelectedItem     = WaveIn.GetCapabilities(0).ProductName;
            Setup_OutputCombined.SelectedItem = WaveOut.GetCapabilities(0).ProductName;
            if (WaveOut.DeviceCount > 1)
            {
                Setup_SynthesizerOnly.SelectedItem = WaveOut.GetCapabilities(1).ProductName;
            }

            combinedOutputSelectedIndex = Setup_OutputCombined.SelectedIndex;
            loopbackOutputSelectedIndex = Setup_SynthesizerOnly.SelectedIndex;
            inputSelectedIndex          = Setup_Microphone.SelectedIndex;
        }
Example #29
0
        // ------------------------------------------
        //  AddOn life cycle
        // ------------------------------------------

        public override void Setup()
        {
            base.Setup();
            int waveOutDevices = WaveOut.DeviceCount;

            for (int waveOutDevice = 0; waveOutDevice < waveOutDevices; waveOutDevice++)
            {
                WaveOutCapabilities deviceInfo = WaveOut.GetCapabilities(waveOutDevice);
                Host.Log(this, "Device " + waveOutDevice + ": " + deviceInfo.ProductName + ", " + deviceInfo.Channels + " channels");
            }
        }
Example #30
0
 private void LlenarComboSalida()
 {
     cbSalida.Items.Clear();
     for (int i = 0; i < WaveOut.DeviceCount; i++)
     {
         //da las capacidades disponibles de un dispositivo en especifico
         WaveOutCapabilities capacidades = WaveOut.GetCapabilities(i);
         //se aƱaden al combobox los nombres
         cbSalida.Items.Add(capacidades.ProductName);
     }
     cbSalida.SelectedIndex = 0;
 }
 public WaveOutDevice(int id, WaveOutCapabilities capabilities)
 {
     this.capabilities = capabilities;
     Player = new WavePlayerConverter(new WaveOut { DeviceNumber = id });
 }