From: ehofman Date: Mon, 30 Jan 2006 20:30:56 +0000 (+0000) Subject: create an absolute value before calling log or log10, this adds support for sound... X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=af15e73e6417bdd643ad6f672d7ac9cf87101705;p=simgear.git create an absolute value before calling log or log10, this adds support for sound on negative numbers (thrust reverse for example). --- diff --git a/simgear/sound/xmlsound.cxx b/simgear/sound/xmlsound.cxx index 3bd9bd89..0c8c3fd9 100644 --- a/simgear/sound/xmlsound.cxx +++ b/simgear/sound/xmlsound.cxx @@ -38,12 +38,13 @@ #include "xmlsound.hxx" +#define LOG_ABS(x) (((x) > 1) ? (x) : (((x) < -1) ? -(x) : 0)) // static double _snd_lin(double v) { return v; } static double _snd_inv(double v) { return (v == 0) ? 1e99 : 1/v; } static double _snd_abs(double v) { return (v >= 0) ? v : -v; } static double _snd_sqrt(double v) { return (v < 0) ? sqrt(-v) : sqrt(v); } -static double _snd_log10(double v) { return (v < 1) ? 0 : fast_log10(v); } -static double _snd_log(double v) { return (v < 1) ? 0 : fast_log(v); } +static double _snd_log10(double v) { return fast_log10( LOG_ABS(v) ); } +static double _snd_log(double v) { return fast_log( LOG_ABS(v) ); } // static double _snd_sqr(double v) { return v*v; } // static double _snd_pow3(double v) { return v*v*v; }