public Error OpenDefaultOutputStream(int numOutputChannels, double sampleRate, uint sampleSize, out IBuffer buffer) { bps = (int)sampleSize; PaSampleFormat sampleFormat = bps switch { 8 => PaSampleFormat.paInt8, 16 => PaSampleFormat.paInt16, 24 => PaSampleFormat.paInt24, 32 => PaSampleFormat.paInt32, _ => PaSampleFormat.paCustomFormat }; if (sampleFormat == PaSampleFormat.paCustomFormat) { buffer = null; return(Error.paSampleFormatNotSupported); } buffer = outBuffer = new Buffer.Buffer(256 * numOutputChannels * bps / 8); outBuffer.SetEndOfBuffer(new BufferState { AbsolutePosition = 256 * numOutputChannels * 20 }); streamCallback = StreamCallback; channel = numOutputChannels; outBufferState.AbsolutePosition = 0; return(Pa_OpenDefaultStream(ref stream, 0, numOutputChannels, sampleFormat, sampleRate, 256, streamCallback, IntPtr.Zero)); }
private static extern int Pa_OpenStream(ref IntPtr stream, IntPtr inputParameters, IntPtr outputParameters, double sampleRate, ulong framesPerBuffer, PaStreamFlags streamFlags, PaStreamCallback streamCallback, IntPtr userData);
private static extern int Pa_OpenDefaultStream(ref IntPtr stream, int numInputChannels, int numOutputChannels, PaSampleFormat sampleFormat, double sampleRate, ulong framesPerBuffer, PaStreamCallback streamCallback, IntPtr userData);
unsafe public static extern PaError PA_OpenDefaultStream( out void *stream, int numInputChannels, int numOutputChannels, PaSampleFormat sampleFormat, double sampleRate, uint framesPerBuffer, PaStreamCallback streamCallback, int callback_id); // 0 for callback1, else callback2
unsafe public static extern PaError PA_OpenStream( out void *stream, PaStreamParameters *inputParameters, PaStreamParameters *outputParameters, double sampleRate, uint framesPerBuffer, PaStreamFlags streamFlags, PaStreamCallback streamCallback, int callback_id); // 0 for callback1, else callback2
public StreamCallbackContainer( PaStreamCallback callbackProvider, PaSampleFormat inputSampleFormat, PaSampleFormat outputSampleFormat, int numInputChannels, int numOutputChannels, object userData) { this.callbackProvider = callbackProvider; this.inputSampleFormat = inputSampleFormat; this.outputSampleFormat = outputSampleFormat; this.numInputChannels = numInputChannels; this.numOutputChannels = numOutputChannels; this.userData = userData; }
public PortAudioStream(int rate, int channels, int bufferSize, int numBuffers, GetBufferDataCallback bufferFillCallback) { if (refCount == 0) { Pa_Initialize(); refCount++; } streamCallback = new PaStreamCallback(StreamCallback); Pa_OpenDefaultStream(out stream, 0, 1, PaSampleFormat.Int16, 44100, 0, streamCallback, IntPtr.Zero); bufferFill = bufferFillCallback; }
public PaStream OpenStream( PaStreamParameters?inputParameters, PaStreamParameters?outputParameters, double sampleRate, int framesPerBuffer, PaStreamFlags streamFlags, PaStreamCallback streamCallback, object userData) { var streamCallbackContainer = new StreamCallbackContainer( streamCallback, inputParameters.HasValue ? inputParameters.Value.sampleFormat : 0, outputParameters.HasValue ? outputParameters.Value.sampleFormat : 0, inputParameters.HasValue ? inputParameters.Value.channelCount : 0, outputParameters.HasValue ? outputParameters.Value.channelCount : 0, userData); IntPtr stream; unsafe { PaStreamParameters inputParametersTemp, outputParametersTemp; IntPtr inputParametersPtr = IntPtr.Zero; if (inputParameters.HasValue) { inputParametersPtr = new IntPtr(&inputParametersTemp); Marshal.StructureToPtr <PaStreamParameters>(inputParameters.Value, inputParametersPtr, false); } IntPtr outputParametersPtr = IntPtr.Zero; if (outputParameters.HasValue) { outputParametersPtr = new IntPtr(&outputParametersTemp); Marshal.StructureToPtr <PaStreamParameters>(outputParameters.Value, outputParametersPtr, false); } PaErrorException.ThrowIfError(Pa_OpenStream( new IntPtr(&stream), inputParametersPtr, outputParametersPtr, sampleRate, (unsigned_long_t)framesPerBuffer, streamFlags, streamCallbackContainer.Callback, IntPtr.Zero)); } return(new PaStream( stream, streamCallbackContainer, inputParameters.HasValue ? inputParameters.Value.sampleFormat : 0, outputParameters.HasValue ? outputParameters.Value.sampleFormat : 0, inputParameters.HasValue ? inputParameters.Value.channelCount : 0, outputParameters.HasValue ? outputParameters.Value.channelCount : 0)); }
public PaStream OpenDefaultStream( int numInputChannels, int numOutputChannels, PaSampleFormat sampleFormat, double sampleRate, int framesPerBuffer, PaStreamFlags streamFlags, PaStreamCallback streamCallback, object userData) { var streamCallbackContainer = new StreamCallbackContainer( streamCallback, sampleFormat, sampleFormat, numInputChannels, numOutputChannels, userData); IntPtr stream; unsafe { PaErrorException.ThrowIfError(Pa_OpenDefaultStream( new IntPtr(&stream), numInputChannels, numOutputChannels, sampleFormat, sampleRate, (unsigned_long_t)framesPerBuffer, streamFlags, streamCallbackContainer.Callback, IntPtr.Zero)); } return(new PaStream(stream, streamCallbackContainer)); }
public static extern int Pa_OpenDefaultStream([Out] IntPtr stream, int numInputChannels, int numOutputChannels, UInt32 sampleFormat, double sampleRate, UInt32 framesPerBuffer, PaStreamCallback streamCallback, IntPtr userData);
public static extern int Pa_OpenStream(out IntPtr stream, PaStreamParameters inputParameters, PaStreamParameters outputParameters, Double sampleRate, UInt32 framesPerBuffer, UInt32 streamFlags, PaStreamCallback streamCallback, IntPtr userData);
public static extern PaError Pa_OpenDefaultStream(out IntPtr stream, int numInputChannels, int numOutputChannels, PaSampleFormat sampleFormat, double sampleRate, uint framesPerBuffer, PaStreamCallback streamCallback, IntPtr userData);
unsafe public static extern PaError PA_OpenStream ( out void *stream, PaStreamParameters *inputParameters, PaStreamParameters *outputParameters, double sampleRate, uint framesPerBuffer, PaStreamFlags streamFlags, PaStreamCallback streamCallback, int callback_id); // 0 for callback1, else callback2
public static unsafe extern PaError PA_OpenStream( out void* stream, PaStreamParameters* inputParameters, PaStreamParameters* outputParameters, double sampleRate, uint framesPerBuffer, PaStreamFlags streamFlags, PaStreamCallback streamCallback, int user_data, int callback_id);
PaError Pa_OpenDefaultStream(out IntPtr /*PaStream ** */ stream, int numInputChannels, int numOutputChannels, [MarshalAs(UnmanagedType.SysUInt)] IntPtr /*PaSampleFormat*/ sampleFormat, double sampleRate, [MarshalAs(UnmanagedType.SysUInt)] /*unsigned long*/ IntPtr framesPerBuffer, PaStreamCallback streamCallback, IntPtr /*void **/ userData) ;
PaError Pa_OpenStream(out IntPtr /*PaStream ** */ stream, /*const*/ IntPtr /*PaStreamParameters * */ inputParameters, /*const*/ IntPtr /*PaStreamParameters * */ outputParameters, double sampleRate, [MarshalAs(UnmanagedType.SysUInt)] /*unsigned long*/ uint framesPerBuffer, [MarshalAs(UnmanagedType.SysUInt)] PaStreamFlags streamFlags, PaStreamCallback streamCallback, IntPtr /*void **/ userData) ;