| 51 | static u32 sSubFrames = 7; |
| 52 | |
| 53 | void initAI(AIDCallback cb) { |
| 54 | setOutputRate(OutputRate_32kHz); |
| 55 | u32 size = getDacSize() * 2; |
| 56 | for (int i = 0; i < 3; i++) { |
| 57 | sDmaDacBuffer[i] = new (JASDram, 0x20) s16[size / 2]; |
| 58 | #line 98 |
| 59 | JUT_ASSERT(sDmaDacBuffer[i]); |
| 60 | JASCalc::bzero(sDmaDacBuffer[i], size); |
| 61 | DCStoreRange(sDmaDacBuffer[i], size); |
| 62 | } |
| 63 | |
| 64 | sDspDacBuffer = new (JASDram, 0) s16*[sDspDacBufferCount]; |
| 65 | #line 109 |
| 66 | JUT_ASSERT(sDspDacBuffer); |
| 67 | for (int i = 0; i < sDspDacBufferCount; i++) { |
| 68 | sDspDacBuffer[i] = new (JASDram, 0x20) s16[getDacSize()]; |
| 69 | #line 115 |
| 70 | JUT_ASSERT(sDspDacBuffer[i]); |
| 71 | JASCalc::bzero(sDspDacBuffer[i], size); |
| 72 | DCStoreRange(sDspDacBuffer[i], size); |
| 73 | } |
| 74 | sDspDacWriteBuffer = sDspDacBufferCount - 1; |
| 75 | sDspDacReadBuffer = 0; |
| 76 | sDspStatus = 0; |
| 77 | |
| 78 | JASChannel::initBankDisposeMsgQueue(); |
| 79 | AIInit(NULL); |
| 80 | AIInitDMA((u32)sDmaDacBuffer[2], size); |
| 81 | AISetDSPSampleRate(sOutputRate != 0); |
| 82 | AIRegisterDMACallback(cb); |
| 83 | } |
| 84 | |
| 85 | void startDMA() { |
| 86 | AIStartDMA(); |
no test coverage detected