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

Method initialUpdateDSPChannel

libs/JSystem/JAudio/System/JASChannel.cpp:247–326  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

245}
246
247s32 JASChannel::initialUpdateDSPChannel(JASDsp::TChannel *dspChannel) {
248 if (isDolbyMode()) {
249 dspChannel->initAutoMixer();
250 }
251
252 if (mCb != NULL) {
253 mCb(CB_START, this, dspChannel, mCbData);
254 }
255
256 if (mWaveData.mInfo._24[0] == 0) {
257#line 334
258 JUT_CRITICAL_WARNING_F("%s", "Lost wave data while playing");
259 mDspCh->free();
260 mDspCh = NULL;
261 delete this;
262 return -1;
263 }
264
265 if (checkBankDispose()) {
266#line 345
267 JUT_CRITICAL_WARNING_F("%s", "Lost bank data while playing");
268 mDspCh->free();
269 mDspCh = NULL;
270 delete this;
271 return -1;
272 }
273
274 switch (mWaveData._0) {
275 case 0:
276 dspChannel->setWaveInfo(mWaveData.mInfo, mWaveData.mPtr, mSkipSamples);
277 break;
278 case 2:
279 dspChannel->setOscInfo(mWaveData.mPtr);
280 break;
281 }
282
283 for (u8 i = 0; i < 6; i++) {
284 MixConfig mix_config = mMixConfig[i];
285 u32 output_mode = JASDriver::getOutputMode();
286 if (output_mode == 0) {
287 switch (mix_config.parts.upper) {
288 case 8:
289 mix_config.parts.upper = 11;
290 break;
291 case 9:
292 mix_config.parts.upper = 2;
293 break;
294 }
295 } else if (output_mode == 1 && mix_config.parts.upper == 8) {
296 mix_config.parts.upper = 11;
297 }
298 dspChannel->setBusConnect(i, mix_config.parts.upper);
299 }
300
301 JASOscillator::EffectParams effect_params;
302 for (u32 i = 0; i < 2; i++) {
303 if (mOscillators[i].isValid()) {
304 mOscillators[i].update();

Callers 1

dspUpdateCallbackMethod · 0.80

Calls 14

getOutputModeFunction · 0.85
pow2Function · 0.85
initAutoMixerMethod · 0.80
setOscInfoMethod · 0.80
setBusConnectMethod · 0.80
resetCounterMethod · 0.80
setMixerInitVolumeMethod · 0.80
freeMethod · 0.45
setWaveInfoMethod · 0.45
isValidMethod · 0.45
updateMethod · 0.45
getValueMethod · 0.45

Tested by

no test coverage detected