| 245 | } |
| 246 | |
| 247 | s32 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(); |
no test coverage detected