Processing Ajax...

Close Dialog


Close Dialog

Close Dialog

A recent AVG and Avast antivirus update is preventing DisplayFusion 9.9 from launching on some systems.
If you're running into this issue, please update to the latest DisplayFusion 10.0 Beta.

Change Between Multiple Audio Devices by Wildcard

Enter the partial device names on line 17 (in the audioDevices string array). When you run this function, it will switch between each device that matches the text in the array.
Minimum Version
Created By
Thomas Malloch (BFS)
Date Created
Feb 28, 2017
Date Last Modified
Feb 28, 2017

Scripted Function (Macro) Code

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)
			//if we got this far, we found it!
			//set the playback and communications device and exit the loop
		//save the currently selected index
		BFS.ScriptSettings.WriteValue(audioDeviceIndex, "" + index);