OK, hopefully really fixed the volume -> attenuation conversion. Used VLC

as a reference implementation.
This commit is contained in:
casey langen 2016-12-19 16:24:20 -08:00
parent cd15ece9f0
commit 928a74e4d5

View File

@ -130,7 +130,11 @@ void DirectSoundOut::SetVolume(double volume) {
if (this->secondaryBuffer) { if (this->secondaryBuffer) {
double db = (volume < 0.0001f) double db = (volume < 0.0001f)
? DSBVOLUME_MIN ? DSBVOLUME_MIN
: log(this->volume) * 434.294482f; : log10f(this->volume) * 6000.f;
if (db > DSBVOLUME_MAX) {
db = DSBVOLUME_MAX;
}
this->secondaryBuffer->SetVolume((LONG) db); this->secondaryBuffer->SetVolume((LONG) db);
} }