Added a definition for Apple IIGS sound emulation mode, made sound initialization set it when appropriate and instruments loading use it.

svn-id: r28647
This commit is contained in:
Kari Salminen 2007-08-17 13:10:57 +00:00
parent 62d5f0629c
commit aa8db3f74f
3 changed files with 18 additions and 9 deletions

View File

@ -677,13 +677,20 @@ void AgiEngine::initialize() {
// drivers, and I'm not sure what they are. For now, they might
// as well be called "PC Speaker" and "Not PC Speaker".
switch (MidiDriver::detectMusicDriver(MDT_PCSPK)) {
case MD_PCSPK:
_soundemu = SOUND_EMU_PC;
break;
default:
_soundemu = SOUND_EMU_NONE;
break;
// If used platform is Apple IIGS then we must use Apple IIGS sound emulation
// because Apple IIGS AGI games use only Apple IIGS specific sound resources.
if (ConfMan.hasKey("platform") &&
Common::parsePlatform(ConfMan.get("platform")) == Common::kPlatformApple2GS) {
_soundemu = SOUND_EMU_APPLE2GS;
} else {
switch (MidiDriver::detectMusicDriver(MDT_PCSPK)) {
case MD_PCSPK:
_soundemu = SOUND_EMU_PC;
break;
default:
_soundemu = SOUND_EMU_NONE;
break;
}
}
if (ConfMan.hasKey("render_mode")) {

View File

@ -440,6 +440,9 @@ int SoundMgr::initSound() {
case SOUND_EMU_MAC:
waveform = waveformMac;
break;
case SOUND_EMU_APPLE2GS:
loadInstruments();
break;
}
report("Initializing sound:\n");
@ -451,8 +454,6 @@ int SoundMgr::initSound() {
report("disabled\n");
}
loadInstruments();
_mixer->playInputStream(Audio::Mixer::kPlainSoundType, &_soundHandle, this, -1, Audio::Mixer::kMaxChannelVolume, 0, false, true);
return r;

View File

@ -39,6 +39,7 @@ namespace Agi {
#define SOUND_EMU_TANDY 2
#define SOUND_EMU_MAC 3
#define SOUND_EMU_AMIGA 4
#define SOUND_EMU_APPLE2GS 5
#define WAVEFORM_SIZE 64
#define ENV_ATTACK 10000 /**< envelope attack rate */