MCPcopy Create free account
hub / github.com/doldecomp/mkdd / load

Method load

libs/JSystem/JAudio/System/JASAramStream.cpp:343–417  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

341}
342
343bool JASAramStream::load() {
344 JAS_CS_START
345 mFreeBlockCount--;
346 JAS_CS_END
347
348 if (sFatalErrorFlag) {
349 return false;
350 }
351 if (mCancelled != 0) {
352 return false;
353 }
354 u32 loop_end_block = (mLoopEnd - 1) / getBlockSamples();
355 u32 loop_start_block = mLoopStart / getBlockSamples();
356 u32 block = mBlock;
357 if (block > loop_end_block) {
358 return false;
359 }
360 u32 size = sBlockSize * mChannelNum + sizeof(BlockHeader);
361 u32 offset = block * size + sizeof(Header);
362 u32 size2 = size;
363 if (block == loop_end_block) {
364 size2 = mDvdFileInfo.length - offset;
365 }
366 if (DVDReadPrio(&mDvdFileInfo, sReadBuffer, size2, offset, 1) < 0) {
367#line 506
368 JUT_WARNING_F2("%s", "DVDReadPrio Failed");
369 sFatalErrorFlag = true;
370 return false;
371 }
372 BlockHeader *bhead = (BlockHeader*)sReadBuffer;
373 JUT_ASSERT(bhead->tag == 'BLCK');
374 if (mCancelled != 0) {
375 return false;
376 }
377
378 u32 uvar2 = _148 + mAramBlock * sBlockSize;
379 for (int i = 0; i < mChannelNum; i++) {
380 if (!JKRMainRamToAram(sReadBuffer + bhead->_4 * i + sizeof(BlockHeader),
381 uvar2 + sBlockSize * mBlockCount * i,
382 bhead->_4, EXPAND_SWITCH_DEFAULT, 0, NULL, -1, NULL)) {
383 JUT_WARNING_F2("%s", "JKRMainRamToAram Failed");
384 sFatalErrorFlag = true;
385 return false;
386 }
387 }
388 mAramBlock++;
389 if (mAramBlock >= mAramBlockCount) {
390 u32 block = mBlock;
391 block += mAramBlockCount - 1;
392 if (mLoop) {
393#line 536
394 JUT_ASSERT(loop_start_block < loop_end_block);
395 while (block > loop_end_block) {
396 block -= loop_end_block;
397 block += loop_start_block;
398 }
399 }
400 if (block == loop_end_block || block + 2 == loop_end_block) {

Callers 2

firstLoadTaskMethod · 0.45
loadToAramTaskMethod · 0.45

Calls 3

DVDReadPrioFunction · 0.85
JKRMainRamToAramFunction · 0.85
OSSendMessageFunction · 0.85

Tested by

no test coverage detected