private void Create(DirectSoundBase directSound, DSBufferDescription bufferDesc) { if ((bufferDesc.dwFlags & DSBufferCapsFlags.DSBCAPS_PRIMARYBUFFER) == DSBufferCapsFlags.DSBCAPS_PRIMARYBUFFER) { throw new ArgumentException("Don t set the PRIMARYBUFFER flag for creating a secondarybuffer.", "bufferDesc"); } _basePtr = directSound.CreateSoundBuffer(bufferDesc, IntPtr.Zero).ToPointer(); }
public DirectSoundPrimaryBuffer(DirectSoundBase directSound) { if (directSound == null) { throw new ArgumentNullException("directSound"); } DSBufferDescription primaryBufferDesc = new DSBufferDescription() { dwBufferBytes = 0, dwFlags = DSBufferCapsFlags.DSBCAPS_PRIMARYBUFFER | DSBufferCapsFlags.DSBCAPS_CTRLVOLUME | DSBufferCapsFlags.DSBCAPS_CTRL3D, dwReserved = 0, lpwfxFormat = IntPtr.Zero, guid3DAlgorithm = Guid.Empty }; primaryBufferDesc.dwSize = Marshal.SizeOf(primaryBufferDesc); _basePtr = directSound.CreateSoundBuffer(primaryBufferDesc, IntPtr.Zero).ToPointer(); }