Audio: Make cheap OpenAL pitch shifting a config option

This commit is contained in:
Jonas Kulla 2013-12-01 09:36:15 +01:00
parent 47d96bd21e
commit ac35d4214e
4 changed files with 14 additions and 2 deletions

View File

@ -82,6 +82,8 @@ mkxp reads configuration data from the file "mkxp.conf" contained in the current
| defScreenH | int | 480 | Height the game window starts in |
| fixedFramerate | int | 0 | FPS will be fixed to this amount. Ignored if 0. |
| solidFonts | bool | false | Don't use alpha blending for fonts |
| fastSoundPitch | bool | true | Use cheap OpenAL pitch shifting for sounds (SE) |
| fastMusicPitch | bool | false | Use cheap OpenAL pitch shifting for music (BGM/BGS/ME) |
| gameFolder | string | "." | mkxp will look for all game related files here |
| allowSymlinks | bool | false | Allow symlinks to be followed in the game folder. |
| customScript | string | "" | Execute a raw ruby script file instead of an RPG Maker game. |

View File

@ -26,6 +26,7 @@
#include "intrulist.h"
#include "filesystem.h"
#include "exception.h"
#include "config.h"
#include "al-util.h"
#include <QByteArray>
@ -300,6 +301,7 @@ struct SoundEmitter
AL::Source::setVolume(src, _volume);
#ifndef RUBBERBAND
if (shState->config().fastSoundPitch)
AL::Source::setPitch(src, clamp<int>(pitch, 50, 150) / 100.f);
#endif
@ -761,6 +763,7 @@ private:
needsRewind = false;
#ifndef RUBBERBAND
if (shState->config().fastMusicPitch)
AL::Source::setPitch(alSrc, pitch);
#endif
}

View File

@ -39,6 +39,8 @@ Config::Config()
defScreenH(480),
fixedFramerate(0),
solidFonts(false),
fastSoundPitch(true),
fastMusicPitch(false),
gameFolder("."),
allowSymlinks(false)
{}
@ -59,6 +61,8 @@ void Config::read()
READ_VAL(defScreenH, Int);
READ_VAL(fixedFramerate, Int);
READ_VAL(solidFonts, Bool);
READ_VAL(fastSoundPitch, Bool);
READ_VAL(fastMusicPitch, Bool);
READ_VAL(gameFolder, ByteArray);
READ_VAL(allowSymlinks, Bool);
READ_VAL(customScript, ByteArray);

View File

@ -44,6 +44,9 @@ struct Config
bool solidFonts;
bool fastSoundPitch;
bool fastMusicPitch;
QByteArray gameFolder;
bool allowSymlinks;