41 #if !defined(__CAAudioBufferList_h__)
42 #define __CAAudioBufferList_h__
49 #if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)
50 #include <CoreAudio/CoreAudioTypes.h>
52 #include <CoreAudioTypes.h>
59 typedef AudioBufferList* AudioBufferListPtr;
65 struct CAAudioBufferList
70 static AudioBufferList* Create(UInt32 inNumberBuffers);
71 static void Destroy(AudioBufferList* inBufferList);
72 static UInt32 CalculateByteSize(UInt32 inNumberBuffers);
76 static UInt32 GetTotalNumberChannels(
const AudioBufferList& inBufferList);
77 static bool GetBufferForChannel(
const AudioBufferList& inBufferList, UInt32 inChannel, UInt32& outBufferNumber, UInt32& outBufferChannel);
78 static void Clear(AudioBufferList& outBufferList);
79 static void Copy(
const AudioBufferList& inSource, UInt32 inStartingSourceChannel, AudioBufferList& outDestination, UInt32 inStartingDestinationChannel);
80 static void CopyChannel(
const AudioBuffer& inSource, UInt32 inSourceChannel, AudioBuffer& outDestination, UInt32 inDestinationChannel);
81 static void Sum(
const AudioBufferList& inSourceBufferList, AudioBufferList& ioSummedBufferList);
82 static bool HasData(AudioBufferList& inBufferList);
84 static void PrintToLog(
const AudioBufferList& inBufferList);
89 static AudioBufferList sEmptyBufferList;