public static PaError Pa_OpenStream( out IntPtr stream, ref PaStreamParameters?inputParameters, ref PaStreamParameters?outputParameters, double sampleRate, uint framesPerBuffer, PaStreamFlags streamFlags, PaStreamCallbackDelegate streamCallback, IntPtr userData) { IntPtr inputParametersPtr; if (inputParameters != null) { inputParametersPtr = Marshal.AllocHGlobal(Marshal.SizeOf(inputParameters.Value)); Marshal.StructureToPtr(inputParameters.Value, inputParametersPtr, true); } else { inputParametersPtr = IntPtr.Zero; } IntPtr outputParametersPtr; if (outputParameters != null) { outputParametersPtr = Marshal.AllocHGlobal(Marshal.SizeOf(outputParameters.Value)); Marshal.StructureToPtr(outputParameters.Value, outputParametersPtr, true); } else { outputParametersPtr = IntPtr.Zero; } return(Pa_OpenStream(out stream, inputParametersPtr, outputParametersPtr, sampleRate, framesPerBuffer, streamFlags, streamCallback, userData)); }
public static extern PaError Pa_OpenDefaultStream( out IntPtr stream, int numInputChannels, int numOutputChannels, uint sampleFormat, double sampleRate, uint framesPerBuffer, PaStreamCallbackDelegate streamCallback, IntPtr userData);
public static extern PaError Pa_OpenStream( out IntPtr stream, IntPtr inputParameters, ref PaStreamParameters outputParameters, double sampleRate, uint framesPerBuffer, PaStreamFlags streamFlags, PaStreamCallbackDelegate streamCallback, IntPtr userData);
public static PaError Pa_OpenStream( out IntPtr stream, ref PaStreamParameters? inputParameters, ref PaStreamParameters? outputParameters, double sampleRate, uint framesPerBuffer, PaStreamFlags streamFlags, PaStreamCallbackDelegate streamCallback, IntPtr userData) { IntPtr inputParametersPtr; if (inputParameters != null) { inputParametersPtr = Marshal.AllocHGlobal(Marshal.SizeOf(inputParameters.Value)); Marshal.StructureToPtr(inputParameters.Value, inputParametersPtr, true); } else { inputParametersPtr = IntPtr.Zero; } IntPtr outputParametersPtr; if (outputParameters != null) { outputParametersPtr = Marshal.AllocHGlobal(Marshal.SizeOf(outputParameters.Value)); Marshal.StructureToPtr(outputParameters.Value, outputParametersPtr, true); } else { outputParametersPtr = IntPtr.Zero; } return Pa_OpenStream(out stream, inputParametersPtr, outputParametersPtr, sampleRate, framesPerBuffer, streamFlags, streamCallback, userData); }