///<summary> /// Return an array of strings which are the driver names for the "microphone" devices. ///</summary> public string[] GetAllMicrophoneDevices(FMOD.System fmod) { FMOD.RESULT result; int numSoundSources = 0; StringBuilder drivername = new StringBuilder(256); // result = system.setDriver(selected); // ERRCHECK(result); // Get Record drivers result = fmod.getRecordNumDrivers(ref numSoundSources); CheckRetCode(result); string[] soundSourceNames = new string[numSoundSources]; for (int count = 0; count < numSoundSources; count++) { FMOD.GUID guid = new FMOD.GUID(); result = fmod.getRecordDriverInfo(count, drivername, drivername.Capacity, ref guid); // result = fmod.getRecordDriverName(count, drivername, drivername.Capacity); CheckRetCode(result); soundSourceNames[count] = drivername.ToString(); } return(soundSourceNames); }
// ======================================================================================================================================== #region User support /// <summary> /// Enumerates available audio inputs in the system and returns their names. /// </summary> /// <returns></returns> public List <string> AvailableInputs() { List <string> availableDriversNames = new List <string>(); /* * Enumerate record devices */ int numAllDrivers = 0; int numConnectedDrivers = 0; result = system.getRecordNumDrivers(out numAllDrivers, out numConnectedDrivers); ERRCHECK(result, "system.getRecordNumDrivers"); for (int i = 0; i < numConnectedDrivers; ++i) { int recChannels = 0; int recRate = 0; int namelen = 255; System.Text.StringBuilder name = new System.Text.StringBuilder(namelen); System.Guid guid; FMOD.SPEAKERMODE speakermode; FMOD.DRIVER_STATE driverstate; result = system.getRecordDriverInfo(i, name, namelen, out guid, out recRate, out speakermode, out recChannels, out driverstate); ERRCHECK(result, "system.getRecordDriverInfo"); var description = string.Format("{0} rate: {1} speaker mode: {2} channels: {3}", name, recRate, speakermode, recChannels); availableDriversNames.Add(description); LOG(LogLevel.DEBUG, "{0}{1}guid: {2}{3}systemrate: {4}{5}speaker mode: {6}{7}channels: {8}{9}state: {10}" , name , System.Environment.NewLine , guid , System.Environment.NewLine , recRate , System.Environment.NewLine , speakermode , System.Environment.NewLine , recChannels , System.Environment.NewLine , driverstate ); } return(availableDriversNames); }
private void comboBoxOutput_SelectedIndexChanged(object sender, System.EventArgs e) { FMOD.RESULT result = FMOD.RESULT.OK; StringBuilder drivername = new StringBuilder(256); int numdrivers = 0; FMOD.GUID guid = new FMOD.GUID(); switch (comboBoxOutput.SelectedIndex) { case 0: result = system.setOutput(FMOD.OUTPUTTYPE.DSOUND); break; case 1: result = system.setOutput(FMOD.OUTPUTTYPE.WINMM); break; case 2: result = system.setOutput(FMOD.OUTPUTTYPE.ASIO); break; default: return; } ERRCHECK(result); /* * Get Record drivers */ result = system.getRecordNumDrivers(ref numdrivers); ERRCHECK(result); for (int count = 0; count < numdrivers; count++) { result = system.getRecordDriverInfo(count, drivername, drivername.Capacity, ref guid); ERRCHECK(result); comboBoxRecord.Items.Add(drivername.ToString()); } comboBoxOutput.Enabled = false; comboBoxRecord.Enabled = true; }
private void comboBoxPlayback_SelectedIndexChanged(object sender, System.EventArgs e) { FMOD.RESULT result; StringBuilder drivername = new StringBuilder(256); int numdrivers = 0; selected = comboBoxPlayback.SelectedIndex; comboBoxRecord.Enabled = true; /* * Get Record drivers */ result = system.getRecordNumDrivers(ref numdrivers); ERRCHECK(result); for (int count = 0; count < numdrivers; count++) { result = system.getRecordDriverInfo(count, drivername, drivername.Capacity, ref guid); ERRCHECK(result); comboBoxRecord.Items.Add(drivername.ToString()); } }
private void PitchDetection_Load(object sender, System.EventArgs e) { int numdrivers = 0; uint version = 0; FMOD.RESULT result; StringBuilder drivername = new StringBuilder(256); FMOD.GUID guid = new FMOD.GUID(); comboBoxOutput.Enabled = true; comboBoxPlayback.Enabled = false; comboBoxRecord.Enabled = false; /* * Global Settings */ result = FMOD.Factory.System_Create(ref system); ERRCHECK(result); result = system.getVersion(ref version); ERRCHECK(result); if (version < FMOD.VERSION.number) { MessageBox.Show("Error! You are using an old version of FMOD " + version.ToString("X") + ". This program requires " + FMOD.VERSION.number.ToString("X") + "."); Application.Exit(); } /* * Get output modes */ comboBoxOutput.Items.Add("DirectSound"); comboBoxOutput.Items.Add("Windows Multimedia WaveOut"); comboBoxOutput.Items.Add("ASIO"); /* * Get Playback drivers */ result = system.getNumDrivers(ref numdrivers); ERRCHECK(result); for (int count = 0; count < numdrivers; count++) { result = system.getDriverInfo(count, drivername, drivername.Capacity, ref guid); ERRCHECK(result); comboBoxPlayback.Items.Add(drivername.ToString()); } /* * Get Record drivers */ result = system.getRecordNumDrivers(ref numdrivers); ERRCHECK(result); for (int count = 0; count < numdrivers; count++) { result = system.getRecordDriverInfo(count, drivername, drivername.Capacity, ref guid); ERRCHECK(result); comboBoxRecord.Items.Add(drivername.ToString()); } }