/** * @brief Sets the speed to play the sound at. * * @param s Speed to play sound at. */ void sound_setSpeed( double s ) { if (sound_disabled) return; return sound_sys_setSpeed( s ); }
/** * @brief Sets the speed to play the sound at. * * @param s Speed to play sound at. */ void sound_setSpeed( double s ) { double v; int playing; if (sound_disabled) return; /* We implement the brown noise here. */ playing = (snd_compression_gain > 0.); if (player.tc_max > 2.) v = CLAMP( 0, 1., MAX( (s-2)/10., (s-2) / (player.tc_max-2) ) ); else v = CLAMP( 0, 1., (s-2)/10. ); if (v > 0.) { if (snd_compression >= 0) { if (!playing) sound_playGroup( snd_compressionG, snd_compression, 0 ); /* Start playing only if it's not playing. */ sound_volumeGroup( snd_compressionG, v ); } sound_sys_setSpeedVolume( 1.-v ); } else if (playing) { if (snd_compression >= 0) sound_stopGroup( snd_compressionG ); /* Stop compression sound. */ sound_sys_setSpeedVolume( 1. ); /* Restore volume. */ } snd_compression_gain = v; return sound_sys_setSpeed( s ); }