diff options
Diffstat (limited to 'engines/scumm/imuse_digi/dimuse.cpp')
-rw-r--r-- | engines/scumm/imuse_digi/dimuse.cpp | 128 |
1 files changed, 64 insertions, 64 deletions
diff --git a/engines/scumm/imuse_digi/dimuse.cpp b/engines/scumm/imuse_digi/dimuse.cpp index bee1a56b82..0221657966 100644 --- a/engines/scumm/imuse_digi/dimuse.cpp +++ b/engines/scumm/imuse_digi/dimuse.cpp @@ -39,7 +39,7 @@ namespace Scumm { IMuseDigital::Track::Track() - : soundId(-1), used(false), stream(NULL), stream2(NULL) { + : soundId(-1), used(false), stream(NULL), streamSou(NULL) { } void IMuseDigital::timer_handler(void *refCon) { @@ -128,9 +128,9 @@ void IMuseDigital::saveOrLoad(Serializer *ser) { MKARRAY(Track, soundName[0], sleByte, 15, VER(31)), MKLINE(Track, used, sleByte, VER(31)), MKLINE(Track, toBeRemoved, sleByte, VER(31)), - MKLINE(Track, souStream, sleByte, VER(31)), - MKLINE(Track, started, sleByte, VER(31)), - MKLINE(Track, priority, sleInt32, VER(31)), + MKLINE(Track, souStreamUsed, sleByte, VER(31)), + MKLINE(Track, mixerStreamRunning, sleByte, VER(31)), + MKLINE(Track, soundPriority, sleInt32, VER(31)), MKLINE(Track, regionOffset, sleInt32, VER(31)), MK_OBSOLETE(Track, trackOffset, sleInt32, VER(31), VER(31)), MKLINE(Track, dataOffset, sleInt32, VER(31)), @@ -138,12 +138,12 @@ void IMuseDigital::saveOrLoad(Serializer *ser) { MKLINE(Track, curHookId, sleInt32, VER(31)), MKLINE(Track, volGroupId, sleInt32, VER(31)), MKLINE(Track, soundType, sleInt32, VER(31)), - MKLINE(Track, iteration, sleInt32, VER(31)), - MKLINE(Track, mod, sleInt32, VER(31)), - MKLINE(Track, flags, sleInt32, VER(31)), + MKLINE(Track, feedSize, sleInt32, VER(31)), + MKLINE(Track, dataMod12Bit, sleInt32, VER(31)), + MKLINE(Track, mixerFlags, sleInt32, VER(31)), MK_OBSOLETE(Track, mixerVol, sleInt32, VER(31), VER(42)), MK_OBSOLETE(Track, mixerPan, sleInt32, VER(31), VER(42)), - MKLINE(Track, compressed, sleByte, VER(45)), + MKLINE(Track, sndDataExtComp, sleByte, VER(45)), MKEND() }; @@ -152,15 +152,15 @@ void IMuseDigital::saveOrLoad(Serializer *ser) { for (int l = 0; l < MAX_DIGITAL_TRACKS + MAX_DIGITAL_FADETRACKS; l++) { Track *track = _track[l]; if (!ser->isSaving()) { - track->compressed = false; + track->sndDataExtComp = false; } ser->saveLoadEntries(track, trackEntries); if (!ser->isSaving()) { if (!track->used) continue; track->readyToRemove = false; - if ((track->toBeRemoved) || (track->souStream) || (track->curRegion == -1)) { - track->stream2 = NULL; + if ((track->toBeRemoved) || (track->souStreamUsed) || (track->curRegion == -1)) { + track->streamSou= NULL; track->stream = NULL; track->used = false; continue; @@ -171,43 +171,43 @@ void IMuseDigital::saveOrLoad(Serializer *ser) { track->volGroupId, -1); if (!track->soundHandle) { warning("IMuseDigital::saveOrLoad: Can't open sound so will not be resumed, propably on diffrent CD"); - track->stream2 = NULL; + track->streamSou = NULL; track->stream = NULL; track->used = false; continue; } - if (track->compressed) { + if (track->sndDataExtComp) { track->regionOffset = 0; } - track->compressed = _sound->isCompressed(track->soundHandle); - if (track->compressed) { + track->sndDataExtComp = _sound->isSndDataExtComp(track->soundHandle); + if (track->sndDataExtComp) { track->regionOffset = 0; } track->dataOffset = _sound->getRegionOffset(track->soundHandle, track->curRegion); int bits = _sound->getBits(track->soundHandle); int channels = _sound->getChannels(track->soundHandle); int freq = _sound->getFreq(track->soundHandle); - track->iteration = freq * channels; - track->flags = 0; + track->feedSize = freq * channels; + track->mixerFlags = 0; if (channels == 2) - track->flags = kFlagStereo | kFlagReverseStereo; + track->mixerFlags = kFlagStereo | kFlagReverseStereo; if ((bits == 12) || (bits == 16)) { - track->flags |= kFlag16Bits; - track->iteration *= 2; + track->mixerFlags |= kFlag16Bits; + track->feedSize *= 2; } else if (bits == 8) { - track->flags |= kFlagUnsigned; + track->mixerFlags |= kFlagUnsigned; } else error("IMuseDigital::saveOrLoad(): Can't handle %d bit samples", bits); #ifdef SCUMM_LITTLE_ENDIAN - if (track->compressed) - track->flags |= kFlagLittleEndian; + if (track->sndDataExtComp) + track->mixerFlags |= kFlagLittleEndian; #endif - track->stream2 = NULL; - track->stream = Audio::makeAppendableAudioStream(freq, makeMixerFlags(track->flags)); + track->streamSou = NULL; + track->stream = Audio::makeAppendableAudioStream(freq, makeMixerFlags(track->mixerFlags)); const int pan = (track->pan != 64) ? 2 * track->pan - 127 : 0; const int vol = track->vol / 1000; @@ -220,7 +220,7 @@ void IMuseDigital::saveOrLoad(Serializer *ser) { if (track->volGroupId == 3) type = Audio::Mixer::kMusicSoundType; - _mixer->playInputStream(type, &track->handle, track->stream, -1, vol, pan, false); + _mixer->playInputStream(type, &track->mixChanHandle, track->stream, -1, vol, pan, false); } } } @@ -275,8 +275,8 @@ void IMuseDigital::callback() { type = Audio::Mixer::kMusicSoundType; if (track->stream) { - byte *data = NULL; - int32 result = 0; + byte *tmpSndBufferPtr = NULL; + int32 curFeedSize = 0; if (track->curRegion == -1) { switchToNextRegion(track); @@ -287,81 +287,81 @@ void IMuseDigital::callback() { int bits = _sound->getBits(track->soundHandle); int channels = _sound->getChannels(track->soundHandle); - int32 mixer_size = track->iteration / _callbackFps; + int32 feedSize = track->feedSize / _callbackFps; if (track->stream->endOfData()) { - mixer_size *= 2; + feedSize *= 2; } if ((bits == 12) || (bits == 16)) { if (channels == 1) - mixer_size &= ~1; + feedSize &= ~1; if (channels == 2) - mixer_size &= ~3; + feedSize &= ~3; } else { if (channels == 2) - mixer_size &= ~1; + feedSize &= ~1; } - if (mixer_size == 0) + if (feedSize == 0) continue; do { if (bits == 12) { - byte *ptr = NULL; + byte *tmpPtr = NULL; - mixer_size += track->mod; - int mixer_size_12 = (mixer_size * 3) / 4; - int length = (mixer_size_12 / 3) * 4; - track->mod = mixer_size - length; + feedSize += track->dataMod12Bit; + int tmpFeedSize12Bits = (feedSize * 3) / 4; + int tmpLength12Bits = (tmpFeedSize12Bits / 3) * 4; + track->dataMod12Bit = feedSize - tmpLength12Bits; - int32 offset = (track->regionOffset * 3) / 4; - int result2 = _sound->getDataFromRegion(track->soundHandle, track->curRegion, &ptr, offset, mixer_size_12); - result = BundleCodecs::decode12BitsSample(ptr, &data, result2); + int32 tmpOffset = (track->regionOffset * 3) / 4; + int tmpFeedSize = _sound->getDataFromRegion(track->soundHandle, track->curRegion, &tmpPtr, tmpOffset, tmpFeedSize12Bits); + curFeedSize = BundleCodecs::decode12BitsSample(tmpPtr, &tmpSndBufferPtr, tmpFeedSize); - free(ptr); + free(tmpPtr); } else if (bits == 16) { - result = _sound->getDataFromRegion(track->soundHandle, track->curRegion, &data, track->regionOffset, mixer_size); + curFeedSize = _sound->getDataFromRegion(track->soundHandle, track->curRegion, &tmpSndBufferPtr, track->regionOffset, feedSize); if (channels == 1) { - result &= ~1; + curFeedSize &= ~1; } if (channels == 2) { - result &= ~3; + curFeedSize &= ~3; } } else if (bits == 8) { - result = _sound->getDataFromRegion(track->soundHandle, track->curRegion, &data, track->regionOffset, mixer_size); + curFeedSize = _sound->getDataFromRegion(track->soundHandle, track->curRegion, &tmpSndBufferPtr, track->regionOffset, feedSize); if (channels == 2) { - result &= ~1; + curFeedSize &= ~1; } } - if (result > mixer_size) - result = mixer_size; + if (curFeedSize > feedSize) + curFeedSize = feedSize; if (_mixer->isReady()) { - _mixer->setChannelVolume(track->handle, vol); - _mixer->setChannelBalance(track->handle, pan); - track->stream->queueBuffer(data, result); - track->regionOffset += result; + _mixer->setChannelVolume(track->mixChanHandle, vol); + _mixer->setChannelBalance(track->mixChanHandle, pan); + track->stream->queueBuffer(tmpSndBufferPtr, curFeedSize); + track->regionOffset += curFeedSize; } else - delete[] data; + delete[] tmpSndBufferPtr; if (_sound->isEndOfRegion(track->soundHandle, track->curRegion)) { switchToNextRegion(track); if (track->toBeRemoved) break; } - mixer_size -= result; - assert(mixer_size >= 0); - } while (mixer_size != 0); - } else if (track->stream2) { + feedSize -= curFeedSize; + assert(feedSize >= 0); + } while (feedSize != 0); + } else if (track->streamSou) { if (_mixer->isReady()) { - if (!track->started) { - track->started = true; - _mixer->playInputStream(type, &track->handle, track->stream2, -1, vol, pan, false); + if (!track->mixerStreamRunning) { + track->mixerStreamRunning = true; + _mixer->playInputStream(type, &track->mixChanHandle, track->streamSou, -1, vol, pan, false); } else { - _mixer->setChannelVolume(track->handle, vol); - _mixer->setChannelBalance(track->handle, pan); + _mixer->setChannelVolume(track->mixChanHandle, vol); + _mixer->setChannelBalance(track->mixChanHandle, pan); } } } |