Merge pull request #68 from emlynmac/fix-out-multichannel
Add support for multichannel out
This commit is contained in:
commit
45795c469a
1 changed files with 19 additions and 0 deletions
|
@ -885,6 +885,25 @@ if ( iNumInChan == 4 )
|
|||
if ( outOutputData->mBuffers[0].mDataByteSize ==
|
||||
static_cast<UInt32> ( iCoreAudioBufferSizeMono * iNumOutChan * 4 ) )
|
||||
{
|
||||
// Outputs are to individual buffers too, rather than using channels
|
||||
Float32* pLeftOutData = static_cast<Float32*> ( outOutputData->mBuffers[iSelOutputLeftChannel].mData );
|
||||
Float32* pRightOutData = static_cast<Float32*> ( outOutputData->mBuffers[iSelOutputRightChannel].mData );
|
||||
|
||||
// copy output data
|
||||
for ( int i = 0; i < iCoreAudioBufferSizeMono; i++ )
|
||||
{
|
||||
// left
|
||||
pLeftOutData[i] =
|
||||
(Float32) pSound->vecsTmpAudioSndCrdStereo[2 * i] / _MAXSHORT;
|
||||
|
||||
// right
|
||||
pRightOutData[i] =
|
||||
(Float32) pSound->vecsTmpAudioSndCrdStereo[2 * i + 1] / _MAXSHORT;
|
||||
}
|
||||
|
||||
} else if ( outOutputData->mBuffers[0].mDataByteSize ==
|
||||
static_cast<UInt32> ( iCoreAudioBufferSizeMono * iNumOutChan * 4 ) ) {
|
||||
// Outputs are 2 channels in one buffer
|
||||
// get a pointer to the input data of the correct type
|
||||
Float32* pOutData = static_cast<Float32*> ( outOutputData->mBuffers[0].mData );
|
||||
|
||||
|
|
Loading…
Reference in a new issue