Remove the config option that changes the volume scale

This commit is contained in:
刘皓 2024-09-02 15:58:15 -04:00
parent f6b67ec99e
commit d3a0b4c9fb
No known key found for this signature in database
GPG key ID: 7901753DB465B711
11 changed files with 11 additions and 48 deletions

View file

@ -467,16 +467,6 @@
// //
// "YJITEnable": false, // "YJITEnable": false,
// Determines how the volume value of a sound affects how loud the sound is.
// The stock RPG Maker runtimes use a -35 dB scale for volume (option 0),
// but other runtimes might use a different scale.
// 0: -35 dB (a gain of -0.35 dB is applied to the sound for every percent
// the volume is set below 100%)
// 1: linear (sound amplitude is multiplied by the volume)
// (default: 0)
//
// "volumeScale": 0,
// SoundFont to use for midi playback (via fluidsynth) // SoundFont to use for midi playback (via fluidsynth)
// (default: none) // (default: none)
// //

View file

@ -27,7 +27,6 @@
#include <SDL_audio.h> #include <SDL_audio.h>
#include <assert.h> #include <assert.h>
#include <cfloat>
#include <cmath> #include <cmath>
namespace AL namespace AL
@ -168,22 +167,10 @@ namespace Source
return value; return value;
} }
enum VolumeScale inline void setVolume(Source::ID id, float value)
{ {
Db35 = 0, if (value > FLT_EPSILON) {
Linear = 1, value = std::pow(10.0f, -(35.0f / 20.0f) * (1.0f - value));
};
inline void setVolume(Source::ID id, float value, VolumeScale scale)
{
switch (scale) {
case Linear:
break;
default:
if (value > FLT_EPSILON) {
value = std::pow(10.0f, -(35.0f / 20.0f) * (1.0f - value));
}
break;
} }
alSourcef(id.al, AL_GAIN, value); alSourcef(id.al, AL_GAIN, value);
} }

View file

@ -36,11 +36,9 @@
#include <SDL_timer.h> #include <SDL_timer.h>
ALStream::ALStream(LoopMode loopMode, ALStream::ALStream(LoopMode loopMode,
AL::Source::VolumeScale volumeScale,
const std::string &threadId) const std::string &threadId)
: looped(loopMode == Looped), : looped(loopMode == Looped),
state(Closed), state(Closed),
volumeScale(volumeScale),
source(0), source(0),
thread(0), thread(0),
preemptPause(false), preemptPause(false),
@ -48,7 +46,7 @@ ALStream::ALStream(LoopMode loopMode,
{ {
alSrc = AL::Source::gen(); alSrc = AL::Source::gen();
AL::Source::setVolume(alSrc, 1.0f, volumeScale); AL::Source::setVolume(alSrc, 1.0f);
AL::Source::setPitch(alSrc, 1.0f); AL::Source::setPitch(alSrc, 1.0f);
AL::Source::detachBuffer(alSrc); AL::Source::detachBuffer(alSrc);
@ -166,7 +164,7 @@ void ALStream::pause()
void ALStream::setVolume(float value) void ALStream::setVolume(float value)
{ {
AL::Source::setVolume(alSrc, value, volumeScale); AL::Source::setVolume(alSrc, value);
} }
void ALStream::setPitch(float value) void ALStream::setPitch(float value)

View file

@ -47,8 +47,6 @@ struct ALStream
bool looped; bool looped;
State state; State state;
AL::Source::VolumeScale volumeScale;
ALDataSource *source; ALDataSource *source;
SDL_Thread *thread; SDL_Thread *thread;
@ -91,7 +89,6 @@ struct ALStream
}; };
ALStream(LoopMode loopMode, ALStream(LoopMode loopMode,
AL::Source::VolumeScale volumeScale,
const std::string &threadId); const std::string &threadId);
~ALStream(); ~ALStream();

View file

@ -69,15 +69,15 @@ struct AudioPrivate
} meWatch; } meWatch;
AudioPrivate(RGSSThreadData &rtData) AudioPrivate(RGSSThreadData &rtData)
: bgs(ALStream::Looped, static_cast<AL::Source::VolumeScale>(rtData.config.volumeScale), "bgs"), : bgs(ALStream::Looped, "bgs"),
me(ALStream::NotLooped, static_cast<AL::Source::VolumeScale>(rtData.config.volumeScale), "me"), me(ALStream::NotLooped, "me"),
se(rtData.config), se(rtData.config),
syncPoint(rtData.syncPoint), syncPoint(rtData.syncPoint),
volumeRatio(1) volumeRatio(1)
{ {
for (int i = 0; i < rtData.config.BGM.trackCount; i++) { for (int i = 0; i < rtData.config.BGM.trackCount; i++) {
std::string id = std::string("bgm" + std::to_string(i)); std::string id = std::string("bgm" + std::to_string(i));
bgmTracks.push_back(new AudioStream(ALStream::Looped, static_cast<AL::Source::VolumeScale>(rtData.config.volumeScale), id.c_str())); bgmTracks.push_back(new AudioStream(ALStream::Looped, id.c_str()));
} }
meWatch.state = MeNotPlaying; meWatch.state = MeNotPlaying;

View file

@ -29,11 +29,10 @@
#include <SDL_timer.h> #include <SDL_timer.h>
AudioStream::AudioStream(ALStream::LoopMode loopMode, AudioStream::AudioStream(ALStream::LoopMode loopMode,
AL::Source::VolumeScale volumeScale,
const std::string &threadId) const std::string &threadId)
: extPaused(false), : extPaused(false),
noResumeStop(false), noResumeStop(false),
stream(loopMode, volumeScale, threadId) stream(loopMode, threadId)
{ {
current.volume = 1.0f; current.volume = 1.0f;
current.pitch = 1.0f; current.pitch = 1.0f;

View file

@ -121,7 +121,6 @@ struct AudioStream
} fadeIn; } fadeIn;
AudioStream(ALStream::LoopMode loopMode, AudioStream(ALStream::LoopMode loopMode,
AL::Source::VolumeScale volumeScale,
const std::string &threadId); const std::string &threadId);
~AudioStream(); ~AudioStream();

View file

@ -93,8 +93,7 @@ SoundEmitter::SoundEmitter(const Config &conf)
srcCount(conf.SE.sourceCount), srcCount(conf.SE.sourceCount),
alSrcs(srcCount), alSrcs(srcCount),
atchBufs(srcCount), atchBufs(srcCount),
srcPrio(srcCount), srcPrio(srcCount)
volumeScale(static_cast<AL::Source::VolumeScale>(conf.volumeScale))
{ {
for (size_t i = 0; i < srcCount; ++i) for (size_t i = 0; i < srcCount; ++i)
{ {
@ -173,7 +172,7 @@ void SoundEmitter::play(const std::string &filename,
if (switchBuffer) if (switchBuffer)
AL::Source::attachBuffer(src, buffer->alBuffer); AL::Source::attachBuffer(src, buffer->alBuffer);
AL::Source::setVolume(src, _volume, volumeScale); AL::Source::setVolume(src, _volume);
AL::Source::setPitch(src, _pitch); AL::Source::setPitch(src, _pitch);
AL::Source::play(src); AL::Source::play(src);

View file

@ -49,8 +49,6 @@ struct SoundEmitter
/* Indices of sources, sorted by priority (lowest first) */ /* Indices of sources, sorted by priority (lowest first) */
std::vector<size_t> srcPrio; std::vector<size_t> srcPrio;
AL::Source::VolumeScale volumeScale;
SoundEmitter(const Config &conf); SoundEmitter(const Config &conf);
~SoundEmitter(); ~SoundEmitter();

View file

@ -178,7 +178,6 @@ void Config::read(int argc, char *argv[]) {
{"dataPathApp", ""}, {"dataPathApp", ""},
{"iconPath", ""}, {"iconPath", ""},
{"execName", "Game"}, {"execName", "Game"},
{"volumeScale", 0},
{"midiSoundFont", ""}, {"midiSoundFont", ""},
{"midiChorus", false}, {"midiChorus", false},
{"midiReverb", false}, {"midiReverb", false},
@ -307,7 +306,6 @@ try { exp } catch (...) {}
SET_OPT(anyAltToggleFS, boolean); SET_OPT(anyAltToggleFS, boolean);
SET_OPT(enableReset, boolean); SET_OPT(enableReset, boolean);
SET_OPT(enableSettings, boolean); SET_OPT(enableSettings, boolean);
SET_OPT(volumeScale, integer);
SET_STRINGOPT(midi.soundFont, midiSoundFont); SET_STRINGOPT(midi.soundFont, midiSoundFont);
SET_OPT_CUSTOMKEY(midi.chorus, midiChorus, boolean); SET_OPT_CUSTOMKEY(midi.chorus, midiChorus, boolean);
SET_OPT_CUSTOMKEY(midi.reverb, midiReverb, boolean); SET_OPT_CUSTOMKEY(midi.reverb, midiReverb, boolean);

View file

@ -93,8 +93,6 @@ struct Config {
std::string execName; std::string execName;
std::string titleLanguage; std::string titleLanguage;
int volumeScale;
struct { struct {
std::string soundFont; std::string soundFont;
bool chorus; bool chorus;