2023-07-31 08:16:19 +00:00
|
|
|
using System;
|
|
|
|
|
|
|
|
namespace MoonWorks.Audio
|
|
|
|
{
|
2023-08-03 01:26:27 +00:00
|
|
|
/// <summary>
|
|
|
|
/// SourceVoices can send audio to a SubmixVoice for convenient effects processing.
|
|
|
|
/// </summary>
|
2023-08-02 01:13:17 +00:00
|
|
|
public class SubmixVoice : Voice
|
2023-07-31 08:16:19 +00:00
|
|
|
{
|
|
|
|
public SubmixVoice(
|
|
|
|
AudioDevice device,
|
2023-08-01 18:22:49 +00:00
|
|
|
uint sourceChannelCount,
|
2023-07-31 08:16:19 +00:00
|
|
|
uint sampleRate
|
2023-08-01 18:22:49 +00:00
|
|
|
) : base(device, sourceChannelCount, device.DeviceDetails.OutputFormat.Format.nChannels)
|
2023-07-31 08:16:19 +00:00
|
|
|
{
|
|
|
|
FAudio.FAudio_CreateSubmixVoice(
|
|
|
|
device.Handle,
|
2023-08-01 18:22:49 +00:00
|
|
|
out handle,
|
|
|
|
sourceChannelCount,
|
2023-07-31 08:16:19 +00:00
|
|
|
sampleRate,
|
2023-08-02 21:39:42 +00:00
|
|
|
FAudio.FAUDIO_VOICE_USEFILTER,
|
2023-07-31 08:16:19 +00:00
|
|
|
0,
|
2023-08-01 18:22:49 +00:00
|
|
|
IntPtr.Zero, // default sends to mastering voice
|
2023-07-31 08:16:19 +00:00
|
|
|
IntPtr.Zero
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|