MoonWorks/src/Audio/MasteringVoice.cs

47 lines
817 B
C#

using System;
namespace MoonWorks.Audio
{
public class MasteringVoice : Voice
{
// mastering voice can't pan
public override float Pan => 0;
internal static bool Create(
AudioDevice device,
uint deviceIndex,
out MasteringVoice masteringVoice
) {
var result = FAudio.FAudio_CreateMasteringVoice(
device.Handle,
out var handle,
FAudio.FAUDIO_DEFAULT_CHANNELS,
FAudio.FAUDIO_DEFAULT_SAMPLERATE,
0,
deviceIndex,
IntPtr.Zero
);
if (result == 0)
{
masteringVoice = new MasteringVoice(device, handle);
}
else
{
Logger.LogError("Failed to create mastering voice!");
masteringVoice = null;
}
return result == 0;
}
internal MasteringVoice(
AudioDevice device,
IntPtr handle
) : base(device)
{
Handle = handle;
}
}
}