aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordhewg2011-03-27 15:30:17 +0200
committerdhewg2011-03-27 15:30:17 +0200
commitb8a118eb0c2fb6085a65e3796c3d3d05f73a5197 (patch)
tree2987bd98aae064fe646824652f6b87a331989539
parent6487d05ddf4ae25d49918f9a2f8b70903c8855d3 (diff)
downloadscummvm-rg350-b8a118eb0c2fb6085a65e3796c3d3d05f73a5197.tar.gz
scummvm-rg350-b8a118eb0c2fb6085a65e3796c3d3d05f73a5197.tar.bz2
scummvm-rg350-b8a118eb0c2fb6085a65e3796c3d3d05f73a5197.zip
ANDROID: Use the midi gain option for EAS
-rw-r--r--audio/softsynth/eas.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/audio/softsynth/eas.cpp b/audio/softsynth/eas.cpp
index 1a406ad13a..0339492f5d 100644
--- a/audio/softsynth/eas.cpp
+++ b/audio/softsynth/eas.cpp
@@ -109,6 +109,7 @@ private:
typedef int32 (*ShutdownFunc)(EASDataHandle);
typedef int32 (*LoadDLSFunc)(EASDataHandle, EASHandle, EASFile *);
typedef int32 (*SetParameterFunc)(EASDataHandle, int32, int32, int32);
+ typedef int32 (*SetVolumeFunc)(EASDataHandle, EASHandle, int32);
typedef int32 (*OpenStreamFunc)(EASDataHandle, EASHandle *, EASHandle);
typedef int32 (*WriteStreamFunc)(EASDataHandle, EASHandle, byte *, int32);
typedef int32 (*CloseStreamFunc)(EASDataHandle, EASHandle);
@@ -138,6 +139,7 @@ private:
ShutdownFunc _shutdownFunc;
LoadDLSFunc _loadDLSFunc;
SetParameterFunc _setParameterFunc;
+ SetVolumeFunc _setVolumeFunc;
OpenStreamFunc _openStreamFunc;
WriteStreamFunc _writeStreamFunc;
CloseStreamFunc _closeStreamFunc;
@@ -164,6 +166,7 @@ MidiDriver_EAS::MidiDriver_EAS() :
_shutdownFunc(0),
_loadDLSFunc(0),
_setParameterFunc(0),
+ _setVolumeFunc(0),
_openStreamFunc(0),
_writeStreamFunc(0),
_closeStreamFunc(0),
@@ -228,6 +231,7 @@ int MidiDriver_EAS::open() {
sym(_shutdownFunc, "EAS_Shutdown");
sym(_loadDLSFunc, "EAS_LoadDLSCollection");
sym(_setParameterFunc, "EAS_SetParameter");
+ sym(_setVolumeFunc, "EAS_SetVolume");
sym(_openStreamFunc, "EAS_OpenMIDIStream");
sym(_writeStreamFunc, "EAS_WriteMIDIStream");
sym(_closeStreamFunc, "EAS_CloseMIDIStream");
@@ -247,15 +251,21 @@ int MidiDriver_EAS::open() {
return -1;
}
- _setParameterFunc(_EASHandle, EAS_REVERB, EAS_REVERB_PRESET,
- EAS_REVERB_CHAMBER);
+ res = _setParameterFunc(_EASHandle, EAS_REVERB, EAS_REVERB_PRESET,
+ EAS_REVERB_CHAMBER);
if (res)
warning("error setting reverb preset: %d", res);
- _setParameterFunc(_EASHandle, EAS_REVERB, EAS_REVERB_BYPASS, 0);
+ res = _setParameterFunc(_EASHandle, EAS_REVERB, EAS_REVERB_BYPASS, 0);
if (res)
warning("error disabling reverb bypass: %d", res);
+ // 90 is EAS's default, max is 100
+ // so the option slider will only work from 0.1 to 1.1
+ res = _setVolumeFunc(_EASHandle, 0, ConfMan.getInt("midi_gain") - 10);
+ if (res)
+ warning("error setting EAS master volume: %d", res);
+
res = _openStreamFunc(_EASHandle, &_midiStream, 0);
if (res) {
close();