mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-13 23:43:34 +00:00
KYRA: (EOB/Amiga) - minor audio driver improvements
(mostly paranoia fixes)
This commit is contained in:
parent
6444d279fe
commit
1a08072dea
@ -22,7 +22,7 @@
|
||||
|
||||
#ifdef ENABLE_EOB
|
||||
|
||||
#include "kyra/resource/resource.h"
|
||||
#include "kyra/kyra_v1.h"
|
||||
#include "kyra/sound/drivers/audiomaster2.h"
|
||||
|
||||
#include "audio/mods/paula.h"
|
||||
@ -892,6 +892,8 @@ void AudioMaster2ResourceManager::initResource(SoundResource *resource) {
|
||||
if (!resource)
|
||||
return;
|
||||
|
||||
Common::StackLock lock(_mutex);
|
||||
|
||||
SoundResource *res = retrieveFromChain(resource->getName());
|
||||
// The driver does not replace resources with the same name, but disposes the new resource instead.
|
||||
// So these names seem to be considered "globally unique".
|
||||
@ -1198,12 +1200,11 @@ AudioMaster2Internal::AudioMaster2Internal(Audio::Mixer *mixer) : Paula(true, mi
|
||||
}
|
||||
|
||||
AudioMaster2Internal::~AudioMaster2Internal() {
|
||||
Common::StackLock lock(_mutex);
|
||||
|
||||
stopPaula();
|
||||
|
||||
_mixer->stopHandle(_soundHandle);
|
||||
|
||||
Common::StackLock lock(_mutex);
|
||||
|
||||
delete _res;
|
||||
delete _io;
|
||||
}
|
||||
@ -1284,7 +1285,7 @@ void AudioMaster2Internal::fadeOut(int delay) {
|
||||
}
|
||||
|
||||
bool AudioMaster2Internal::isFading() {
|
||||
return _io->isFading();
|
||||
return _ready ? _io->isFading() : false;
|
||||
}
|
||||
|
||||
void AudioMaster2Internal::setMusicVolume(int volume) {
|
||||
@ -1313,18 +1314,18 @@ void AudioMaster2Internal::resetCounter() {
|
||||
}
|
||||
|
||||
int AudioMaster2Internal::getPlayDuration() {
|
||||
return _durationCounter;
|
||||
return _ready ? _durationCounter : 0;
|
||||
}
|
||||
|
||||
void AudioMaster2Internal::sync(SoundResource *res) {
|
||||
if (!_ready || !res)
|
||||
return;
|
||||
|
||||
Common::StackLock lock(_mutex);
|
||||
|
||||
if (res->getType() != 1)
|
||||
return;
|
||||
|
||||
Common::StackLock lock(_mutex);
|
||||
|
||||
SoundResourceSMUS *smus = static_cast<SoundResourceSMUS*>(res);
|
||||
_io->_tempo = smus->getTempo();
|
||||
smus->setSync(_io->_sync);
|
||||
|
Loading…
x
Reference in New Issue
Block a user