using System;
using System.Drawing;
public static class DisplayFusionFunction
{
public static void Run(IntPtr windowHandle)
{
//a string to read and write script settings
const string audioDeviceIndex = "Script_SelectSpecificAudioDevice_Index";
//read the setting in and try to convert it to an integer
int index;
if(!Int32.TryParse(BFS.ScriptSettings.ReadValue(audioDeviceIndex), out index))
index = 0;
//NOTE: add a list of the audio devices you want in this array
string[] audioDevices = {"Speakers", "Headset"};
//increment the index and use the mod operator
//to keep it in the array bounds
index = ++index % audioDevices.Length;
//search for the current index in the list of audio devices
string[] allDevices = BFS.Audio.GetPlaybackDevices();
foreach (string device in allDevices)
{
//if we didnt find it, continue to the next one
if (device.IndexOf(audioDevices[index], StringComparison.OrdinalIgnoreCase) == -1)
continue;
//if we got this far, we found it!
//set the playback and communications device and exit the loop
BFS.Audio.SetDefaultPlaybackSounds(device);
BFS.Audio.SetDefaultPlaybackCommunications(device);
break;
}
//save the currently selected index
BFS.ScriptSettings.WriteValue(audioDeviceIndex, "" + index);
}
}