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 }); }
/***************** 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(); }
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; }
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); }
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; }
} // 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; }
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); } } }
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)); } }
// 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); } }
/// <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); }
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; }
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; }
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); }
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; }
// 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; }
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(); } }
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; }
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); } }
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(); }
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; }
// ------------------------------------------ // 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"); } }
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; }