void SfxPlayer::handleEvents() { uint8_t order = _sfxMod.orderTable[_sfxMod.curOrder]; const uint8_t *patternData = _sfxMod.data + _sfxMod.curPos + order * 1024; for (uint8_t ch = 0; ch < 4; ++ch) { handlePattern(ch, patternData); patternData += 4; } _sfxMod.curPos += 4 * 4; debug(DBG_SND, "SfxPlayer::handleEvents() order = 0x%X curPos = 0x%X", order, _sfxMod.curPos); if (_sfxMod.curPos >= 1024) { _sfxMod.curPos = 0; order = _sfxMod.curOrder + 1; if (order == _sfxMod.numOrder) { _resNum = 0; _playing = false; } _sfxMod.curOrder = order; } }
void Player::handleEvents() { uint8_t order = _sfxMod.orderTable[_sfxMod.curOrder]; uint8_t *patternData = _bufData + _curPos + order * 1024; memset(_patterns, 0, sizeof(_patterns)); for (uint8_t ch = 0; ch < 4; ++ch) { handlePattern(ch, patternData, &_patterns[ch]); } _curPos += 4 * 4; fprintf(stdout, "order = 0x%X curPos = 0x%X\n", order, _curPos); if (_curPos >= 1024) { _curPos = 0; order = _sfxMod.curOrder + 1; if (order == _sfxMod.numOrder) { Mix_stopAll(); order = 0; _playingMusic = false; } _sfxMod.curOrder = order; } }
void SfxPlayer::handleEvents() { MutexStack(sys, _mutex); uint8_t order = _sfxMod.orderTable[_sfxMod.curOrder]; const uint8_t *patternData = _sfxMod.data + _sfxMod.curPos + order * 1024; for (uint8_t ch = 0; ch < 4; ++ch) { handlePattern(ch, patternData); patternData += 4; } _sfxMod.curPos += 4 * 4; debug(DBG_SND, "SfxPlayer::handleEvents() order = 0x%X curPos = 0x%X", order, _sfxMod.curPos); if (_sfxMod.curPos >= 1024) { _sfxMod.curPos = 0; order = _sfxMod.curOrder + 1; if (order == _sfxMod.numOrder) { _resNum = 0; sys->removeTimer(_timerId); mixer->stopAll(); } _sfxMod.curOrder = order; } }