| 694 | } |
| 695 | |
| 696 | void JASAramStream::channelStart() { |
| 697 | u8 fmt; |
| 698 | switch (mFormat) { |
| 699 | case 0: |
| 700 | fmt = 0; |
| 701 | break; |
| 702 | case 1: |
| 703 | fmt = 3; |
| 704 | break; |
| 705 | } |
| 706 | for (int i = 0; i < mChannelNum; i++) { |
| 707 | JASWaveInfo wave_info; |
| 708 | wave_info._00 = fmt; |
| 709 | wave_info._01 = 60; |
| 710 | wave_info._10 = -1; |
| 711 | wave_info._14 = 0; |
| 712 | wave_info._18 = mBufCount * getBlockSamples(); |
| 713 | wave_info._1c = wave_info._18; |
| 714 | wave_info._20 = 0; |
| 715 | wave_info._22 = 0; |
| 716 | static u32 const one = 1; |
| 717 | wave_info._24 = &one; |
| 718 | |
| 719 | JASChannel *jc = new JASChannel(channelCallback, this); |
| 720 | #line 958 |
| 721 | JUT_ASSERT(jc); |
| 722 | jc->setPriority(0x7f7f); |
| 723 | for (u32 j = 0; j < 6; j++) { |
| 724 | jc->setMixConfig(j, _1dc[j]); |
| 725 | } |
| 726 | jc->setInitPitch(mSampleRate / JASDriver::getDacRate()); |
| 727 | jc->setOscInit(0, &OSC_ENV); |
| 728 | jc->mWaveData.mInfo = wave_info; |
| 729 | jc->mWaveData.mPtr = _148 + sBlockSize * mBlockCount * i; |
| 730 | jc->mWaveData._0 = 0; |
| 731 | int ret = jc->playForce(); |
| 732 | #line 972 |
| 733 | JUT_ASSERT(ret); |
| 734 | #line 974 |
| 735 | JUT_ASSERT_MSG(!mChannels[i], "channelStart for already playing channel"); |
| 736 | mChannels[i] = jc; |
| 737 | } |
| 738 | _0a8 = NULL; |
| 739 | } |
| 740 | |
| 741 | void JASAramStream::channelStop(u16 directRelease) { |
| 742 | for (int i = 0; i < mChannelNum; i++) { |
nothing calls this directly
no test coverage detected