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

Method channelStart

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

Source from the content-addressed store, hash-verified

694}
695
696void 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
741void JASAramStream::channelStop(u16 directRelease) {
742 for (int i = 0; i < mChannelNum; i++) {

Callers

nothing calls this directly

Calls 6

getDacRateFunction · 0.85
setMixConfigMethod · 0.80
setInitPitchMethod · 0.80
setOscInitMethod · 0.80
playForceMethod · 0.80
setPriorityMethod · 0.45

Tested by

no test coverage detected