public void PrepareForRecording(WaveInSafeHandle waveDevice) { MmException.Try(winmm.waveInPrepareHeader(waveDevice, fHeader, Marshal.SizeOf(fHeader)), "waveInPrepareHeader"); MmException.Try(winmm.waveInAddBuffer(waveDevice, GetHeaderPointer(), Marshal.SizeOf(fHeader)), "waveInAddBuffer"); }
public void Release(WaveInSafeHandle waveInDevice) { MmException.Try(winmm.waveInUnprepareHeader(waveInDevice, fHeader, Marshal.SizeOf(fHeader)), "waveUnprepareHeader"); }
public static extern MMSYSERROR waveInClose(WaveInSafeHandle hwi);
public MediaSampleRecording(WaveInSafeHandle deviceHandle, int bufferSize) :base(bufferSize) { PrepareForRecording(deviceHandle); }
public static extern int waveInUnprepareHeader(WaveInSafeHandle hwi, [In, Out, MarshalAs(UnmanagedType.LPStruct)] WAVEHDR pwh, int cbwh);
public static extern int waveInAddBuffer(WaveInSafeHandle hwi, IntPtr pwh, int cbwh);
public static extern int waveInStop(WaveInSafeHandle hwi);
public static extern int waveInReset(WaveInSafeHandle hwi);
public static extern int waveInMessage(WaveInSafeHandle hwi, int uMsg, IntPtr dw1, IntPtr dw2);
public static extern int waveInGetPosition(WaveInSafeHandle hwi, ref MMTIME pmmt, int cbmmt);
public static extern int waveInGetID(WaveInSafeHandle hwi, out int puDeviceID);