protected override void ProcessRecord()
{
MMDeviceEnumerator DevEnum = new MMDeviceEnumerator();
MMDeviceCollection devices = DevEnum.EnumerateAudioEndPoints(EDataFlow.eRender, EDeviceState.DEVICE_STATE_ACTIVE);
PolicyConfigClient client = new PolicyConfigClient();
if (!string.IsNullOrEmpty(name))
{
for (int i = 0; i < devices.Count; i++)
{
if (string.Compare(devices[i].FriendlyName, name, StringComparison.CurrentCultureIgnoreCase) == 0)
{
index = i;
break;
}
}
}
if (inputObject != null)
{
for (int i = 0; i < devices.Count; i++)
{
if (devices[i].ID == inputObject.Device.ID)
{
index = i;
break;
}
}
}
client.SetDefaultEndpoint(devices[index].ID, ERole.eCommunications);
client.SetDefaultEndpoint(devices[index].ID, ERole.eMultimedia);
WriteObject(new AudioDevice(index, devices[index]));
}