public AudioUnitStatus PullInput (ref AudioUnitRenderActionFlags actionFlags, AudioTimeStamp timestamp, uint frameCount, int inputBusNumber, AURenderPullInputBlock pullInputBlock) { if (pullInputBlock == null) return AudioUnitStatus.NoConnection; PrepareInputBufferList (); AudioUnitStatus s = pullInputBlock (ref actionFlags, ref timestamp, frameCount, inputBusNumber, MutableAudioBufferList); return s; }
public AudioUnitStatus PullInput(ref AudioUnitRenderActionFlags actionFlags, AudioTimeStamp timestamp, uint frameCount, int inputBusNumber, AURenderPullInputBlock pullInputBlock) { if (pullInputBlock == null) { return(AudioUnitStatus.NoConnection); } PrepareInputBufferList(); AudioUnitStatus s = pullInputBlock(ref actionFlags, ref timestamp, frameCount, inputBusNumber, MutableAudioBufferList); return(s); }
public AudioUnitStatus InternalRenderBlockProc(ref AudioUnitRenderActionFlags actionFlags, ref AudioTimeStamp timestamp, uint frameCount, nint outputBusNumber, AudioBuffers outputData, AURenderEventEnumerator realtimeEventListHead, AURenderPullInputBlock pullInputBlock) { var transportStateFlags = (AUHostTransportStateFlags)0; double currentSamplePosition = 0; double cycleStartBeatPosition = 0; double cycleEndBeatPosition = 0; var callBack = TransportStateBlock; if (callBack != null) { callBack(ref transportStateFlags, ref currentSamplePosition, ref cycleStartBeatPosition, ref cycleEndBeatPosition); } var state = Kernel; var input = inputBus; var pullFlags = (AudioUnitRenderActionFlags)0; AudioUnitStatus err = input.PullInput(ref pullFlags, timestamp, frameCount, 0, pullInputBlock); if (err != AudioUnitStatus.NoError) { return(err); } AudioBuffers inAudioBufferList = input.MutableAudioBufferList; if (outputData [0].Data == IntPtr.Zero) { for (int i = 0; i < outputData.Count; i++) { outputData.SetData(i, inAudioBufferList [i].Data); } } state.SetBuffers(inAudioBufferList, outputData); state.ProcessWithEvents(timestamp, (int)frameCount, realtimeEventListHead); return(AudioUnitStatus.NoError); }
public AudioUnitStatus ProcessSignals(ref AudioUnitRenderActionFlags actionFlags, ref AudioToolbox.AudioTimeStamp timestamp, uint frameCount, nint outputBusNumber, AudioToolbox.AudioBuffers outputData, AURenderEventEnumerator realtimeEventListHead, AURenderPullInputBlock pullInputBlock) { // Do event handling and signal processing here. return(AudioUnitStatus.NoError); }