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 | | defScreenH | int | 480 | Height the game window starts in |
| fixedFramerate | int | 0 | FPS will be fixed to this amount. Ignored if 0. | | fixedFramerate | int | 0 | FPS will be fixed to this amount. Ignored if 0. |
| solidFonts | bool | false | Don't use alpha blending for fonts | | 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 | | gameFolder | string | "." | mkxp will look for all game related files here |
| allowSymlinks | bool | false | Allow symlinks to be followed in the game folder. | | 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. | | customScript | string | "" | Execute a raw ruby script file instead of an RPG Maker game. |

View File

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

View File

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

View File

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