The ReverbControl
value reverb level does not map
straight from JSR-234 side to S60 Effect API. As the reverb level is just
a single value in JSR-234, the Effect API uses three different values (reverb
level for late reverberation, reflections level for early reflections and
room level for overall reverberation level) to define the same thing. That
is, Effect API (which uses MMA's IA-SIG 2.0's definitions) has more fine-grain
control over reverb than JSR-234.
JSR-234's definition is closest to the definition of reflections level in the Effect API. Therefore, the mapping of room level is currently done using the following algorithm:
int getReverbLevel() { return ( reflectionsLevel + roomLevel ); } int setReverbLevel( int newLevel ) { if ( newLevel > 0 ) { throw new IllegalArgumentException("Too high reverb level."); } int tempChange = newLevel - ( reflectionsLevel + roomLevel ); reflectionsLevel = newLevel - roomLevel; reverbLevel = reverbLevel + tempChange; return newLevel; }