using System; using System.Runtime.InteropServices; namespace Susurrus.XAudio2 { /// /// The XAUDIO2_BUFFER that hands a source voice a run of samples to play. /// // xaudio2.h packs every struct to one byte, so the trailing pointer isn't aligned on x64. [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct XAudio2Buffer { public const uint EndOfStream = 0x0040; /// /// The loop count that repeats until the voice is stopped. /// public const uint LoopInfinite = 255; public uint Flags; public uint AudioBytes; public IntPtr AudioData; public uint PlayBegin; public uint PlayLength; public uint LoopBegin; public uint LoopLength; public uint LoopCount; public IntPtr Context; } }