Ejemplo n.º 1
0
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;
	}
}
Ejemplo n.º 2
0
Archivo: main.cpp Proyecto: cyxx/rawgl
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;
	}
}