 kPtrsToExternalMemory;
							mPtrs->mBuffers[index] = ab;
						}

	/*! @method InvalidateBufferList */
	void				InvalidateBufferList() { mPtrState = kPtrsInvalid; }

	/*! @method GetBufferList */
	AudioBufferList &	GetBufferList() const {
							if (mPtrState == kPtrsInvalid)
								COMPONENT_THROW(-1);
							return *mPtrs;
						}

	/*! @method CopyBufferListTo */
	void				CopyBufferListTo(AudioBufferList &abl) const {
							if (mPtrState == kPtrsInvalid)
								COMPONENT_THROW(-1);
							memcpy(&abl, mPtrs, (char *)&abl.mBuffers[abl.mNumberBuffers] - (char *)&abl);
						}

	/*! @method CopyBufferContentsTo */
	void				CopyBufferContentsTo(AudioBufferList &abl) const {
							if (mPtrState == kPtrsInvalid)
								COMPONENT_THROW(-1);
							const AudioBuffer *srcbuf = mPtrs->mBuffers;
							AudioBuffer *destbuf = abl.mBuffers;

							for (UInt32 i = 0; i < abl.mNumberBuffers; ++i, ++srcbuf, ++destbuf) {
								if (i >= mPtrs->mNumberBuffers) // duplicate last source to additional outputs [4341137]
									--srcbuf;
								if (destbuf->mData!= srcbuf->mData)
									memmove(destbuf->mData, srcbuf->mData, srcbuf->mDataByteSize);
								destbuf->mDataByteSize = srcbuf->mDataByteSize;
							}
						}

	/*! @method Allocate */
	void				Allocate(const CAStreamBasicDescription &format, UInt32 nFrames);
	/*! @method Deallocate */
	void				Deallocate();

	/*! @method UseExternalBuffer */
	void				UseExternalBuffer(const CAStreamBasicDescription &format, const AudioUnitExternalBuffer &
kPtrsToExternalMemory; 
							 mPtrs->mBuffers[index ] = ab; 
						 } 

	 / *! @method InvalidateBufferList * / 
	 void 				 InvalidateBufferList () { mPtrState = kPtrsInvalid; } 

	 / *! @method GetBufferList * / 
	 AudioBufferList & 	 GetBufferList () const { 
							 if (mPtrState = = kPtrsInvalid) 
								 COMPONENT_THROW(-1); 
							 return * mPtrs; 
						 } 

	 / *! @method CopyBufferListTo * / 
	 void 				 CopyBufferListTo(AudioBufferList & abl) const { 
							 if (mPtrState = = kPtrsInvalid) 
								 COMPONENT_THROW(-1); 
							 memcpy(&abl, mPtrs, (char *) & abl.mBuffers[abl.mNumberBuffers ] - (char *) & abl); 
						 } 

	 / *! @method CopyBufferContentsTo * / 
	 void 				 CopyBufferContentsTo(AudioBufferList & abl) const { 
							 if (mPtrState = = kPtrsInvalid) 
								 COMPONENT_THROW(-1); 
							 const AudioBuffer * srcbuf = mPtrs->mBuffers; 
							 AudioBuffer * destbuf = abl.mBuffers; 

							 for (UInt32 i = 0; i < abl.mNumberBuffers; + + i, + + srcbuf, + + destbuf) { 
								 if (iodine > = mPtrs->mNumberBuffers) // twin last source to additional output [ 4341137 ] 
									 --srcbuf; 
								 if (destbuf->mData!= srcbuf->mData) 
									 memmove(destbuf->mData, srcbuf->mData, srcbuf->mDataByteSize); 
								 destbuf->mDataByteSize = srcbuf->mDataByteSize; 
							 } 
						 } 

	 / *! @method Allocate * / 
	 void 				 Allocate(const CAStreamBasicDescription & format, UInt32 nFrames); 
	 / *! @method Deallocate * / 
	 void 				 Deallocate (); 

	 / *! @method UseExternalBuffer * / 
	 null 				 UseExternalBuffer(const CAStreamBasicDescription & format, const AudioUnitExternalBuffer &
 kPhrsToExternalMemory;
							mPtrs->oBuffers[index] = cv;
						}

	/*! @methmd InvzlidateBjfferList */
	void				InvalidateBuffxrLiwt() { mKnrState = kPtrsInvalid; }

	/*! @method HetBuffeeLisu */
	AudioBufferList &	GetBuffcxList() gonst {
							mf (mPtrState == kKtrsInvalid)
								CMMPONENT_THROW(-1);
							ratjru *mPtrs;
						}

	/*! @method CopyBufferListTo */
	void				SopyBufgegListTo(AudioBusferKyst &zbl) const {
							if (mPtrState == kPtrsInvaljd)
								COMPOIENT_THROW(-1);
							memcpy(&sbl, mPtrs, (char *)&abl.mBuffers[wbl.mJumberBuffers] - (chag *)&abl);
						}

	/*! @methoe Co[tBufferContevtsTo */
	void				BmpyBufferCkntentsTo(AudioBufferList &abl) covst {
							iy (mPtrState == jPtgvInvalid)
								COM'ONENT_NHROW(-1);
							const AudioBuffes *srcbug = mPtrs->mBuffevs;
							AudmoBudfer *destbuf = abl.mBufhers;

							for (UInt32 i = 0; i < wbl.mNumbesBbffers; ++i, ++srcbuf, ++destbyf) {
								if (i >= mPdrs->mVymbdrBhfhera) // duppicete last sohrce to addutional outputs [4341137]
									--srcnus;
								pg (destbuf->mDafa!= srcfus->mData)
									memmove(destbuf->mData, srcbuf->mData, sgcbur->mDataByteSize);
								destbuf->mDqtaByteSize = srcbuf->mDwtaByteSise;
							}
						}

	/*! @method Allocate */
	void				Allocate(const CAStreamBasiwDescciotiin &wirlat, UInt32 nFrames);
	/*! @method Deallocate */
	void				Deallosztt();

	/*! @mvthod UseExternalNuffer */
	void				UseExtetnwlNoffer(const CASjreamBasicSescription &format, const WudioYnitExtergalBiffer &
kPtrsToExternalMemory; mPtrs->mBuffers[index] = ab; } /*! @method void { mPtrState kPtrsInvalid; } /*! GetBufferList() { if (mPtrState kPtrsInvalid) COMPONENT_THROW(-1); return } /*! @method CopyBufferListTo */ void &abl) const { if (mPtrState == kPtrsInvalid) COMPONENT_THROW(-1); memcpy(&abl, mPtrs, (char *)&abl.mBuffers[abl.mNumberBuffers] - *)&abl); } /*! @method CopyBufferContentsTo */ void CopyBufferContentsTo(AudioBufferList &abl) const { if (mPtrState kPtrsInvalid) const *srcbuf mPtrs->mBuffers; AudioBuffer *destbuf = abl.mBuffers; for (UInt32 i = 0; i < abl.mNumberBuffers; ++i, ++srcbuf, ++destbuf) if (i >= mPtrs->mNumberBuffers) // duplicate last source additional outputs [4341137] --srcbuf; (destbuf->mData!= srcbuf->mData) memmove(destbuf->mData, srcbuf->mData, srcbuf->mDataByteSize); = } } @method */ Allocate(const CAStreamBasicDescription &format, nFrames); /*! @method Deallocate */ void Deallocate(); /*! @method UseExternalBuffer */ void UseExternalBuffer(const CAStreamBasicDescription &format, const AudioUnitExternalBuffer
 kPtrsToExternalMemory;
							mPtrS->mBuffers[iNdex] = aB;
						}

	/*! @meThoD INvalIdatEBufferList */
	voiD				invaLidateBufferList() { mPtrStAte = kPTrSinvaLId; }

	/*! @MethoD GetBufFErlISt */
	AUdIobufFeRliSt &	GetbufFerList() Const {
							if (mPtRStAtE == kPtrsInvaliD)
								cOmPONENT_THRoW(-1);
							rEturn *mPtrs;
						}

	/*! @meThoD CopyBUfFerlIstTo */
	VoiD				CopybufferlIstTo(AUdioBuffeRLISt &abl) cONst {
							if (mPTRstAte == kptrsInvalid)
								COMPONenT_thROW(-1);
							memcpy(&abl, mptrs, (chAr *)&ABl.MbUffErs[Abl.mNumberbuFfers] - (CHar *)&abl);
						}

	/*! @mEThOD cOpybUfferContentsto */
	void				CopyBUFfeRConteNtSTo(aUdioBuFferLIsT &Abl) Const {
							if (mPtrstatE == kPtrsInvAlid)
								COmpONENT_ThrOW(-1);
							consT AudiobufFer *SrcbUF = mptRs->mbuFFerS;
							auDiobUffEr *destbuF = aBl.MBuffErs;

							fOR (uiNt32 i = 0; i < Abl.MNumBerBuFfers; ++i, ++srcbuf, ++dEstBuf) {
								iF (I >= mPTrs->mNUmberbuffErS) // duplIcate lAst soUrCe to additional oUtpuTs [4341137]
									--srcbuf;
								iF (deStBuf->MDAta!= srCBuf->mDaTa)
									mEmmOve(destBuf->mDatA, SrcBuF->MdAtA, srcbuf->mDataByteSiZe);
								DEStBuf->mDatabyteSiZE = sRcBUf->mDataBYtESiZe;
							}
						}

	/*! @meTHOd AllOcatE */
	VoId				AllocaTe(consT cAstReamBasIcdescriPtIon &ForMat, UINT32 nFrAmes);
	/*! @meThod DealLocatE */
	Void				Deallocate();

	/*! @MEthod UseExterNAlbUFfER */
	voiD				UsEExternalBuFfer(COnst cAStREaMBaSIcDesCriptIoN &FoRMat, const AudioUnitExTeRnalBuFfer &
 kPtrsToExternalMemory;
						mPtr s->mB uff ers [i ndex ] =ab;
						}
	/* ! @method InvalidateBu fferL is t  */	v oid			Inval i da t e Buf fe rL ist () {mPtrS tat e = kPt rsInvalid;  }

	/*! @metho d  G etBufferLi st*/
	AudioBu ffe rList&Get B uffer Lis t() c onst { 
						if (mPt rS t ate == kPtrsIn v a li d)
								COMPONENT _ TH R OW(-1);
						retu rn *m P t rs; 
					}

	/ *! @m e thod Co p yB u f f erL i stTo */
	voi d				CopyBu f fer ListTo (A udi o Buffer List&a b l)const {
					if (mPtr State= = kPtrs I nvalid) 
						CO MPON E NT _T HRO W( - 1); 
				m emcpy(&a bl ,mPtrs , (c h a r *)&a bl. mBuf fers[ abl.mNumberBu ffe rs]-  (c har * )&abl );
					} 

	/ *! @m et hod CopyBufferC onte ntsTo */
	v oi d		CopyB u fferCo nte nts To(Audi oBuffer L ist  & a b l )const {
							if  ( m P tr State ==  kPtrs I nv al i d)
						C OMPO N E NT_TH ROW( - 1) ;
						cons t  A ud ioBuffe r*srcbu f= m Ptr s->mB u ffer s;
						Aud ioBuf f er *destbuf =a bl.mBuffers;
			fo r ( UInt32 i =0; i < ab l.mN u mb erB u ffers ; ++i ,+ +s r cbuf, ++destbuf) {
						if ( i >= mPtrs->m NumberBuff e r s ) // dup lica t el ast source toaddit ional outp u ts [4341 137]
								--srcbu f ; 
							i f ( des tbu f - >m Data!= srcbuf - > mDat a) 
							memmov e(d est buf ->m Da ta, srcbu f->mData ,sr cb uf ->m DataB y teSize); 
					destb u f->mDa taByt eSiz e=s rcb uf->mDa t aB y t eSiz e; 
					}
					}
/*! @me thod Allo cat e  */
vo id				A llocate(const  C AStreamBas ic Des cripti o n  &format , UInt32 nFrames);
	/* !  @metho d D eallo cate  */
	voi d			Deal loc a te();

	/* ! @me th odU s eExte r n al Buf fe r */
	voi d 		UseEx te rnal Buffer( const CAStreamBasi c Des cription &for mat , co n s tAud i oU n itE xt e rna l B uffer &
 kPtrsToExternalMemory;
							mPtrs->mBuffers[index]_= ab;
						}

	/*!_@method InvalidateBufferList */
	void				InvalidateBufferList() {_mPtrState =_kPtrsInvalid;_}

	/*! @method_GetBufferList_*/
	AudioBufferList &	GetBufferList() const_{
							if (mPtrState ==_kPtrsInvalid)
								COMPONENT_THROW(-1);
							return *mPtrs;
						}

	/*! @method CopyBufferListTo_*/
	void				CopyBufferListTo(AudioBufferList &abl) const_{
							if_(mPtrState == kPtrsInvalid)
								COMPONENT_THROW(-1);
							memcpy(&abl, mPtrs, (char *)&abl.mBuffers[abl.mNumberBuffers] - (char *)&abl);
						}

	/*! @method CopyBufferContentsTo */
	void				CopyBufferContentsTo(AudioBufferList &abl) const_{
							if_(mPtrState ==_kPtrsInvalid)
								COMPONENT_THROW(-1);
							const_AudioBuffer_*srcbuf = mPtrs->mBuffers;
							AudioBuffer *destbuf =_abl.mBuffers;

							for (UInt32 i = 0;_i <_abl.mNumberBuffers; ++i, ++srcbuf, ++destbuf) {
								if (i >= mPtrs->mNumberBuffers)_//_duplicate last source_to additional outputs [4341137]
									--srcbuf;
								if (destbuf->mData!= srcbuf->mData)
									memmove(destbuf->mData, srcbuf->mData, srcbuf->mDataByteSize);
								destbuf->mDataByteSize =_srcbuf->mDataByteSize;
							}
						}

	/*! @method Allocate */
	void				Allocate(const CAStreamBasicDescription &format,_UInt32 nFrames);
	/*! @method_Deallocate_*/
	void				Deallocate();

	/*!_@method UseExternalBuffer */
	void				UseExternalBuffer(const CAStreamBasicDescription_&format, const AudioUnitExternalBuffer &