2010-11-15 2 views
0
OSStatus SetupBuffers(BG_FileInfo *inFileInfo) 
{ 
int numBuffersToQueue = kNumberBuffers; 
UInt32 maxPacketSize; 
UInt32 size = sizeof(maxPacketSize); 
// we need to calculate how many packets we read at a time, and how big a buffer we need 
// we base this on the size of the packets in the file and an approximate duration for  each buffer 

// first check to see what the max size of a packet is - if it is bigger 
// than our allocation default size, that needs to become larger 
OSStatus result = AudioFileGetProperty(inFileInfo->mAFID, kAudioFilePropertyPacketSizeUpperBound, &size, &maxPacketSize); 
AssertNoError("Error getting packet upper bound size", end); 
bool isFormatVBR = (inFileInfo->mFileFormat.mBytesPerPacket == 0 || inFileInfo- >mFileFormat.mFramesPerPacket == 0); 

CalculateBytesForTime(inFileInfo->mFileFormat, maxPacketSize, 0.5/*seconds*/, &mBufferByteSize, &mNumPacketsToRead); 

// if the file is smaller than the capacity of all the buffer queues, always load it at once 
if ((mBufferByteSize * numBuffersToQueue) > inFileInfo->mFileDataSize) 
inFileInfo->mLoadAtOnce = true; 

if (inFileInfo->mLoadAtOnce) 
{ 
UInt64 theFileNumPackets; 
size = sizeof(UInt64); 
result = AudioFileGetProperty(inFileInfo->mAFID, kAudioFilePropertyAudioDataPacketCount, &size, &theFileNumPackets); 
     AssertNoError("Error getting packet count for file", end);***>>>>this is where xcode says undefined<<<<*** 

     mNumPacketsToRead = (UInt32)theFileNumPackets; 
     mBufferByteSize = inFileInfo->mFileDataSize; 
     numBuffersToQueue = 1; 
    } 

// Вот точная ошибкаКак определить конец в объективном C

метка «конец» используется, но не определен у меня есть эта ошибка дважды

+2

Подсказка: Отступ весь код с 4 места, так что это очень красиво отформатирована. Это улучшит читаемость и возможность получить правильный ответ. - О, и задайте правильный вопрос, демпинговый код не делает много, мы не компиляторы, вы знаете. – Ariejan

+2

Хотя я считаю, что Ariejan пропустил часть вашего кода, где вы аннотировали ошибку, лучше всего помочь нам помочь вам, описав проблему в теле вашего вопроса, отдельно от кода, который вы предоставляете. Кроме того, пожалуйста, отправьте сообщение об ошибке * exact *, которое вы получите. –

+0

@ DanielsCaleb0, Uhm, единственное место, где я могу найти «AssertNoError», находится здесь, в [Техническая нота TN2113.] (Http://developer.apple.com/library/mac/#technotes/tn2005/tn2113.html) И это имеет совершенно другой формат. 'AssertNoError (theError," невозможно отменить регистрацию ABL ");' Где определено 'AssertNoError'? –

ответ

1

Uhm, единственное место, где я могу найти AssertNoError здесь, в Technical Note TN2113. И он имеет совершенно другой формат. AssertNoError(theError, "couldn't unregister the ABL"); Где находится AssertNoError?

Пользователь @Jeremy P упоминает this document as well.

+0

Собственно, фрагмент кода из файла SoundEngine.cpp в cocos2D, который также определяет макрос AssertNoError с используемым здесь форматом. – Chuck

+0

@Chuck, ах. Понимаю. –

3

Если посмотреть на источник SoundEngine.cpp, из которого получен фрагмент, вы увидите, что он определен на самой следующей строке:

end: 
    return result; 

Это ярлык, выполнение которого происходит, когда есть ошибка.

Смежные вопросы