public AudioGraphEventArgs(AudioUnitRenderActionFlags actionFlags, AudioTimeStamp timeStamp, int busNumber, int numberFrames, AudioBufferList data) : base(actionFlags, timeStamp, busNumber, numberFrames, data) { }
public _AudioConverterEventArgs( uint _NumberDataPackets, AudioBufferList _Data, AudioStreamPacketDescription[] _DataPacketDescription) { NumberDataPackets = _NumberDataPackets; Data = _Data; DataPacketDescription = _DataPacketDescription; }
public AudioUnitEventArgs(AudioUnitRenderActionFlags actionFlags, AudioTimeStamp timestamp, int busNumber, int frames, AudioBufferList data) { ActionFlags = actionFlags; this.TimeStamp = timestamp; BusNumber = busNumber; NumberFrames = frames; Data = data; }
public MTAudioProcessingTapError GetSourceAudio (long frames, ref AudioBufferList bufferList, out MTAudioProcessingTapFlags flags, out CMTimeRange timeRange, long framesProvided) { int outFp; return MTAudioProcessingTapGetSourceAudio (handle, (int) frames, ref bufferList, out flags, out timeRange, out outFp); }
extern static /* OSStatus */ MTAudioProcessingTapError MTAudioProcessingTapGetSourceAudio ( /* MTAudioProcessingTapRef */ IntPtr tap, int numberFrames, /* AudioBufferList* */ ref AudioBufferList bufferListInOut, out MTAudioProcessingTapFlags flagsOut, out CMTimeRange timeRangeOut, out int numberFramesOut);
static int oldRenderCallback(IntPtr inRefCon, ref AudioUnitRenderActionFlags _ioActionFlags, ref AudioTimeStamp _inTimeStamp, int _inBusNumber, int _inNumberFrames, AudioBufferList _ioData) { // getting audiounit instance var handler = GCHandle.FromIntPtr(inRefCon); var inst = (AUGraph)handler.Target; // invoke event handler with an argument if (inst.RenderCallback != null){ var args = new AudioGraphEventArgs( _ioActionFlags, _inTimeStamp, _inBusNumber, _inNumberFrames, _ioData); inst.RenderCallback(inst, args); } return 0; // noerror }
static int complexInputDataProc( IntPtr inAudioConverrter, ref uint ioNumberDataPackets, AudioBufferList ioData, ref AudioStreamPacketDescription[] outDataPacketDescription, //AudioStreamPacketDescription** IntPtr inUserData ) { // getting audiounit instance var handler = GCHandle.FromIntPtr(inUserData); var inst = (_AudioConverter)handler.Target; // evoke event handler with an argument if (inst.EncoderCallback != null) { var args = new _AudioConverterEventArgs( ioNumberDataPackets, ioData, outDataPacketDescription); inst.EncoderCallback(inst, args); } return 0; // noerror }
static extern int AudioConverterFillComplexBuffer( IntPtr inAudioConverter, AudioConverterComplexInputDataProc inInputDataProc, IntPtr inInputDataProcUserData, ref uint ioOutputDataPacketSize, AudioBufferList outOutputData, AudioStreamPacketDescription[] outPacketDescription);
public void FillBuffer(AudioBufferList data, uint numberFrames, AudioStreamPacketDescription[] packetDescs) { uint numPackets = numberFrames; int err = AudioConverterFillComplexBuffer( _audioConverter, complexInputDataProc, GCHandle.ToIntPtr(_handle), ref numPackets, data, packetDescs); if(err != 0 || numPackets == 0) { throw new InvalidOperationException(String.Format("Error code:{0}", err)); } }
static extern int ExtAudioFileWriteAsync(IntPtr inExtAudioFile, int /* UInt32 */ inNumberFrames, AudioBufferList ioData);
static extern int ExtAudioFileRead(IntPtr inExtAudioFile, ref int /* UInt32* */ ioNumberFrames, AudioBufferList ioData);
public void WriteAsync(int numberFrames, AudioBufferList data) { int err = ExtAudioFileWriteAsync(_extAudioFile, numberFrames, data); if (err != 0) { throw new ArgumentException(String.Format("Error code:{0}", err)); } }
public int Read(int numberFrames, AudioBufferList data) { if (data == null) throw new ArgumentNullException ("data"); int err = ExtAudioFileRead(_extAudioFile, ref numberFrames, data); if (err != 0) { throw new ArgumentException(String.Format("Error code:{0}", err)); } return numberFrames; }